前端js亮度调节功能:仿win10

今天分享下”前端js亮度调节功能:仿win10“这篇文章,文中根据实例编码详细介绍,或许对大家的编程之路有着一定的参考空间与使用价值,需要的朋友接下来跟着云南仟龙Mark一起学习一下吧。

代码

​​<!doctype html>​​

​​<​​​​html​​​​>​​

​​<​​​​head​​​​>​​

​​<​​​​meta​​ ​​charset​​​​=​​​​"utf-8"​​​​>​​

​​<​​​​title​​​​>模仿win10的亮度调节</​​​​title​​​​>​​

​​<​​​​style​​​​>​​

​​.control_bar{​​

​​height:200px;​​

​​width:500px;​​

​​border-bottom:3px solid #888888;​​

​​}​​

​​.control_bar_cursor{​​

​​height:25px;​​

​​width:8px;​​

​​background: #505151;​​

​​border-radius:5px;​​

​​margin-top:-12.5px;​​

​​position:relative;​​

​​top:0;​​

​​left:0;​​

​​}​​

​​.control_bar_cursor:hover{​​

​​background:white;​​

​​}​​

​​#control_bar_mask{​​

​​margin-top:-203px;​​

​​width:0px;​​

​​}​​

​​.mask{​​

​​position:fixed;​​

​​bottom:0;​​

​​top:0;​​

​​left:0;​​

​​right:0;​​

​​background:black;​​

​​z-index:-1;​​

​​}​​

​​</​​​​style​​​​>​​

​​</​​​​head​​​​>​​

​​<​​​​body=​​http://www.qlyl1688.com/​​​​​​>​​

​​<​​​​div​​ ​​class​​​​=​​​​"mask"​​​​></​​​​div​​​​>​​

​​<​​​​div​​ ​​class​​​​=​​​​"control_bar"​​​​></​​​​div​​​​>​​

​​<​​​​div​​ ​​class​​​​=​​​​"control_bar"​​ ​​style​​​​=​​​​"border-bottom:3px solid #505151;"​​ ​​id​​​​=​​​​"control_bar_mask"​​​​></​​​​div​​​​>​​

​​<​​​​div​​ ​​class​​​​=​​​​"control_bar_cursor"​​​​></​​​​div​​​​>​​

​​</​​​​body​​​​>​​

​​<​​​​script​​​​>​​

​​window.onload = function(){​​

​​var control_bar = document.getElementsByClassName(“control_bar”)[0];​​

​​var control_bar_mask = document.getElementById(“control_bar_mask”);​​

​​var control_bar_cursor = document.getElementsByClassName(“control_bar_cursor”)[0];​​

​​var def_left = control_bar_cursor.offsetLeft;​​

​​var mask = document.getElementsByClassName(“mask”)[0];​​

​​document.body.onmousedown = function(){​​

​​window.onmousemove = function(){​​

​​var cursor_X = event.clientX;​​

​​var cursor_Y = event.clientY;​​

​​if(cursor_X < ​​​​def_left​​​​){​​

​​control_bar_cursor.style.left​​ ​​= ​​​​0​​​​;​​

​​}else if(cursor_X > control_bar.offsetWidth + def_left){​​

​​control_bar_cursor.style.left = control_bar.offsetWidth;​​

​​}else{​​

​​control_bar_cursor.style.left = cursor_X - def_left + “px”;​​

​​}​​

​​//亮度比​​

​​var proportion = parseInt(control_bar_cursor.offsetLeft - def_left) / parseInt(control_bar.offsetWidth - 1);​​

​​control_bar_mask.style.width = proportion * control_bar.offsetWidth + “px”;​​

​​mask.style.opacity = 1 - proportion;​​

​​};​​

​​window.onmouseup = function(){​​

​​window.onmousemove = null;​​

​​};​​

​​};​​

​​};​​

​​</​​​​script​​​​>​​

​​</​​​​html​​​​>​​

1.将各个元素的样子写出来

​这里为了方便好观察给body添加了一个背景颜色

html

1

2

3

4

5

6

7

​​<​​​​div​​ ​​class​​​​=​​​​"control_bar"​​​​>​​

​​</​​​​div​​​​>​​

​​<​​​​div​​ ​​class​​​​=​​​​"control_bar"​​ ​​style​​​​=​​​​"border-bottom:3px solid #505151;"​​

​​id="control_bar_mask>​​

​​</​​​​div​​​​>​​

​​<​​​​div​​ ​​class​​​​=​​​​"control_bar_cursor"​​​​>​​

​​</​​​​div​​​​>​​

css

1

2

3

4

5

6

7

8

9

10

11

12

13

14

​​body{​​

​​background​​​​:back;​​

​​}​​

​​.control_bar{​​

​​height​​​​:​​​​200px​​​​;​​

​​width​​​​:​​​​500px​​​​;​​

​​border-bottom​​​​:​​​​3px​​ ​​solid​​ ​​#888888​​​​;​​

​​}​​

​​.control_bar_cursor{​​

​​height​​​​:​​​​25px​​​​;​​

​​width​​​​:​​​​8px​​​​;​​

​​background​​​​: ​​​​#505151​​​​;​​

​​border-radius:​​​​5px​​​​;​​

​​}​​

效果图

  1. 将各个元素叠到一起

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

​​body{​​

​​background​​​​:​​​​black​​​​;​​

​​}​​

​​.control_bar{​​

​​height​​​​:​​​​200px​​​​;​​

​​width​​​​:​​​​500px​​​​;​​

​​border-bottom​​​​:​​​​3px​​ ​​solid​​ ​​#888888​​​​;​​

​​}​​

​​.control_bar_cursor{​​

​​height​​​​:​​​​25px​​​​;​​

​​width​​​​:​​​​8px​​​​;​​

​​background​​​​: ​​​​#505151​​​​;​​

​​border-radius:​​​​5px​​​​;​​

​​margin-top​​​​:​​​​-12.5px​​​​;​​

​​position​​​​:​​​​relative​​​​;​​

​​top​​​​:​​​​0​​​​;​​

​​left​​​​:​​​​0​​​​;​​

​​}​​

​​.control_bar_cursor:hover{​​

​​background​​​​:​​​​white​​​​;​​

​​}​​

​​#control_bar_mask{​​

​​margin-top​​​​:​​​​-203px​​​​;​​

​​width​​​​:​​​​100px​​​​;​​

​​}​​

这里为了显示遮罩效果把遮罩层的div宽度设小了

  1. 添加js

js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

​​window.onload = ​​​​function​​​​(){​​

​​var​​ ​​control_bar = document.getElementsByClassName(​​​​"control_bar"​​​​)[0];​​

​​var​​ ​​control_bar_mask = document.getElementById(​​​​"control_bar_mask"​​​​);​​

​​var​​ ​​control_bar_cursor = document.getElementsByClassName(​​​​"control_bar_cursor"​​​​)[0];​​

​​var​​ ​​def_left = control_bar_cursor.offsetLeft;​​

​​document.body.onmousedown = ​​​​function​​​​(){​​

​​window.onmousemove = ​​​​function​​​​(){​​

​​var​​ ​​cursor_X = event.clientX;​​

​​var​​ ​​cursor_Y = event.clientY;​​

​​if​​​​(cursor_X < def_left){​​

​​control_bar_cursor.style.left = 0;​​

​​}​​​​else​​ ​​if​​​​(cursor_X > control_bar.offsetWidth + def_left){​​

​​control_bar_cursor.style.left = control_bar.offsetWidth;​​

​​}​​​​else​​​​{​​

​​control_bar_cursor.style.left = cursor_X - def_left + ​​​​"px"​​​​;​​

​​}​​

​​var​​ ​​proportion = parseInt(control_bar_cursor.offsetLeft - def_left) / parseInt(control_bar.offsetWidth - 1);​​

​​control_bar_mask.style.width = proportion * control_bar.offsetWidth + ​​​​"px"​​​​;​​

​​};​​

​​window.onmouseup = ​​​​function​​​​(){​​

​​window.onmousemove = ​​​​null​​​​;​​

​​};​​

​​};​​

​​};​​

  1. 添加一个mask用控制条来控制其透明度达到亮度调节效果

1

​​<div class=​​​​"mask"​​​​>​​

1

2

3

4

5

6

7

8

9

​​.mask{​​

​​position​​​​:​​​​fixed​​​​;​​

​​bottom​​​​:​​​​0​​​​;​​

​​top​​​​:​​​​0​​​​;​​

​​left​​​​:​​​​0​​​​;​​

​​right​​​​:​​​​0​​​​;​​

​​background​​​​:​​​​black​​​​;​​

​​z-index​​​​:​​​​-1​​​​;​​

​​}​​

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

​​window.onload = ​​​​function​​​​(){​​

​​var​​ ​​control_bar = document.getElementsByClassName(​​​​"control_bar"​​​​)[0];​​

​​var​​ ​​control_bar_mask = document.getElementById(​​​​"control_bar_mask"​​​​);​​

​​var​​ ​​control_bar_cursor = document.getElementsByClassName(​​​​"control_bar_cursor"​​​​)[0];​​

​​var​​ ​​def_left = control_bar_cursor.offsetLeft;​​

​​var​​ ​​mask = document.getElementsByClassName(​​​​"mask"​​​​)[0];​​

​​document.body.onmousedown = ​​​​function​​​​(){​​

​​window.onmousemove = ​​​​function​​​​(){​​

​​var​​ ​​cursor_X = event.clientX;​​

​​var​​ ​​cursor_Y = event.clientY;​​

​​if​​​​(cursor_X < def_left){​​

​​control_bar_cursor.style.left = 0;​​

​​}​​​​else​​ ​​if​​​​(cursor_X > control_bar.offsetWidth + def_left){​​

​​control_bar_cursor.style.left = control_bar.offsetWidth;​​

​​}​​​​else​​​​{​​

​​control_bar_cursor.style.left = cursor_X - def_left + ​​​​"px"​​​​;​​

​​}​​

​​//亮度比​​

​​var​​ ​​proportion = parseInt(control_bar_cursor.offsetLeft - def_left) / parseInt(control_bar.offsetWidth - 1);​​

​​control_bar_mask.style.width = proportion * control_bar.offsetWidth + ​​​​"px"​​​​;​​

​​mask.style.opacity = 1 - proportion;​​

​​};​​

​​window.onmouseup = ​​​​function​​​​(){​​

​​window.onmousemove = ​​​​null​​​​;​​

​​};​​

​​};​​

​​};​​

总结

今天的文章就分享到这啦,内容转自脚本之家,下篇文章再见!​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值