html5输入框自动放大镜,JS 仿支付宝input输入显示数字放大镜
本文就为大家带来一篇JS 仿支付宝input文本输入框放大组件的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
input输入的时候可以在后边显示数字放大镜
JS 仿支付宝input文本输入框放大组件
* { margin: 0; padding: 0; border-width: 1px; }
.parentCls {margin:5px 60px 0;}
.js-max-input {border: solid 1px #ffd2b2; position:relative;background: #fffae5;padding: 0 10px 0 10px;font-size:20px;color: #ff4400}
.inputElem4{ width: 300px; height: 36px; border: 1px solid #E0E0E0; padding-left: 10px; line-height: 36px; font-size: 14px; }
// 初始化
$(function(){
new TextMagnifier({
inputElem: '.inputElem4',
align: 'bottom',
splitType: [6,4,4,4]
});
});
/**
* JS 仿支付宝的文本输入框放大组件
*/
function TextMagnifier(options) {
this.config = {
inputElem : '.inputElem', // 输入框目标元素
parentCls : '.parentCls', // 目标元素的父类
align : 'right', // 对齐方式有 ['top','bottom','left','right']四种 默认为top
splitType : [3,4,4], // 拆分规则
delimiter : '-' // 分隔符可自定义
};
this.cache = {
isFlag : false
};
this.init(options);
}
TextMagnifier.prototype = {
constructor: TextMagnifier,
init: function(options) {
this.config = $.extend(this.config,options || {});
var self = this,
_config = self.config,
_cache = self.cache;
self._bindEnv();
},
/*
* 在body后动态添加HTML内容
* @method _appendHTML
*/
_appendHTML: function($this,value) {
var self = this,
_config = self.config,
_cache = self.cache;
var html = '',
$parent = $($this).closest(_config.parentCls);
if($('.js-max-input',$parent).length == 0) {
html += '
$($parent).append(html);
}
var value = self._formatStr(value);
$('.js-max-input',$parent).html(value);
},
/*
* 给目标元素定位
* @method _position
* @param target
*/
_position: function(target){
var self = this,
_config = self.config;
var elemWidth = $(target).outerWidth(),
elemHeight = $(target).outerHeight(),
elemParent = $(target).closest(_config.parentCls),
containerHeight = $('.js-max-input',elemParent).outerHeight();
$(elemParent).css({"position":'relative'});
switch(true){
case _config.align == 'top':
$('.js-max-input',elemParent).css({'position':'absolute','top' :-elemHeight - containerHeight/2,'left':0});
break;
case _config.align == 'left':
$('.js-max-input',elemParent).css({'position':'absolute','top' :0,'left':0});
break;
case _config.align == 'bottom':
$('.js-max-input',elemParent).css({'position':'absolute','top' :elemHeight + 4 + 'px','left':0});
break;
case _config.align == 'right':
$('.js-max-input',elemParent).css({'position':'absolute','top' :0,'left':elemWidth + 2 + 'px'});
break;
}
},
/**
* 绑定事件
* @method _bindEnv
*/
_bindEnv: function(){
var self = this,
_config = self.config,
_cache = self.cache;
// 实时监听输入框值的变化
$(_config.inputElem).each(function(index,item){
$(item).keyup(function(e){
var value = $.trim(e.target.value),
parent = $(this).closest(_config.parentCls);
if(value == '') {
self._hide(parent);
}else {
var html = $.trim($('.js-max-input',parent).html());
if(html != '') {
self._show(parent);
}
}
self._appendHTML($(this),value);
self._position($(this));
});
$(item).unbind('focusin');
$(item).bind('focusin',function(){
var parent = $(this).closest(_config.parentCls),
html = $.trim($('.js-max-input',parent).html());
if(html != '') {
self._show(parent);
}
});
$(item).unbind('focusout');
$(item).bind('focusout',function(){
var parent = $(this).closest(_config.parentCls);
self._hide(parent);
});
});
},
/**
* 格式化下
* @method _formatStr
*/
_formatStr: function(str){
var self = this,
_config = self.config,
_cache = self.cache;
var count = 0,
output = [];
for(var i = 0, ilen = _config.splitType.length; i < ilen; i++){
var s = str.substr(count,_config.splitType[i]);
if(s.length > 0){
output.push(s);
}
count+= _config.splitType[i];
}
return output.join(_config.delimiter);
},
/*
* 显示 放大容器
* @method _show
*/
_show: function(parent) {
var self = this,
_config = self.config,
_cache = self.cache;
if(!_cache.isFlag) {
$('.js-max-input',parent).show();
_cache.isFlag = true;
}
},
/*
* 隐藏 放大容器
* @method hide
* {public}
*/
_hide: function(parent) {
var self = this,
_config = self.config,
_cache = self.cache;
if(_cache.isFlag) {
$('.js-max-input',parent).hide();
_cache.isFlag = false;
}
}
};
效果图
相关推荐:
html5输入框自动放大镜,JS 仿支付宝input输入显示数字放大镜相关推荐
- html input标签 显示放大镜,JS 仿支付宝input文本输入框放大组件的实例
input输入的时候可以在后边显示数字放大镜 JS 仿支付宝input文本输入框放大组件 * { margin: 0; padding: 0; border-width: 1px; } .parent ...
- android 支付数字键盘,微信小程序自定义数字键盘|仿支付宝、微信支付数字软键盘...
(此图片来源于网络,如有侵权,请联系删除! ) 前几天有开发过一个html5仿支付宝.微信支付数字键盘,在某些特定场景下自定义数字键盘应用还是蛮广泛的,比如 小程序商城系统 需要零钱支付 ,会员卡支付 ...
- pythoninput输入数字_python中如何input输入为数字?
在python中想要输入的数字,但是可能会出现输入为1,显示为'1',得到的并不是数字字符的情况.要想要input输入为数字,可使用eval()函数或使用int()转换. 方法一:使用eval()函数 ...
- python中输入数字函数_python中如何input输入为数字?
在python中想要输入的数字,但是可能会出现输入为1,显示为'1',得到的并不是数字字符的情况.要想要input输入为数字,可使用eval()函数或使用int()转换. 方法一:使用eval()函数 ...
- Android 仿支付宝密码输入页面
简单页面,不一一介绍,直接上源码 ` package cn.npe1348.zfbpay.view; import android.content.Context; import android.te ...
- html的canvas显示数字,HTML5效果:Canvas 实现圆形进度条并显示数字百分比
实现效果 1.首先创建html代码 2.创建canvas环境 var canvas = document.getElementById('canvas'), //获取canvas元素 context ...
- element控制input输入为数字
input控制输入数字 方式一:通过正则表达式控制 这种方式是在输入不是数字的符号是转换为'' <el-input v-model="number" oninput=&quo ...
- html数字显示百分比,扣丁学堂html5 教程之Canvas实现圆形进度条并显示数字百分比效果...
今天扣丁学堂html5培训小编和大家分享一下Canvas实现圆形进度条并显示数字百分比效果示例,对html5感兴趣的小伙伴或者是参加学习的小伙伴可以了解一下. Canvas实现圆形进度条并显示数字百分 ...
- html5输入框自动放大镜,HTML5实现放大镜效果
看到很多网上的移动鼠标位置能显示图片放大的效果,刚开始用OC语言实现了一下,后来发现用HTML中的JS交互效果实现更加完美,就随手用HBuilder写了一下简单的实现代码,具体效果图如下: 需要两张同 ...
最新文章
- 手机蓝牙扫码怎么使用_手机自带的蓝牙功能那么好用,为什么使用的人却并不那么多?...
- Ubuntu13.04 下源码安装Rapidsvn
- 操作系统之多线程编程—读者优先/写者优先详解
- java jvm 内存参数_深入详解JVM内存模型与JVM参数详细配置
- org.dom4j.DocumentException: null Nested exception: null解决方法
- PostgreSQL 优化器代码概览 1
- 【OpenCV】OpenCV函数精讲之 -- createTrackbar()函数、getTrackbarPos()函数
- 第04章:MongoDB基本概念
- 基于jquery的全局ajax函数处理session过期后的ajax操作
- WEB2.0是什么东东?[转]
- 卡巴斯基互联网安全套装V6.0个人版激活码
- hive —— struct 复合结构
- 计算机任务管理器恢复默认,我的电脑中的任务管理器怎么打不开了,总是提示的“任务管理器已被系统管理员停用”,请问如何才能使任务管理器恢复正常。...
- Games 101 作业2 超详细说明
- word制作招聘启示文档教学
- [转]linux不需要磁盘碎片整理
- POI java导出Excel设置自适应行高
- 瑞萨CPU平台的GPIO模拟I2C之三:SPHE1002读写调用
- electron-builder打包见解
- 转载:如何做一个聪明的程序员
热门文章
- consul历史版本下载地址
- java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing
- `>>`(有符号右移) 和 `>>>`(无符号右移)的区别
- dart系列之:创建Library package
- 看动画学算法之:排序-count排序
- python抖音github_GitHub - eternal-flame-AD/Douyin-Bot: Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?...
- JUC队列-ConcurrentLinkedQueue(四)
- 判断对象存活方法及回收方法
- 【简便代码+解析】1056 组合数的和 (15分)_14行代码AC
- linux 性能教程,Linux系统下常见性能分析工具的使用