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 dom 操作详解 js加强
Jul 13 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
Oct 23 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
javascript实现简单的鼠标拖动效果实例
Apr 10 Javascript
手机端转盘抽奖代码分享
Sep 10 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
Aug 01 Javascript
第一次接触神奇的Bootstrap
Oct 14 Javascript
Bootstrap整体框架之CSS12栅格系统
Dec 15 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
Servlet返回的数据js解析2种方法
Dec 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中看实例学正则表达式
2006/12/25 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
python生成九宫格图片
2018/11/19 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python实现弹跳小球
2019/05/13 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
关于建议书的格式范文
2014/05/20 职场文书
医院标语大全
2014/06/23 职场文书
老公婚前保证书
2015/02/28 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers