1、页面文本框显示不全插件
2、包含输入框、文本框、下拉框
3、支持Jquery、原生js,优先Jquery,直接引入插件即可使用
4、效果如下:
5、附件是代码
(function(window, $, undefined) { 'use strict'; var isJquery = ($ ? true : false); function ElementTips() {}; /** * 创建提示 * [createTips description] * @param {[type]} x [description] * @param {[type]} y [description] * @param {[type]} val [description] * @param {[type]} width [description] * @return {[type]} [description] */ ElementTips.prototype.createTips = function createTips(x, y, val, width) { this.id = 'tips_' + Math.floor(Math.random() * 1e1); var div = document.createElement('div'); div.id = this.id; div.innerHTML = val; div.style.cssText = 'border-radius:5px;width:' + width + 'px;font-size:12px;border:1px solid #000;position:absolute;background:#FFFFBB;padding:1px;color:#000;top:' + y + 'px;left:' + x + 'px;z-index:1000'; document.body.appendChild(div); return div; } /** * 初始化 * [init description] * @return {[type]} [description] */ ElementTips.prototype.init = function() { isJquery ? this.jqueryEvent() : this.baseEvent(); }; /** * jQuery实现 * [jqueryEvent description] * @return {[type]} [description] */ ElementTips.prototype.jqueryEvent = function() { var _this = this; $(':input').mouseover(function(e) { var val = _this.getElementValCommand(e), position = _this.mousePosition(e); if (!val) { return; } $(this).data('data', _this.createTips(position.x, position.y, val, $(this).width())); }).mouseout(function() { if ($(this).data('data')) { document.body.removeChild($(this).data('data')); } }).mousemove(function(e) { if ($(this).data('data')) { var position = _this.mousePosition(e); $($(this).data('data')).css({ "top": position.y + "px", "left": position.x + "px" }); } }) } /** * JS实现 * [baseEvent description] * @return {[type]} [description] */ ElementTips.prototype.baseEvent = function() { var _this = this, tagNames = "INPUT,TEXTAREA,SELECT", typs = "TEXT"; function elementEvent(type) { var inputs = document.getElementsByTagName(type); for (var i = 0, len = inputs.length; i < len; i++) { var item = inputs[i]; (function(item) { var tagName = item.tagName.toUpperCase(), type = item.type.toUpperCase(); if (tagNames.indexOf(tagName) !== -1) { if (tagName !== "INPUT") { bindMouseEvent(item); } else { if (type === "TEXT") { bindMouseEvent(item); } } } })(item); } } //绑定事件 function addEvent(element, type, handler) { if (window.addEventListener) { addEvent = function(element, type, handler) { element.addEventListener(type, handler, false); } } else if (window.attachEvent) { addEvent = function(element, type, handler) { element.attachEvent('on'+type, handler); } } else { addEvent = function(element, type, handler) { element['on' + type] = handler; } } addEvent(element, type, handler); } //绑定鼠标事件 function bindMouseEvent(item) { addEvent(item, 'mouseover', function(e) { var val = _this.getElementValCommand(e), position = _this.mousePosition(e); _this.createTips(position.x, position.y, val, item.clientWidth); }); addEvent(item, 'mouseout', function(e) { if (_this.id) { document.body.removeChild(document.getElementById(_this.id)); } }); addEvent(item, 'mousemove', function(e) { var position = _this.mousePosition(e), element = document.getElementById(_this.id); element.style.top = position.y + 'px'; element.style.left = position.x + 'px'; }); } var array = tagNames.split(','); array.forEach(function(item) { elementEvent(item.toLowerCase()); }) } /** * 鼠标位置 * [mousePosition description] * @param {[type]} e [description] * @return {[type]} [description] */ ElementTips.prototype.mousePosition = function(e) { return { x: e.pageX + 10, y: e.pageY + 10 } } /** * 获取元素属性值 * [getElementVal description] * @param {[type]} e [description] * @return {[type]} [description] */ ElementTips.prototype.getElementValCommand = function(e) { var target = e.target || e.srcElement, tagName = target.tagName.toUpperCase(); var elementTag = { "SELECT": function() { return target.options[target.options.selectedIndex].text; }, "INPUT": function() { var _type = target.type.toUpperCase(); var type = { "TEXT": function() { return target.value; } } return type[_type] ? type[_type]() : ''; }, "TEXTAREA": function() { return target.value; } } return elementTag[tagName] ? elementTag[tagName]() : ''; } var elementTips = new ElementTips(); elementTips.init(); })(this, this.jQuery);
相关推荐
描述中提到的“OC 键盘遮挡输入框万能解决方案(多个输入框)”表明这是一个基于Objective-C(简称OC)语言的解决方案,适用于有多个局部变量输入框的场景。 首先,我们需要理解iOS中的Auto Layout机制。这是苹果为...
Android 软键盘挡住输入框问题的终极解决方案 Android 软键盘挡住输入框问题是 Android 开发中一个经典的问题,特别是在使用 WebView 的情况下。这篇文章将详细介绍这个问题的成因、解决方案和最终的解决方法。 在...
本文将详细探讨这一问题的原因,并提供几种可行的解决方案。 #### 一、问题分析 1. **浏览器兼容性问题**:不同的浏览器对HTML/CSS/JavaScript的支持程度可能存在差异,导致某些功能在特定浏览器上无法正常运行。 ...
Android软键盘挡住输入框问题的终极解决方案 Android开发中,软键盘挡住输入框是一个常见的问题,本文将详细讲解该问题的解决方案。 一、问题描述 在Android开发中,软键盘挡住输入框是一个非常常见的问题。这种...
这些库通常封装了各种解决方案,简化了开发过程,但可能引入额外的依赖。 5. **方法五:监听键盘事件** - 可以通过监听输入法的状态变化,动态修改布局参数。比如,当检测到键盘弹出时,将关键元素上移,键盘收起...
标题"Android-键盘挡住输入框终极解决办法"正是针对这一常见问题,而描述中的“终极解决办法”暗示我们将探讨一种全面且有效的解决方案。在"Android开发-其它杂项"这一标签下,我们可以知道这个问题虽然不是Android...
标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...
在Android Studio开发...总的来说,解决“android studio3.0 五笔输入法不显示输入框”的问题需要对软件环境有一定的理解,通过替换JRE文件夹通常是有效的解决方案。保持耐心和细心,你一定能找到适合你的解决方法。
总的来说,解决WebGL输入框无法输入中文的问题,需要理解WebGL与浏览器交互的机制,以及如何利用特定的插件或自定义解决方案来克服这个限制。对于开发人员来说,这既是技术挑战,也是对创新和问题解决能力的考验。
另一个接近理想的解决方案是在输入框获得焦点时,添加一个与键盘高度相当的空div,使页面产生滚动条,从而避免输入框被遮挡。当键盘收起时,这个div可以被删除或隐藏,恢复页面原始状态。然而,这个方法的问题在于,...
本文将总结输入框测试中的一些常见问题和解决方案。 一、输入框测试的重要性 输入框是软件系统中最基本也是最重要的一部分,它直接影响到用户的使用体验和数据的安全性。输入框测试的目的是为了确保输入框能够正确...
关于IDEA2017.2.5 输入法 中文输入框无法显示问题的解决方案 配合下载jre64使用
在实际开发中,你可能需要根据项目的具体需求对这些配置进行微调,但总的来说,PPKeyboardActor提供的是一种高效且低侵入性的解决方案。 此外,对于Swift开发中的其他杂项问题,开发者还应该关注如AutoLayout、...
**软键盘遮挡解决方案** 1. **调整布局**: 可以通过动态修改布局参数,如在软键盘弹出时将整个界面向上推移,以避免被键盘遮挡。这通常需要监听键盘的状态变化,例如在Android中可以使用`onGlobalLayoutListener`来...
前言 近期参与了一个招聘类app的开发,注册流程比较多,基本都是cell带输入框的表单列表...弹出键盘会遮挡输入框,想要让输入框显示出来,我们有两个办法,第一可以向上修改整个列表view的frame的y值,第二可以修改列
上述的示例代码,特别是`OverrideLinearLayout`,可能是提供了一个自定义布局的解决方案,通过调整布局的测量和布局过程来适应软键盘的出现。你可以通过查看源码中的`OverrideLinearLayout`类来了解更多细节,并根据...
#### 解决方案 本方案采用了一种较为巧妙的技术手段,即通过动态改变输入框的类型(`type`属性)来避免Chrome浏览器的自动填充行为。具体来说,当用户开始输入密码时,将输入框的类型从`text`改为`password`;当...
在提供的压缩包文件中,`CSharptextbox输入框自动提示功能.sln`是Visual Studio解决方案文件,它包含了项目的整体结构和依赖关系。`.suo`文件是用户特定的配置信息,可能包含了调试设置、窗口布局等。`.cs`文件是C#...
标题"ios-键盘遮挡输入框处理.zip"所提及的问题正是针对这种情况,而压缩包中的"SCAutoMove"可能是提供了解决方案的一个类或者框架。下面我们将详细讨论如何处理键盘遮挡输入框的问题,并探讨可能的解决方案。 首先...
使用尺寸资源(dimens.xml)和图标的可缩放矢量图形(SVG)是常用的解决方案。 8. **性能优化** 当处理大量表情时,要考虑内存优化和性能问题。使用高效的列表视图(如RecyclerView)和缓存机制可以避免内存泄漏和...