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

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;
            };
        };
    };
    
(0)

相关推荐

  • Win10电脑如何将屏幕亮度调节添加到通知?

    Win10系统的电脑右下角有一个通知图标,点击就能看到一些常用功能开关,比如蓝牙.WLAN等,此外我们还可以将屏幕亮度调节工具也添加进去,这样以后需要调节亮度的时候就更加方便了: 下图一就是Win10 ...

  • js模仿京东首页的倒计时功能

    模仿京东首页的倒计时 我们学习了定时器,可以用定时器做一个倒计时,于是我模仿了京东首页倒计时. 先看看京东首页的倒计时. 思路: 如何倒计时? 给一个未来的时间.然后计算未来时间到现在的时间戳. 用定 ...

  • HTML+CSS+JS实现 ❤️爱心文字3D旋转动画特效❤️

    代码目录: 主要代码实现: CSS样式: body { display: grid; justify-content: center; height: 100vh; font-family: sans ...

  • HTML+CSS+JS详解 | w3c笔记

    Web概述 Web三要素:浏览器,服务器,HTTP协议 HTML工作原理:HTML是部署在服务器上的文本文件,根据HTTP协议浏览器发出请求给服务器,服务器做出响应给浏览器返回一个HTML,浏览器解释 ...

  • HTML/CSS/JS 三者的关系

    HTML/CSS 标记语言--描述类语言 HTML 决定网页结构和内容( 决定看到什么 ),相当 于人的身体 CSS 决定网页呈现给用户的样式( 决定好不好看 ), 相当于给人穿衣服.化妆,也叫网页的 ...

  • CSS动画基础:常用动画效果的设置

    设页面中有<div class="shape"></div>,若定义.shape的样式规则为: .shape { position: absolute; l ...

  • 电脑屏幕亮度调节的两种方法

    电脑屏幕也称显示屏,是我们与电脑进行交互的主要界面,我们经常会调节电脑屏幕亮度找到一个让我们眼睛舒适的点.有些新手朋友说找不到调节屏幕亮度的入口.接下来,笔者就教大家调节电脑屏幕亮度的方法. win1 ...

  • 关于增压面板亮度调节的思考

    作者:东航技术山西分公司雷笑 某日航后机组写本增压面板亮度不可调节,于是第一时间在驾驶舱重现故障,旋转调节亮度按钮时发现面板背景灯.巡航高度和着陆机场高度数字亮度均不可调节. 于是重置跳开关,重新调节 ...

  • Win10电脑怎么调节屏幕亮度?

    虽然这个问题看似简单,但是很多刚刚安装了Win10系统的小伙伴的确不会操作,下面小编就给大家介绍两种最简单的调节方法! 第一种调节方法就是点击电脑右下角的通知图标,什么是通知图标呢?如下图: 点击以后 ...