最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS 仿支付寶input文本輸入框放大組件的實(shí)例

 更新時(shí)間:2017年11月14日 08:39:22   作者:一夢(mèng)_浮生  
下面小編就為大家?guī)?lái)一篇JS 仿支付寶input文本輸入框放大組件的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

input輸入的時(shí)候可以在后邊顯示數(shù)字放大鏡

<!doctype html>
<html lang="en">
 <head>
 <meta charset="UTF-8">
 <title>JS 仿支付寶input文本輸入框放大組件</title>
 <script src="js/jquery.min.js"></script>
 <style>
  * { 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; }
 </style>
 </head>
 <body>
 <div class="parentCls">
  <input type="text" class="inputElem4" autocomplete = "off" maxlength="18"/>
 </div>
  <script src="js/jq22.js"></script>
  <script>
   // 初始化
   $(function(){
   new TextMagnifier({
    inputElem: '.inputElem4',
    align: 'bottom',
    splitType: [6,4,4,4]
   });
   });
  </script>
 </body>
</html>
/**
 * JS 仿支付寶的文本輸入框放大組件
 */ 


 function TextMagnifier(options) {

  this.config = {
  
  inputElem   :  '.inputElem',  // 輸入框目標(biāo)元素
  parentCls   :  '.parentCls',  // 目標(biāo)元素的父類
  align    :  'right',   // 對(duì)齊方式有 ['top','bottom','left','right']四種 默認(rèn)為top
  splitType   :  [3,4,4],   // 拆分規(guī)則
  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后動(dòng)態(tài)添加HTML內(nèi)容
  * @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 += '<div class="js-max-input"></div>';
    $($parent).append(html);
    }
    var value = self._formatStr(value);
    $('.js-max-input',$parent).html(value);
  },
  /*
  * 給目標(biāo)元素定位
  * @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;

  // 實(shí)時(shí)監(jiān)聽輸入框值的變化
  $(_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;
  }
  }
 };

效果圖

以上這篇JS 仿支付寶input文本輸入框放大組件的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascritp添加url參數(shù)將參數(shù)加入到url中

    javascritp添加url參數(shù)將參數(shù)加入到url中

    javascritp添加url參數(shù)方法,將參數(shù)加入到url中,如果原來(lái)url中有則覆蓋,下面是示例代碼,感興趣的朋友可以參考下
    2014-09-09
  • javascript與css3動(dòng)畫結(jié)合使用小結(jié)

    javascript與css3動(dòng)畫結(jié)合使用小結(jié)

    本文給大家講述的是如何使用javascript結(jié)合CSS動(dòng)畫來(lái)實(shí)現(xiàn)一些占用資源更少,更優(yōu)化的動(dòng)畫效果,思路十分巧妙,這里推薦給小伙伴們參考下。
    2015-03-03
  • JS自動(dòng)倒計(jì)時(shí)30秒后按鈕才可用(兩種場(chǎng)景)

    JS自動(dòng)倒計(jì)時(shí)30秒后按鈕才可用(兩種場(chǎng)景)

    在WEB程序開發(fā)中經(jīng)常會(huì)見到用倒計(jì)時(shí)限制用戶對(duì)表單的操作,希望用戶在規(guī)定的時(shí)間內(nèi)閱讀完協(xié)議信息才允許用戶繼續(xù)下一步操作,本文通過(guò)兩種場(chǎng)景分析js實(shí)現(xiàn)自動(dòng)倒計(jì)時(shí)30秒后按鈕才可用,小伙伴快來(lái)學(xué)習(xí)吧
    2015-08-08
  • Javascript快速實(shí)現(xiàn)瀏覽器系統(tǒng)通知

    Javascript快速實(shí)現(xiàn)瀏覽器系統(tǒng)通知

    這篇文章給大家介紹了Javascript快速實(shí)現(xiàn)瀏覽器系統(tǒng)通知的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-08-08
  • 鼠標(biāo)移入移出改變CSS樣式的小例子

    鼠標(biāo)移入移出改變CSS樣式的小例子

    本篇文章介紹鼠標(biāo)移入移出改變CSS樣式的實(shí)例演示,需要的朋友可以參考一下
    2013-06-06
  • Echarts實(shí)現(xiàn)多條折線可拖拽效果

    Echarts實(shí)現(xiàn)多條折線可拖拽效果

    這篇文章主要為大家詳細(xì)介紹了Echarts實(shí)現(xiàn)多條折線可拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 用js簡(jiǎn)單提供增刪改查接口

    用js簡(jiǎn)單提供增刪改查接口

    這篇文章主要介紹了用js簡(jiǎn)單提供增刪改查接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 微信小程序中轉(zhuǎn)義字符的處理方法

    微信小程序中轉(zhuǎn)義字符的處理方法

    這篇文章主要介紹了微信小程序中轉(zhuǎn)義字符的處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • javascript實(shí)現(xiàn)ecshop搜索框鍵盤上下鍵切換控制

    javascript實(shí)現(xiàn)ecshop搜索框鍵盤上下鍵切換控制

    這篇文章主要介紹了javascript實(shí)現(xiàn)ecshop搜索框鍵盤上下鍵切換控制,需要的朋友可以參考下
    2015-03-03
  • JavaScript 亂碼問(wèn)題

    JavaScript 亂碼問(wèn)題

    在用js寫網(wǎng)頁(yè)時(shí),如果html等內(nèi)容全部用document.write輸出,包括<html>、<meta等標(biāo)簽,當(dāng)嵌套時(shí),會(huì)出現(xiàn)輸出內(nèi)容為亂碼的問(wèn)題
    2009-08-08

最新評(píng)論

天气| 邢台县| 大新县| 顺昌县| 武定县| 丰都县| 达拉特旗| 宜丰县| 乐清市| 儋州市| 新津县| 旬阳县| 大足县| 错那县| 成安县| 灌云县| 五家渠市| 新乐市| 南木林县| 鹤庆县| 应城市| 汕尾市| 兰溪市| 泸西县| 琼海市| 星座| 东港市| 稻城县| 雷州市| 左云县| 慈溪市| 汕尾市| 从化市| 绵竹市| 横山县| 葵青区| 长泰县| 临夏县| 西和县| 日土县| 蕲春县|