[HTML教程] HTML+CSS+JS 模仿 Win10 亮度调节效果

[复制链接]
查看1290 | 回复9 | 2020-7-19 01:10:57 | 显示全部楼层 |阅读模式

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>
		<p class="mask"></p>
		<p class="control_bar"></p>
		<p class="control_bar" style="border-bottom:3px solid #505151;" id="control_bar_mask"></p>
		<p class="control_bar_cursor"></p>
	</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

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

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

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

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用控制条来控制其透明度达到亮度调节效果

<p class="mask"></p>
.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教程》

以上就是HTML+CSS+JS 模仿 Win10 亮度调节效果的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:html css win10 亮度调节
  • 本文转载于:jb51,如有侵犯,请联系916990011@qq.com删除
    • 上一篇:html文档的基本结构由哪三对标签负责组织
    • 下一篇:HTML5 移动端自适应布局

    相关文章

    相关视频

    • 在html语言中,单元格的标记是什么
    • 如何查看html文件的代码?
    • HTML5 和 Flash 区别?
    • php不显示html怎么办
    • HTML如何设置网页标题?
    • HTML+CSS+JS 模仿 Win10 亮度调节...
    • HTML5中新增加的标签
    • HTML5废除的元素
    • HTML5新增的属性和废除的属性
    • HTML5的高级功能介绍
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    坏坏的猪蹄肇 | 2021-4-16 22:09:29 | 显示全部楼层
    我是来白嫖资源的!
    回复

    使用道具 举报

    毛当归搜 | 2021-8-22 00:40:16 | 显示全部楼层
    祝愿悟空源码越办越好!
    回复

    使用道具 举报

    叶小琛小m | 2021-11-24 17:36:57 | 显示全部楼层
    很不错的资源站
    回复

    使用道具 举报

    蓝色的天空888 | 2022-2-7 16:02:07 | 显示全部楼层
    谢谢楼主分享的资源,爱了~~~
    回复

    使用道具 举报

    公务员老虫叭 | 2023-11-8 01:01:05 | 显示全部楼层
    谢谢楼主分享的资源,爱了~~~
    回复

    使用道具 举报

    没积分哈,谁来帮帮我啊
    回复

    使用道具 举报

    不好吃荤漳 | 2024-5-29 22:48:25 | 显示全部楼层
    悟空源码太厉害,资源真多!
    回复

    使用道具 举报

    华梦一生 | 2024-6-4 04:36:31 | 显示全部楼层
    6666悟空源码资源多!
    回复

    使用道具 举报

    杰尼亚斯痔 | 2024-6-19 22:46:04 | 显示全部楼层
    站长真良心,这么大的资源站都是免费下载
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则