首页 > 代码库 > 自定义滚动条——控制div的大小和透明度
自定义滚动条——控制div的大小和透明度
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#big {
height: 20px;
width: 600px;
background-color: gray;
position: relative;
margin: 100px auto;
}
#small {
height: 20px;
width: 20px;
background-color: red;
position: absolute;
left: 0;
top: 0;
}
#side {
width: 0px;
height: 0px;
background-color: green;
}
</style>
</head>
<body>
<div id="big">
<div id="small">
</div>
</div>
<div id="side">
</div>
</body>
<script type="text/javascript">
//实现通过滚动条来控制另一个div的宽高和透明度
//滚动条只能左右滚动
var big = document.getElementById("big");
var small = document.getElementById("small");
var side = document.getElementById("side");
var x = 0;
var y = 0;
small.onmousedown = function(ev) {
var oEvent = ev || event;
x = oEvent.clientX - small.offsetLeft;
document.onmousemove = function(ev) {
var oEvent = ev || event;
var Left = oEvent.clientX - x;
if(Left < 0) {
Left = 0;
} else if(Left > big.offsetWidth - small.offsetWidth) {
Left = big.offsetWidth - small.offsetWidth;
}
small.style.left = Left + "px";
//自定义一个变量scale
//表示滚动条滚动的距离和滚动条可以滚动的最大距离的的比
var scale = Left / (big.offsetWidth - small.offsetWidth);
document.title = scale;
//通过滑块控制side的大小
side.style.width = 400 * scale + "px";
side.style.height = 400 * scale + "px";
//通过滑块控制side的颜色的透明度
side.style.opacity = scale;
side.style.filter = "alpha(opacity:" + scale * 100 + ")";
}
document.onmouseup = function() {
document.onmousemove = null;
document.onmouseup = null;
}
return false;
}
</script>
</html>
自定义滚动条——控制div的大小和透明度