HTML+CSS+JS模仿win10亮度调节效果的示例代码

ID:16254 / 打印

HTML+CSS+JS模仿win10亮度调节效果

代码

 <!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> 		<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

 <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

 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; }

效果图

2. 将各个元素叠到一起

css

 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宽度设小了

3. 添加js

js

 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;         };     }; };

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

 <div class="mask"></div>
 .mask{     position:fixed;     bottom:0;     top:0;     left:0;     right:0;     background:black;     z-index:-1; }
 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;         };     }; };

总结

上一篇: HTML页面自适应宽度的table(表格)
下一篇: HTML使用栅格布局实现六种筛子样式的代码详解

作者:admin @ 24资源网   2024-11-04

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。