欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

进度条制作

程序员文章站 2022-05-26 19:40:39
...

今晚写了一个简单进度条,如下所示:
进度条制作
分析组成:
整个进度条由三块组成,蓝色、红色、紫色三块。其中红色按钮块能够移动,改变紫色和蓝色的宽度。
分析原理:
1.进度条最初样式如下:
进度条制作
2.蓝色块初始宽度为0px,随着红色块的移动,蓝色块宽度跟着改变。
3.其次需注意,拖动红色块设置三种鼠标事件,移动事件(onmousemove),鼠标按下事件(onmousedown),鼠标按压释放事件(onmouseup)。

代码编写如下:
1.首先进行样式搭建
html代码:

<div class="box">
        <div class="long">//整个进度条(紫色、红色、蓝色)
            <div class="jingdu"></div>//蓝色快
            <span class="btn"></span>//红色块
        </div>
        <div class="num">0%</div>//进度条
    </div>

css代码:

*{
	margin:0;
	padding: 0;
}
	div.box{
	width: 900px;
	height: 50px;  
	border: 1px solid saddlebrown;
	margin: 100px auto;
}

div.long{
	width: 900px;
	height: 50px;  
	background-color: violet;
	position: relative;
}
div.jingdu{
	height: 50px;
	width:0px;
	background-color:blue;
}
.btn{
	width: 50px;
	height: 60px;
	position: absolute;
	top: -5px;
	left: 0;
	background-color: red;
	cursor: move;
}

重点!敲黑板!!!!JS代码如下:

//获取元素
var box=document.querySelector(".box");
        var long=document.querySelector(".long");
        var jingdu=document.querySelector(".jingdu");
        var btn=document.querySelector(".btn");
        var num=document.querySelector(".num");
btn.onmousedown=function(event){
        var event=event||window.event;
        var x=event.clientX-btn.offsetLeft;

         // 鼠标按钮
         document.onmousemove=function(event){
         	//event鼠标属性且兼容
             var event=event||window.event;
             
             //获取鼠标的坐标
             var l=event.clientX-x;
             
             //判断边界情况,红色块不能超出
             if(l<0){
                 l=0;
             }
             if(l>(long.offsetWidth-btn.offsetWidth)){
                 l=long.offsetWidth-btn.offsetWidth;
             }
             // 修改按钮的位置  距离long这个div左边的距离 
             btn.style.left=l+"px";

             // 改变进度条的长度 改变蓝色块的长度
             jingdu.style.width=l+"px";
			
			//计算移动距离占整个进度条的百分比
             num.innerHTML=parseInt(l/(long.offsetWidth-btn.offsetWidth)*100)+"%";
         }

         // 鼠标抬起释放
         document.onmouseup=function(){
         	//释放
             document.onmouseup=null;
             document.onmousemove=null;
         }
        //取消默认动作,防止默认的行为
         return false;
        }
相关标签: 进度条