js+css3+HTML5拖动滑块(type=“range”)改变值
最近在做一个H5的改版项目,产品和设计给出的效果中有一个拖动滑块可以改变输入值的效果,类似如下图这样:
拿到这样的设计稿后,我有点懵了,自己写一个js?去网上找一个这样的效果?自己写一个可以,只是实现起来有点花时间,项目进度不允许;网上找一个,却不知道这样的效果该如何查,该输入什么关键词查询。于是自己就按照效果大概的意思去查了一下,果真有这样的案例和实现代码,太好了。可仔细一看,大部分都是基于jquery的,而且还连带着引用相关的插件,这不太好吧,这个效果也没有多难吧,引用一个插件有点浪费之嫌吧。所以我就接着看那些案例的源代码,结果发现,这些案例中都使用了<input type="range">,难不成这又是HTML5的属性?我怎么不知道呢?于是就赶紧去查了一下,果真,这个玩意type="range"果真是HTML5的属性,太给力了吧。以下是对type="range"的简单介绍:
range 输入类型用于应该包含指定范围值的输入字段。
range 类型显示为滑块。
<input type="range" name="points" min="1" max="10" />
知道了这些,我们就可以根据自己的实际需求来设置滑块了,也可以根据实际需求来设置滑块的颜色和背景色,简直美极了。
以下是我自己写的案例的实现代码,想想还是很简单的。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title>js+css3+HTML5拖动滑块改变值</title> <style> body{background: #ecf0f1;color: #34495e;padding-top: 40px;text-shadow: white 1px 1px 1px;} .value{border-bottom: 4px dashed #bdc3c7;text-align: center;font-weight: bold;font-size: 10em;width: 300px;height: 100px;line-height: 60px;margin: 40px auto;letter-spacing: -0.07em;text-shadow: white 2px 2px 2px;} input[type="range"] {display: block;-webkit-appearance: none;background-color: #bdc3c7;width: 100%;height: 10px;border-radius: 5px;margin: 0 auto;outline: 0;} input[type="range"]::-webkit-slider-thumb {-webkit-appearance: none;background-color: #e74c3c;width: 30px;height: 30px;border-radius: 50%;border: 2px solid white;cursor: pointer;transition: 0.3s ease-in-out;} .range{position:relative;width:300px;margin:0 auto;} .rang_width{position:absolute;top:-15px;left:0;background:#f00;height:10px;border-radius:5px 0 0 5px;} </style> </head> <body> <div class="value">0</div> <div class="range"> <input type="range" min="0" max="12" step="1" value="0"> <p class="rang_width"></p> </div> <script> var elem = document.querySelector('input[type="range"]'); var rangeValue = function(){ var newValue = elem.value; var target = document.querySelector('.value'); target.innerHTML = newValue; var max = elem.getAttribute("max"); var width = (91.3 / max * newValue) +"%"; //这里的91.3是用了整个滑块的宽度300减去拖动的那个圆形滑块的宽度30再加上圆形滑块的边框宽度4然后再除以300得来的,因为显示拖动距离的rang_width在绝对定位后在滑动过程中会遮挡住圆形滑块,导致圆形滑块无法被拖动,所以要适当的减少rang_width在滑动时的宽度,当然rang_width的宽度是根据你自己的实际需求来计算出来的,并不是一成不变的91.3% document.querySelector('.rang_width').style.width = width; }; elem.addEventListener("input", rangeValue); </script> </body> </html>
哈哈,是不是很简单?对了,就是这么简单!
相关知识
设置type=“range”为vertical
自定义(滑动条)input[type=“range”]样式
input type=range 进度条的自定义样式
HTML网页设计:十一、表单
使用K
input[type=“file”] change事件第二次不触发
0 for key in range(label + 1)}
如图所示.质量为m=1kg的长方体金属滑块夹在竖直挡板M.N之间.M.N与金属滑块间动摩擦因数均为μ=0.2.金属滑块与一劲度系数为k=200N/m的轻弹簧相连接.轻弹簧下端固定.挡板M固定不动.挡板N与一智能调节装置相连接(调整挡板与滑块间的压力).起初.滑块静止.挡板与滑块间的压力为0.现有一质量也为m的物体从距滑块L=20cm处自由落下 题目和参考答案——青夏教育精英家教网——
照片明暗反差过大?教你3种办法解决!
Gazebo仿真中光源的设置
网址: js+css3+HTML5拖动滑块(type=“range”)改变值 https://www.huajiangbk.com/newsview846410.html
上一篇: 【评价】百合康牌玫瑰花红花葡萄籽 |
下一篇: Google 图片搜索引擎优化 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039