css+js实现进度滚动条

  • 思路:用到js方法需要有一个类似java的调度器,每隔多少秒执行一次;css方面,是一个父子标签,父标签长宽固定,子标签宽度被js控制,子标签的背景色表示进度条;结合后台使用时,实际上是不断地像后台发送请求,后来根据处理进度反馈数据
<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Title</title>  
</head>  
<style type="text/css">  
    * {  
        padding: 0;  
        margin: 0;  
    }  

    .process-parent {  
        position: absolute;  
        width: 400px;  
        border: 1px solid #ccc;  
        height: 10px;  
        border-radius: 3px;  

    }  

    .process-son {  
        position: relative;  
        background: #ff0000;  
        height: 100%;  
        font-size: 8px;  
        text-align: center;  
        color: #fff;  
    }  
</style>  


<body>  

<div class="process-parent">  
    <div class="process-son" id="bar" style="width: 0%;">  
    </div>  
</div>  
</body>  
<script type="text/javascript">  
    function run() {  
        var bar = document.getElementById("bar");  
        bar.style.width = parseInt(bar.style.width) + 1 + "%";  
        bar.innerText = bar.style.width;  
        if (bar.style.width == "100%") {  
            clearTimeout(timeout);  
            return;  
        }  
        var timeout = setTimeout('run()', 300);  
    }  
    window.onload = run();  
</script>  
</html>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现环形滚动条,可以使用 HTML、CSS 和 JavaScript。下面是一份基本的实现代码: HTML: ``` <div class="scrollbar"> <div class="track"> <div class="thumb"></div> </div> </div> ``` CSS: ``` .scrollbar { width: 200px; height: 200px; position: relative; overflow: hidden; } .track { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 8px; height: 100%; background-color: #ddd; border-radius: 4px; } .thumb { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 8px; height: 40px; background-color: #333; border-radius: 4px; } ``` JavaScript: ``` const thumb = document.querySelector(".thumb"); const track = document.querySelector(".track"); let isDragging = false; thumb.addEventListener("mousedown", () => { isDragging = true; }); document.addEventListener("mousemove", (event) => { if (isDragging) { let mouseY = event.clientY; let trackRect = track.getBoundingClientRect(); let trackTop = trackRect.top + window.pageYOffset; let trackHeight = trackRect.height; let thumbHeight = thumb.offsetHeight; let thumbHalfHeight = thumbHeight / 2; let thumbTop = mouseY - trackTop - thumbHalfHeight; let percent = (thumbTop / (trackHeight - thumbHeight)) * 100; thumb.style.top = `${percent}%`; } }); document.addEventListener("mouseup", () => { isDragging = false; }); ``` 这份代码创建了一个环形滚动条,其中滑块可以在轨道上拖动。滑块的样式可以自定义,只需要修改 CSS 中 thumb 的样式即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值