js实现滑动进度条


当前第2页 返回上一页

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

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

<!DOCTYPE html>

<html>

<head>

 <meta charset="utf-8" />

 <title>js滑动进度条效果</title>

 <style>

  *{margin:0;padding:0;user-select:none;}

  .progress-bar{position:relative;height:10px;width:400px;margin:200px auto;background:#ebeef5;border-radius:10px;}

  .progress-bar .pro-bar{position:absolute;left:0;height:10px;width:10px;background:#409eff;}

  .progress-bar .min-num{position:absolute;left:-20px;top:-5px;}

  .progress-bar .max-num{position:absolute;right:-40px;top:-5px;}

  .progress-bar .block {position:absolute;height:30px;width:10px;background:#ccc;top:-10px;border-radius:10px;}

  .progress-bar .block p{position:absolute;display:none;left:-20px;top:-45px;width:50px;height:30px;text-align:center;line-height:30px;background:#ccc;border-radius:20px;}

  .progress-bar .block:hover p{display:block;font-size:10%;color:#fff;background:#409eff;}

 </style>

</head>

<body>

 <p class="progress-bar">

 <span class="min-num">0</span>

 <span class="max-num">100</span>

 <p class="pro-bar"></p>

 <p class="block">

  <p>0</p>

 </p>

 </p>

</body>

<script>

 (function(){

 let moveBlock = document.querySelector('.block');

 let proBar = document.querySelector('.pro-bar');

 let flag = false;

 let startX = null;

 let moveMax = (400 - 10); // 背景条宽度减去滑块的宽度

 moveBlock.onmousedown = function(e){

  startX = e.pageX;

  moveBlock.style.left ? moveBlock.style.left : moveBlock.style.left = '0px';

  let startLeft = parseInt(moveBlock.style.left);

  document.onmousemove = function(e){

  let moveX = (e.pageX - startX) > 0 ? true : false;

  let moveSection = startLeft + (e.pageX - startX);

  // 限定移动范围

  if (moveSection >= 0 && moveSection <= moveMax) {

   let percent = ((startLeft + (e.pageX - startX)) / moveMax).toFixed(4) * 100;

   percent.toString().length > 5 ? percent = percent.toString().subStr(0, 5) : percent = percent.toString();

   moveBlock.style.left = startLeft + (e.pageX - startX) + 'px';

   proBar.style.width = moveBlock.style.left;

   moveBlock.querySelector('p').innerText = percent + '%';

  }

  };

 };

 // 鼠标松开移除事件

 moveBlock.onmouseup = function(){

  document.onmousemove = null;

 };

 })();

</script>

</html>

相关图文推荐:js教程(图文)

以上就是js实现滑动进度条的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

h5和js有什么区别

js 如何获取 input 的 value 值?

js如何控制css

javascript中number()方法的两种用法

js如何实现页面跳转

关于js中的this指向问题的介绍

学习js中!和!!的区别及用法

js事件之自建函数bind()与兼容性问题解决

js如何实现蒙版效果

js怎么定义map

更多相关阅读请进入《js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...