JS响应鼠标点击实现两个滑块区间拖动效果


Posted in Javascript onOctober 26, 2015

本文实例讲述了JS实现的两个滑块区间拖动效果代码。分享给大家供大家参考,具体如下:

网页上的滑块功能如何实现呢?其实用JS就可以,这就是一个网页滑块,两个滑块可以任意拖动,形成一个滑块区间,而且代码兼容IE和其它主流的浏览器,两个滑块确定一个区间范围。

运行效果截图如下:

JS响应鼠标点击实现两个滑块区间拖动效果

在线演示地址如下:

具体代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title> js双滑块区间</title>
<style type='text/css'>
#range{position:relative;width:148px;height:2px;font-size:0;line-height:0;background:#fff;border:1px inset #9C9B97}
#meaBox{position:absolute;width:148px;height:4px;background:#ccc;top:-2px;border:1px inset #9C9B97;border-left:0;border-right:0;}
.mea{position:absolute;top:-5px;width:2px;height:10px;border:3px solid #fff;border-top:13px solid #3f8e55;}
#mea_l{left:0;}
#mea_r{right:0;border-top:13px solid #ff0000;}
</style>
</head>
<body>
<div id='range'>
 <div id='meaBox' onmousedown="change(this,event)"> </div>
 <div id='mea_l' class='mea' onmousedown="change(this,event)" ></div>
 <div id='mea_r' class='mea' onmousedown="change(this,event)" ></div>
</div>
<script type='text/javascript'>
var $id=function(o){return document.getElementById(o) || o;}
var change=function(o,e){
 var e = e ? e : window.event;
 if(!window.event) {e.preventDefault();}
 var init={
 mX: o.offsetLeft,
 lX: $id('mea_l').offsetLeft,
 rX: $id('mea_r').offsetLeft,
 dX: e.clientX
 };
 document.onmousemove=function(e){
 var e = e ? e : window.event;
 var dist=e.clientX-init.dX,
  len=init.mX + dist,
  l_x=init.lX,
  r_x=init.rX;
 switch (o.id){
  case 'mea_l':
  l_x=init.lX + dist;
  move();
  break;
  case 'mea_r':
  r_x=init.rX + dist;
  move();
  break;
  case 'meaBox':
  l_x=init.lX + dist;
  r_x=init.rX + dist;
  move2();
  break;
  default: break;
 }
 function move(){
  if(r_x > l_x + 20 && len>=0 && len<=140 ) {
  o.style.left=len+"px";
  $id('meaBox').style.left= l_x + 'px';
  $id('meaBox').style.width=r_x - l_x + 'px';
  }
 };
 function move2(){
  if(l_x>=0 && r_x <=140 ) {
  o.style.left=len+"px";
  $id('mea_l').style.left= l_x + "px";
  $id('mea_r').style.left= r_x +"px";
  }
 };
 }
 document.onmouseup=function(){
 document.onmousemove=null;
 document.onmouseup=null;
 }
}
</script>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery ajax abort()的使用方法
Oct 28 Javascript
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
jsonp原理及使用
Oct 28 Javascript
JS控制弹出新页面窗口位置和大小的方法
Mar 02 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
微信小程序 富文本转文本实例详解
Oct 24 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
Feb 08 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
May 23 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
Mar 23 Javascript
js+css3实现简单时钟特效
Sep 13 Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 #Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 #Javascript
jquery获取url参数及url加参数的方法
Oct 26 #Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 #Javascript
angular.bind使用心得
Oct 26 #Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 #Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 #Javascript
You might like
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
PHP 实现链式操作
2021/03/09 PHP
javascript与CSS复习(二)
2010/06/29 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
社区服务标语
2014/07/01 职场文书
十佳党员事迹材料
2014/08/28 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
运动会200米广播稿
2015/08/19 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android