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 相关文章推荐
jQuery使用手册之 事件处理
Mar 24 Javascript
小议Javascript中的this指针
Mar 18 Javascript
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
javascript改变position值实现菜单滚动至顶部后固定
Jan 18 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
node.js中的path.sep方法使用说明
Dec 08 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
Dec 04 Javascript
vue使用map代替Aarry数组循环遍历的方法
Apr 30 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 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
apache+php+mysql安装配置方法小结
2010/08/01 PHP
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
python实现计算倒数的方法
2015/07/11 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
Python中的日期时间处理详解
2016/11/17 Python
python实现下载文件的三种方法
2017/02/09 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python 追踪except信息方式
2020/04/25 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
三方协议书范本
2014/04/22 职场文书
授权委托书格式范文
2014/08/02 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android