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传递变量: 值传递?引用传递?
Feb 22 Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 Javascript
javascript实现禁止鼠标滚轮事件
Jul 24 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
如何提高Dom访问速度
Jan 05 Javascript
网页中的图片查看器viewjs使用方法
Jul 11 Javascript
详解webpack loader和plugin编写
Oct 12 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 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将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
python实现的解析crontab配置文件代码
2014/06/30 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
初中三年毕业生的自我评价分享
2014/02/14 职场文书
公司董事长岗位职责
2014/06/08 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
毕业证委托书范文
2014/09/26 职场文书
承租经营合作者协议书
2014/10/01 职场文书
暖春观后感
2015/06/08 职场文书
儿子满月酒致辞
2015/07/29 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
古诗之感恩老师
2019/10/24 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP