`

jQuery插件jQuery Spin Button自定义文本框数值自增或自减

阅读更多
/**
 *  jquery.spin-button
 *  (c) 2008 Semooh (http://semooh.jp/)
 *
 *  Dual licensed under the MIT (MIT-LICENSE.txt)
 *  and GPL (GPL-LICENSE.txt) licenses.
 *
 **/
(function($){
  $.fn.extend({
    spin: function(opt){
      return this.each(function(){
        opt = $.extend({
            imageBasePath: 'img/spin/',
            spinBtnImage: 'spin-button.png',
            spinUpImage: 'spin-up.png',
            spinDownImage: 'spin-down.png',
            interval: 1,
            max: null,
            min: null,
            timeInterval: 500,
            timeBlink: 200
          }, opt || {});
        
        var txt = $(this);
        
        var spinBtnImage = opt.imageBasePath+opt.spinBtnImage;
        var btnSpin = new Image();
        btnSpin.src = spinBtnImage;
        var spinUpImage = opt.imageBasePath+opt.spinUpImage;
        var btnSpinUp = new Image();
        btnSpinUp.src = spinUpImage;
        var spinDownImage = opt.imageBasePath+opt.spinDownImage;
        var btnSpinDown = new Image();
        btnSpinDown.src = spinDownImage;
        
        var btn = $(document.createElement('img'));
        btn.attr('src', spinBtnImage);
        btn.css({cursor: 'pointer', verticalAlign: 'bottom', padding: 0, margin: 0});
        txt.after(btn);
        txt.css({marginRight:0, paddingRight:0});
        
        function spin(vector){
          var val = txt.val();
          if(!isNaN(val)){
            val = parseFloat(val) + (vector*opt.interval);
            if(opt.min!=null && val<opt.min) val=opt.min;
            if(opt.min!=null && val>opt.max) val=opt.max;
            if(val != txt.val()){
              txt.val(val);
              txt.change();
              src = (vector > 0 ? spinUpImage : spinDownImage);
              btn.attr('src', src);
              if(opt.timeBlink<opt.timeInterval)
                setTimeout(function(){btn.attr('src', spinBtnImage);}, opt.timeBlink);
            }
          }
        }
        
        btn.mousedown(function(e){
          var pos = e.pageY - btn.offset().top;
          var vector = (btn.height()/2 > pos ? 1 : -1);
          (function(){
            spin(vector);
            var tk = setTimeout(arguments.callee, opt.timeInterval);
            $(document).one('mouseup', function(){
              clearTimeout(tk); btn.attr('src', spinBtnImage);
            });
          })();
          return false;
        });
      });
    }
  });
})(jQuery);

<script type="text/javascript" src="http://www.biuuu.com/demo/jquery.js"></script>
<script type="text/javascript" src="http://www.biuuu.com/demo/jquery_spin_button/jquery.spin.js"></script>

<script type="text/javascript">
$(document).ready(function(){
  $('#number').spin();
  //$('#number').spin({interval:10});
  //$('#number').spin({max:100,min: -100});
  //$('#number').spin({imageBasePath: '/images/'});
});
</script>
<input type="text" id="number" value="0" />


素材准备
上下按钮图片,默认路径为:/img/spin/,上下按钮图片命名为:spin-button.png,可进行自定义修改

实例代码
一,包含文件部分

   1. <script type="text/javascript" src="jquery.js"></script>
   2. <script type="text/javascript" src="jquery.spin.js"></script>

二,HTML部分(自定义文本框)

   1. <input type="text" id="number" value="0" />

三,javascript部分(jQuery插件jQuery Spin Butt调用)

   1. <script type="text/javascript">
   2. $(document).ready(function(){
   3. $('#number').spin();
   4. });
   5. </script>

由上可知,使用jQuery插件jQuery Spin Button自定义文本框数值自增或自减非常简单,只需要设置好按钮图片,数值的初始值,就可实现自定义文本框数值自增或自减功能。

四,用户自定义配置
imageBasePath: '/img/spin/',按钮图片路径
spinBtnImage: 'spin-button.png',图片按钮图片名
spinUpImage: 'spin-up.png', 向上自增按钮图片名
spinDownImage: 'spin-down.png', 向下自减按钮图片名
interval: 1,步长值
max: null,  最大值
min: null, 最小值
timeInterval: 500,  点击时间间隔
timeBlink: 200  点击闪烁时间

1,自定义步长值为10(代码同上javascript部分)
$('#number').spin({interval:10});

2,自定义最大值与最小值
$('#number').spin({max:100,min: -100});

3,自定义按钮图片路径
$('#number').spin({imageBasePath: '/images/'});

jQuery插件jQuery Spin Button自定义配置对于定制个性化的文本框数值自增自减功能非常方便,使用也非常简单,总的来说,自定义文本框数值自增或自减使用jQuery插件jQuery Spin Button一行代码轻松搞定。

查看演示:http://www.biuuu.com/demo/jquery_spin_button/jquery_spin.html
分享到:
评论

相关推荐

    基于jQuery的Spin Button自定义文本框数值自增或自减(测试案例)

    在本文中,我们将深入探讨如何使用jQuery库创建一个自定义的Spin Button,也称为数值选择器,用于文本框中的数值自增或自减。这个功能常见于许多网页表单,尤其是涉及数量输入的地方,比如购物车的商品数量调整。...

    jQuery插件自定义文本框数值自增或自减

    jQuery Spin Button是一款基于jQuery的插件,用于在文本框中实现数值的自增或自减功能,它为用户提供了方便的交互方式,尤其适用于输入数量、评分等需要增减数值的场景。这款插件通常应用于电子商务网站的商品购买...

    基于jQuery的Spin Button自定义文本框数值自增或自减

    有时候在设计表单时需要对文本框实现数值自增或自减功能,例如默认为1,点击向上按钮键则增加指定步长值,点击向下按钮键则减少指定步长值,使用jQuery插件jQuery Spin Button只需要几行代码就可实现该功能,效果如...

    jQuery Spin button 文本框数值自动增减插件

    jQuery Spin Button插件就是这样一个工具,它能够为HTML文本框添加上下箭头,使得用户可以通过点击这些箭头来自动增减文本框内的数值,而无需手动输入。这种功能常见于商品数量选择、评分系统或任何需要调整数字值的...

    50多个jQuery插件使用详解

    50多个jQuery插件使用详解: 1 JQuery Pager分页器 2 jQuery Spin Button自定义文本框数值自增或自减 3 FontSizer实现Javascript自定义动态调整网页文字大小 4 Magnify放大镜实现javascript图片放大功能 等等.....

    jQuery Spin button 文本框数值自动增减效果.rar

    jQuery Spin button 是一款非常实用的前端插件,它主要用于文本框(input[type="text"])中的数值自动增减功能。这款插件利用了JavaScript库jQuery的强大功能,为用户提供了一种直观且易于操作的方式,以便在网页...

    240多个jQuery插件.doc

    - **jQuery Spin Button Control**: 数字上下调节按钮插件。 - **jQuery Ajax Form Builder**: 基于Ajax的表单构建器。 - **jQuery Focus Fields**: 表单元素聚焦效果。 - **jQuery Time Entry**: 时间输入插件。 #...

    240多个jQuery UI插件

    - **jQuery Spin Button Control**: 实现数值增减控制。 - **jQuery Ajax Form Builder**: 快速构建Ajax表单。 - **jQuery Focus Fields**: 自动聚焦到表单中的特定字段。 - **jQuery Time Entry**: 设置时间...

    jQueryEasyUIAPI中文文档

    ### jQueryEasyUI API中文文档概览 #### 一、Base基础 **1.1 Documentation文档** - **特性:** - 提供了基础组件的使用方法及API介绍。 - **事件:** - 无特别指出的基础事件通常遵循jQuery事件绑定机制。 - *...

Global site tag (gtag.js) - Google Analytics