HTML5实现自带进度条和滑块滑杆效果


Posted in HTML / CSS onApril 17, 2018

一、H5自带进度条

<div id="d">
   <p id="pgv">进度:%</p>
   <progress id="pg" max="" value=""></progress>
 </div>

运用progress标签,设置好min和max数值就好。可以用value获取其中的进度值

function staticProgress () {
    var pg = document.getElementById('pg')
    var pgv = document.getElementById('pgv')
    var timer = setInterval(function () {
      if (pg.value !== ) {
        pg.value++
        pgv.innerHTML = '进度:' + pg.value + '%'
      } else {
        pgv.innerHTML = '加载完成'
       clearInterval(timer)
     }
   }, )
 }

最终效果如下:

HTML5实现自带进度条和滑块滑杆效果

这个显示效果是chrome浏览器的,IE和FireFox的是另外的样式!

样式更改:

progress{
      -webkit-appearance: none;
  }
  ::-webkit-progress-bar{
      /* 获取progress */
      background-color: orange;
      /* 进度条未被填充的背景颜色 */
  }
  ::-webkit-progress-value {
     background-color: rgb(, , );
     /* 进度条被填充部分的背景颜色 */
 }
 ::-webkit-progress-inner-element {
     border: px solid black;
     /* 进度条的内边框,注意跟outline区分 */
 }

这里的样式全部是针对webkit内核的,其他的不支持~~~  效果如下:

HTML5实现自带进度条和滑块滑杆效果

二、H5自带滑块

将input的type设置为range。但是这个属性不是所有浏览器都支持,如果不支持,会返回默认属性,就是<input type="text">

(详情参考https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range)

默认样式:

HTML5实现自带进度条和滑块滑杆效果

<div id="d">
   <p>H可拖动滑块:</p>
   <input type="range" name="points" min="" max="" id="hpro"/>
 </div>

1、自带属性:

(1)、defaultValue = (rangeElem.max < rangeElem.min) ? rangeElem.min : rangeElem.min + (rangeElem.max - rangeElem.min)/2;

默认值 = (设置最大值 < 设置最小值)?设置最小值 : 设置最小值 + ( 设置最大值 - 设置最小值 ) / 2     ———————— 其实就是取中间值

我们可以用value="7"设置滑块的值。

(2)、<input type="range" min="-10" max="10">

min: 设置最小值; max: 设置最大值

(3)、<input type="range" min="5" max="10" step="0.01">

step: 设置步进值,默认是1。如果min或者max设置了小数点,比如:max="3.14",这个小数点就取不到了,那么可以将step设置为: step="any"。

(4)、hash marks和label:

注意:目前没有哪个浏览器完全支持hash marks和label这两个属性,比如Firefox两个都不支持,Chrome支持hash marks但是不支持label.

a) hash marks:

HTML5实现自带进度条和滑块滑杆效果

<input type="range" name="points" min="" max="" step="any" id="hpro"  list="tickmarks"/>
  <datalist id="tickmarks">
      <option value="">
      <option value="">
      <option value="">
      <option value="">
      <option value="">
      <option value="">
      <option value="">
     <option value="">
     <option value="">
     <option value="">
     <option value="">
 </datalist>

b) label :

HTML5实现自带进度条和滑块滑杆效果

<input type="range" name="points" min="" max="" step="any" id="hpro"  list="tickmarks"/>
  <datalist id="tickmarks">
      <option value="" label="%">
      <option value="">
      <option value="">
      <option value="">
      <option value="">
      <option value="" label="%">
      <option value="">
     <option value="">
     <option value="">
     <option value="">
     <option value="" label="%">
 </datalist>

(5)、autofocus可以设置或返回滑块是否自动获得焦点,设置为true后,进入网页会自动锁定滑块,在键盘上按上下左右都可以控制

2、外观美化:
 

input[type=range] {
     outline: none;
     -webkit-appearance: none;
     /* 去除系统默认appearance的样式,常用于IOS下移除原生样式 */
     border-radius: px;
 }

-webkit-appearance: none; 去除默认样式

input[type=range]::-webkit-slider-runnable-track {
  height: px;
  border-radius: px;
  box-shadow:  px px #deff, inset  .em .em #d;
 }

::-webkit-slider-runnable-track 是个CSS伪类元素,不是所有浏览器都支持。可以获取<input type="range">的轨道

详情参考:https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-slider-runnable-track

input[type=range]::-webkit-slider-thumb {
   -webkit-appearance: none; /* 去除滑块的默认样式 */
   height: px;
   width: px;
   margin-top: -px;
   background:#BE;
   border-radius: %;
   border: solid .em rgba(, , , .);
   box-shadow:  .em .em #b;
 }

::-webkit-slider-thumb 可以获取<input type="range">的轨道

总结

以上所述是小编给大家介绍的HTML5实现自带进度条和滑块滑杆效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

HTML / CSS 相关文章推荐
基于css3仿造window7的开始菜单
Jun 17 HTML / CSS
深入浅出CSS3 background-clip,background-origin和border-image教程
Jan 27 HTML / CSS
实例教程 纯CSS3打造非常炫的加载动画效果
Nov 05 HTML / CSS
CSS3中引入多种自定义字体font-face
Jun 12 HTML / CSS
HTML5 Geolocation API的正确使用方法
Dec 04 HTML / CSS
HTML5 video视频字幕的使用和制作方法
May 03 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
Jan 31 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
HTML5 canvas基本绘图之图形变换
Jun 27 HTML / CSS
3种方式实现瀑布流布局小结
Sep 05 HTML / CSS
AmazeUI 缩略图的实现示例
Aug 18 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
Apr 09 #HTML / CSS
canvas线条的属性详解
Mar 27 #HTML / CSS
详解canvas绘图时遇到的跨域问题
Mar 22 #HTML / CSS
canvas 下载二维码和图片加水印的方法
Mar 21 #HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
Mar 21 #HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
Mar 21 #HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 #HTML / CSS
You might like
php设计模式 Proxy (代理模式)
2011/06/26 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
提示$ is not defined错误分析及解决
2013/04/09 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python变量和数据类型详解
2017/02/15 Python
利用aardio给python编写图形界面
2017/08/21 Python
Python之文字转图片方法
2018/05/10 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
PHP高级工程师面试问题推荐
2013/01/18 面试题
自我反省检讨书
2014/01/23 职场文书
初中美术教学反思
2014/01/29 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python