`
dang1314520ga
  • 浏览: 7244 次
社区版块
存档分类
最新评论

输入框显示不全解决方案

阅读更多

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);

 

 

  • 大小: 13.1 KB
分享到:
评论

相关推荐

    iOS 键盘遮挡输入框万能解决方案(多个输入框)

    描述中提到的“OC 键盘遮挡输入框万能解决方案(多个输入框)”表明这是一个基于Objective-C(简称OC)语言的解决方案,适用于有多个局部变量输入框的场景。 首先,我们需要理解iOS中的Auto Layout机制。这是苹果为...

    Android爬坑之旅:软键盘挡住输入框问题的终极解决方案.docx

    Android 软键盘挡住输入框问题的终极解决方案 Android 软键盘挡住输入框问题是 Android 开发中一个经典的问题,特别是在使用 WebView 的情况下。这篇文章将详细介绍这个问题的成因、解决方案和最终的解决方法。 在...

    网页输入框不能输入解决办法

    本文将详细探讨这一问题的原因,并提供几种可行的解决方案。 #### 一、问题分析 1. **浏览器兼容性问题**:不同的浏览器对HTML/CSS/JavaScript的支持程度可能存在差异,导致某些功能在特定浏览器上无法正常运行。 ...

    Android 爬坑之旅:软键盘挡住输入框问题的终极解决1

    Android软键盘挡住输入框问题的终极解决方案 Android开发中,软键盘挡住输入框是一个常见的问题,本文将详细讲解该问题的解决方案。 一、问题描述 在Android开发中,软键盘挡住输入框是一个非常常见的问题。这种...

    5种方法完美解决android软键盘挡住输入框方法详解

    这些库通常封装了各种解决方案,简化了开发过程,但可能引入额外的依赖。 5. **方法五:监听键盘事件** - 可以通过监听输入法的状态变化,动态修改布局参数。比如,当检测到键盘弹出时,将关键元素上移,键盘收起...

    Android-键盘挡住输入框终极解决办法

    标题"Android-键盘挡住输入框终极解决办法"正是针对这一常见问题,而描述中的“终极解决办法”暗示我们将探讨一种全面且有效的解决方案。在"Android开发-其它杂项"这一标签下,我们可以知道这个问题虽然不是Android...

    IOS 解决输入框被键盘遮挡问题

    标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...

    解决webgl输入框无法输入中文插件

    总的来说,解决WebGL输入框无法输入中文的问题,需要理解WebGL与浏览器交互的机制,以及如何利用特定的插件或自定义解决方案来克服这个限制。对于开发人员来说,这既是技术挑战,也是对创新和问题解决能力的考验。

    android studio3.0 五笔输入法不显示输入框

    在Android Studio开发...总的来说,解决“android studio3.0 五笔输入法不显示输入框”的问题需要对软件环境有一定的理解,通过替换JRE文件夹通常是有效的解决方案。保持耐心和细心,你一定能找到适合你的解决方法。

    安卓输入框被虚拟键盘挡住的问题(微信开发)

    另一个接近理想的解决方案是在输入框获得焦点时,添加一个与键盘高度相当的空div,使页面产生滚动条,从而避免输入框被遮挡。当键盘收起时,这个div可以被删除或隐藏,恢复页面原始状态。然而,这个方法的问题在于,...

    输入框的测试问题汇总。

    本文将总结输入框测试中的一些常见问题和解决方案。 一、输入框测试的重要性 输入框是软件系统中最基本也是最重要的一部分,它直接影响到用户的使用体验和数据的安全性。输入框测试的目的是为了确保输入框能够正确...

    idea 不能输入汉字且输入法不显示可选汉字

    关于IDEA2017.2.5 输入法 中文输入框无法显示问题的解决方案 配合下载jre64使用

    swift-PPKeyboardActor非常轻量级的键盘遮挡输入框解决方案

    在实际开发中,你可能需要根据项目的具体需求对这些配置进行微调,但总的来说,PPKeyboardActor提供的是一种高效且低侵入性的解决方案。 此外,对于Swift开发中的其他杂项问题,开发者还应该关注如AutoLayout、...

    键盘遮挡输入框 界面多个输入框

    **软键盘遮挡解决方案** 1. **调整布局**: 可以通过动态修改布局参数,如在软键盘弹出时将整个界面向上推移,以避免被键盘遮挡。这通常需要监听键盘的状态变化,例如在Android中可以使用`onGlobalLayoutListener`来...

    iOS中表单列表样式键盘遮挡的解决方案

    前言 近期参与了一个招聘类app的开发,注册流程比较多,基本都是cell带输入框的表单列表...弹出键盘会遮挡输入框,想要让输入框显示出来,我们有两个办法,第一可以向上修改整个列表view的frame的y值,第二可以修改列

    android解决软键盘遮挡输入框的示例代码

    上述的示例代码,特别是`OverrideLinearLayout`,可能是提供了一个自定义布局的解决方案,通过调整布局的测量和布局过程来适应软键盘的出现。你可以通过查看源码中的`OverrideLinearLayout`类来了解更多细节,并根据...

    Chrome禁止输入框弹出已经记录的密码方案,测试有效.txt

    #### 解决方案 本方案采用了一种较为巧妙的技术手段,即通过动态改变输入框的类型(`type`属性)来避免Chrome浏览器的自动填充行为。具体来说,当用户开始输入密码时,将输入框的类型从`text`改为`password`;当...

    textbox输入框自动提示功能

    在提供的压缩包文件中,`CSharptextbox输入框自动提示功能.sln`是Visual Studio解决方案文件,它包含了项目的整体结构和依赖关系。`.suo`文件是用户特定的配置信息,可能包含了调试设置、窗口布局等。`.cs`文件是C#...

    ios-键盘遮挡输入框处理.zip

    标题"ios-键盘遮挡输入框处理.zip"所提及的问题正是针对这种情况,而压缩包中的"SCAutoMove"可能是提供了解决方案的一个类或者框架。下面我们将详细讨论如何处理键盘遮挡输入框的问题,并探讨可能的解决方案。 首先...

    Android之仿QQ输入框

    使用尺寸资源(dimens.xml)和图标的可缩放矢量图形(SVG)是常用的解决方案。 8. **性能优化** 当处理大量表情时,要考虑内存优化和性能问题。使用高效的列表视图(如RecyclerView)和缓存机制可以避免内存泄漏和...

Global site tag (gtag.js) - Google Analytics