JavaScript实现美化滑块效果

本文实例为大家分享了js实现美化滑块效果的具体代码,供大家参考,具体内容如下

美化滑块(拖动)

隐藏原有的range 同步value

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>滑块</title>

<style>

.len{

width: 300px;

height: 6px;

background: #6c6;

border-radius: 3px;

margin-top:15px;

position: relative;

}

.len b{

display: inline-block;

height: 6px;

border-radius: 3px;

background: #900;

position: absolute;

}

.len span{

position: absolute;

width: 10px;

height: 10px;

border-radius: 5px;

background: #090;

z-index: 1;

top: -2px;

left: 0;

}

.len input[type=range]{

display: none;

}

</style>

</head>

<body>

<input type="range" min="0" max="500" value="0">

<input type="range" min="0" value="0">

<script>

var ranges=document.querySelectorAll("input[type=range]");

ranges.forEach(function(range){

var Div=document.createElement("div");

Div.className="len";

range.parentNode.insertBefore(Div,range);

var span=document.createElement("span");

var b=document.createElement("b");

Div.appendChild(span);

Div.appendChild(b);

Div.appendChild(range);

span.onmousedown=function(e){

var x=e.clientX-this.offsetLeft;

var maxL=Div.offsetWidth-span.offsetWidth;

var maxV=range.max || 100;

document.onmousemove=function(e){

var les=e.clientX-x;

if(les < 0)les=0;

if(les > maxL)les=maxL;

span.style.left=les+"px";

b.style.width=les+span.offsetWidth/2+"px";

range.value=les/maxL*maxV; //同步

e.preventDefault(); //阻止默认事件

console.log(range.value)

}

document.onmouseup=function(){

document.onmousemove=null;

document.onmouseup=null;

}

}

})

</script>

</body>

</html>

插件都可以无限复制,删除即是原有效果

以上是 JavaScript实现美化滑块效果 的全部内容, 来源链接: utcz.com/z/312654.html

回到顶部