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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值