您的位置:首页 > Web前端 > JavaScript

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

2020-06-05 16:41 78 查看

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

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.将各个元素的样子写 1000 出来

​ 这里为了方便好观察给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";
    }
    
    ff9
    //亮度比
    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;
    };
    };
    };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript