简单jquery代码实现拖拉进度条数值效果
通过拖拉进度条改变指定数值。
HTML代码
<div class="data"> ( <i data="20">0.7</i> 元 ) </div> <div class="drag"> <div class="line"> <div class="v"></div> <div class="star"></div> </div> </div>
CSS代码
.drag {overflow:hidden;padding:8.5px 18px 8.5px 4px;} .line {height:3px;background-color:#d3d3d3;position:relative;} .v {background-color:#0732a3;width:0;height:3px;position:relative;} .star {width:22px;height:20px;background:url(../images/icon_1.png) no-repeat center center;background-size:contain;position:absolute;left:0;top:50%;margin-left:-4px;margin-top:-10px;cursor:move;}
PS:样式请在这个基础上自行调整
jQuery代码
$(function(){ var obj; var move = false; var left = 0; var defaultX = 0; var line = 0; var pixel = 0; $('.star').mousedown(function(e){ obj = $(this); //获取当前元素 move = true; left = obj.position().left; //按钮位置 defaultX = e.pageX - left; //pageX的值 - 拖拉按钮的 left 值 = 进度条的pageX的值 line = Number(obj.parents('.line').width()); // 获取line的宽度,并把字符串转换可计算的数值 pixel = Number(obj.parents('.drag').siblings('.data').children('i').attr('data')) / line; // 计算拖拉1px 等于 多少 元 }); $(document).mouseup(function(){ move = false; }); $(document).mousemove(function(e){ if(move){ left = e.pageX - defaultX; //鼠标移动时的pageX值 减去 进度条的pageX值 就是 进度条的宽度,也拖拉按钮的 left 值 if(left < 0){ //可以理解为进度条宽度=0时 left = 0; } if(left > line) { //进度条的最大宽度不超链进度的最大宽度 left = line; } obj.css('left',left); //重新定义拖拉按钮的位置 obj.siblings().width(left); //重新定义进度条的长度 obj.parents('.drag').siblings('.data').children('i').text((pixel * left).toFixed(2)); //改变金额的大小 } }); });
<< 上一篇
下一篇 >>