Jquery实现弹性滑块滑动选择数值插件


Posted in Javascript onAugust 08, 2015

做了一个类似于阿里云弹性计算中的滑块效果,可以自由滑动滑块,并且计算刻度。基于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>

演示图:

Jquery实现弹性滑块滑动选择数值插件

演示地址:http://demo.3water.com/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

Javascript 相关文章推荐
javascript new后的constructor属性
Aug 05 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
JS实现进入页面时渐变背景色的方法
Feb 25 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
Aug 10 Javascript
vuex 中插件的编写案例解析
Jun 10 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 #Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 #Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
Aug 08 #Javascript
jQuery实现的Div窗口震动效果实例
Aug 07 #Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 #Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 #Javascript
jQuery基于ajax实现星星评论代码
Aug 07 #Javascript
You might like
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
新手简单了解vue
2019/05/29 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
运动会稿件200字
2014/02/07 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
最新离婚协议书范本
2014/08/19 职场文书
就业意向书范本
2015/05/11 职场文书
食品卫生管理制度
2015/08/06 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers