写在前面:
本文的主要内容包括:type=”range”属性介绍,修改range默认css样式以及在js中的实际应用。本文面向前端小白,写的不好之处,请多多见谅。文末有demo链接,可以自行复制到本地进行试验。
相关:自定义 range radio select的样式滑轮,按钮,选择框
最终要实现的效果:
步骤:
1.range属性相关介绍
2.搭建html结构;
3.css样式修改,包括给滑动轨道添加样式、给滑块添加样式;
4.添加相关js代码实现应用效果;
5.关于浏览器兼容。
在html里面输入如下内容,即可使用:
1 | <input type="range">//这是最粗糙的使用方式 |
range在各个浏览器中的默认样式:
range属性相关:
range 输入类型用于应该包含指定范围值的输入字段。
range 类型显示为滑块。
您也可以设置可接受数字的范围限制:1
<input type="range" name="points" min="1" max="10" />//max为最大的值,min为最小的值
html5 range 类型的限定:
HTML DOM Input Range 对象(js获取dom)
搭建html结构:
1 | <div class="js-2-1section3"> |
解析:
1.考虑到文章篇幅,html其他标签自行补全。
2.上面中,代码注释已经注释的很清楚了,不明白的多看几遍代码,然后也可以百度一下相关属性之类的。
3.滑块里面设置value=”6”的作用是浏览器进入时候滑块在最小值,也就是最左侧的地方,否则默认在中间
4.step=”1”意思是,滑块每次动态改变的数值。
5.关于代码中js部分,还没学js的小伙伴们,可以跳过,不影响修改滑块的默认样式的。
css样式修改:
下面是玩家人数的css样式(不重要,可以跳过):1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35body{
width: 50%;
margin:5rem auto 0;
}
div{
margin: 2rem;
}
.js-2-1section3{
background: #fff;}
.js-2-1section3-div1{
margin-left: 2rem;}
.player-num{
font-size: 1.8rem;
margin:0 0.6rem;
background: #f4f5f5;
padding: 0.2rem 0.6rem;
color: gold;
width: 9%;
border: none;
outline: none;
}
span{
display: inline-block;
font-size: 1.8rem;
color: #444;
}
.js-2-1section3-div2{
display: flex;
justify-content: space-around;
align-items: center;
padding: 1.6rem 0;
}
/*上面是玩家人数的css样式*/
修改滑块样式的css代码(重点):
1 | #slider{ /*设置滑块下面那条线的样式*/ |
解析:
1.代码注释里面已经很清楚了,不清楚多看几遍代码。
2.文末有demo链接,可以自行复制到本地进行试验。
以上是修改css样式到上面放的图片效果。
扩展:使用js完成实际应用
1 | var oPlayerNum = document.getElementById("player");//玩家总人数 |
ps:
1.特地重新再打一遍注释,注释里面说的蛮清楚了,还没学js的小伙伴别灰心,先mark起来,等以后学会了,再回头看看。
2.文末有demo链接,可以自行复制到本地进行试验。
关于浏览器兼容的问题:还未完成的效果,滑块填充效果。
ps:关于浏览器兼容这块儿,还没研究好(下面有篇文章是讲浏览器兼容的)。以上只针对谷歌浏览器,因为range是html5新出的属性,w3c还没出标准属性,各个浏览器的方法不一样,这块儿有点麻烦。但我记在笔记里面了,今后研究清楚了,再回来更文。
关于滑块的填充效果,各个浏览器都不一样Chrome浏览器中不支持直接设置进度条,要借助js。而在IE 9以上的浏览器中可以使用::-ms-fill-lower 和 ::-ms-fill-upper来自定义进度条;在Firefox浏览器中则可以通过::-moz-range-progress来自定义;今天下午研究了一阵子,只弄出了一个ie的填充效果,没研究清楚,可能过段时间会再回来更新。(有兴趣的小伙伴可以研究一下,相互交流交流。)
以下是I兼容E浏览器的滑块
1 | /*以下是I兼容E浏览器的滑块,还有一些问题,不过现在没空再弄了。等到有空了再解决清楚。*/ |
这里有篇关于range的文章,里面有浏览器兼容的内容,我没弄清楚:自定义(滑动条)input[type=”range”]样式
range-demo链接:https://obkoro1.github.io/article-demo/diy-style/range-diy.html
后话:
昨天说好的要详细更新,range、radio、select这三类的文章,今天如约更好了range部分,后面几天应该还会持续更文。不说了,要打球去了^_^。
最后:希望看完的朋友点个喜欢,也可以关注一下我,现在这阶段基本上每个月都不会少于十五篇文章(看到干货我也会进行分享)。写的不好之处,欢迎指点。码字不易,感谢支持!
ps:目前待业,坐标北京,求推荐工作。然后希望我写哪方面的文章可以在底下评论,或者是私信我,虽然写的不好,但我就当这是记录自己成长的一种方式咯。(前提是我会了,如果不会我也会记下来,等会了的时候再更出来。)
掘金个人主页 ,简书主页链接,csdn博客主页链接 ,github 。
以上。2017.4.16