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


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

    代码

    <!doctype html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>模仿win10的亮度调节</title>
    		<style>
    			.control_bar{
    				height:200px;
    				500px;
    				border-bottom:3px solid #888888;
    				
    			}
    			.control_bar_cursor{
    				height:25px;
    				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;
    				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;
          500px;
          border-bottom:3px solid #888888;
      }
      .control_bar_cursor{
          height:25px;
          8px;
          background: #505151;
          border-radius:5px;
      }
      
    • 效果图

    2. 将各个元素叠到一起

    • css

      body{
          background:black;
      }
      .control_bar{
          height:200px;
          500px;
          border-bottom:3px solid #888888;
      
      }
      .control_bar_cursor{
          height:25px;
          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;
          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;
              };
          };
      };
      
  • 相关阅读:
    matlab中关于使用length导致的不稳定状况。
    matlab 批量读入文件夹中的指定文件类型 (目录级数不限)
    matlab中的图像裁剪,图像抽取,反转,镜像。
    反锐化掩模 unsharp masking【转载】
    matlab 将图像切分为N*N像素的小块
    Python2.7.3 Tkinter Entry(文本框) 说明
    基于JQuery的列表拖动排序
    MAC如何删除开机自启动程序
    MAC配置SVN服务器
    关于MAC清倒废纸篓,项目正在使用
  • 原文地址:https://www.cnblogs.com/nanke33/p/13043489.html
Copyright © 2020-2023  润新知