做了一个类似于阿里云弹性计算中的滑块效果,可以自由滑动滑块,并且计算刻度。基于jQuery实现,小伙伴们不要忘记载入jquery哦
CSS
.main { margin: 0 auto; margin-top: 100px; width: 500px; font-family: 微软雅黑; -webkit-user-select: none; } .contain { width: 500px; height: 40px; background-color: #E8E8E8; } .track { width: 16px; height: 46px; position: absolute; margin: -3px 0 0 0px; background-color: #2dacd1; cursor: pointer; } .valueC { height: 40px; position: absolute; margin: 0; background-color: #43BFE3; } .value span { position: absolute; text-align: right; height: 40px; line-height: 40px; color: #808080; border-right: 1px solid #dddddd; } .show { width: 45px; height: 30px; background-color: #333; color: #fff; text-align: center; line-height: 30px; position: absolute; opacity: 0.9; margin-top: -38px; margin-left: -15px; }
HTML
<div class=\"main\"> <div class=\"contain\"> <div class=\"show\">0</div> <div class=\"valueC\"></div> <div class=\"value\"> </div> <div class=\"track\"></div> </div> </div>
JS
<script type=\"text/javascript\" src=\"/js/jquery-1.8.0.min.js\"></script> <script type=\"text/javascript\"> $(function(){ScrollerTrack.Init();}); var ScrollerTrack={ BodyWidth:500, MaxValue:300, CurrentX:0, CurrentValue:0, Count:0, Init:function(){ var mWidth=ScrollerTrack.BodyWidth; $(\".contain\").css(\"width\",mWidth+\"px\"); var count=ScrollerTrack.MaxValue/50; ScrollerTrack.Count=count; var itemWidth=mWidth/count; for(var i=0;i<count;i++){ var span=$(\"<span>\"+(i+1)*50+\"</span>\"); $(span).css(\"width\",itemWidth+\"px\").css(\"margin-left\",i*itemWidth+\"px\"); $(\".value\").append(span); } ScrollerTrack.Value(); }, Value:function(){ var currentValue; var isMoving=false; ScrollerTrack.CurrentX=$(\".track\").offset().left; $(\".track\").mousedown(function() { var target=$(this).parent(); isMoving=true; $(\"html,body\").mousemove(function(event) { if(isMoving==false)return; var changeX = event.clientX - ScrollerTrack.CurrentX; currentValue = changeX - ScrollerTrack.CurrentX; if(changeX<=0){ $(target).find(\".track\").css(\"margin-left\", \"0px\"); $(target).find(\".valueC\").css(\"width\", \"0px\"); $(target).find(\".show\").css(\"margin-left\", \"-15px\"); $(target).find(\".show\").html(0); ScrollerTrack.CurrentValue=0; } else if(changeX>=ScrollerTrack.BodyWidth-16){ $(target).find(\".track\").css(\"margin-left\", ScrollerTrack.BodyWidth-16+\"px\"); $(target).find(\".valueC\").css(\"width\",ScrollerTrack.BodyWidth-16+\"px\"); $(target).find(\".show\").css(\"margin-left\", ScrollerTrack.BodyWidth-31+\"px\"); $(target).find(\".show\").html(ScrollerTrack.MaxValue); ScrollerTrack.CurrentValue=ScrollerTrack.MaxValue; } else{ $(target).find(\".track\").css(\"margin-left\", changeX+\"px\"); $(target).find(\".valueC\").css(\"width\", changeX+\"px\"); $(target).find(\".show\").css(\"margin-left\", changeX-15+\"px\"); var v=ScrollerTrack.MaxValue*((changeX+16)/ScrollerTrack.BodyWidth); $(target).find(\".show\").html(parseInt(v)); ScrollerTrack.CurrentValue=parseInt(v); } }); }); $(\"html,body\").mouseup(function() { isMoving=false; }); } } </script>
演示图:
演示地址:http://demo.phpstudy.net/js/2015/jquery-txhk/
另外推荐一款范围选择器插件jRange,它是基于jQuery的一款简单插件。下面我们来看下插件jRange的使用。
HTML
首先载入jQuery库文件以及jRange相关的css文件:jquery.range.css和插件:jquery.range.js
<script src=\"jquery.js\"></script> <link rel=\"stylesheet\" href=\"jquery.range.css\"> <script src=\"jquery.range.js\"></script>
然后在需要展示滑块选择器的位置放入以下代码:
<input type=\"hidden\" class=\"slider-input\" value=\"23\" />
我们使用了hiiden类型的文本域,设置默认值value,如23。
jQuery
调用jRange插件非常简单,直接用下面的代码:
$(\'.single-slider\').jRange({ from: 0, to: 100, step: 1, scale: [0,25,50,75,100], format: \'%s\', width: 300, showLabels: true, showScale: true });
更多信息请参阅jRange项目官网:https://github.com/nitinhayaran/jRange
本文地址:https://www.stayed.cn/item/21018
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我