日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

十五、JavaScript进度条的制作

發(fā)布時間:2024/10/8 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十五、JavaScript进度条的制作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

@Author:Runsen

@Date:2019/3/25

進度條經(jīng)常運用于網(wǎng)頁,即使我們意識到不是所有的東西都將瞬間被加載完成,這些進度條用于提醒使用者關(guān)于網(wǎng)頁上具體的任務(wù)進程,譬如上傳,下載,加載應(yīng)用程序等

文章目錄

  • 百分比動態(tài)進度條
    • 布局
    • 代碼
  • 商品展示
  • 彈性導(dǎo)航

百分比動態(tài)進度條

實現(xiàn)的效果就是上面所示。當(dāng)拉動進度條,就會顯現(xiàn)百分比。

布局

其實就是大盒嵌套小盒子,

<div id="progress"><div id="progress_bar"><div id="progress_bar_fg"></div><span></span></div><div id="progress_value">0%</div></div>

代碼

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><style>*{margin: 0;padding: 0;list-style: none;border: none;}#progress{width: 1000px;height: 35px;line-height: 35px;/*background-color: #e8e8e8;*/margin: 100px auto;position: relative;}#progress_bar{width: 900px;height: 100%;background-color: #ccc;border-radius: 8px;position: relative;}#progress_value{position: absolute;right: 30px;top: 0;}#progress_bar_fg{width: 0;height: 100%;background-color: orangered;border-top-left-radius: 8px;border-bottom-left-radius: 8px;}span{width: 25px;height: 50px;background-color: orangered;position: absolute;left: 0;top: -7px;border-radius: 5px;cursor: pointer;}</style> </head> <body><div id="progress"><div id="progress_bar"><div id="progress_bar_fg"></div><span></span></div><div id="progress_value">0%</div></div><script>window.onload = function () {// 1. 獲取需要的標(biāo)簽var progress = document.getElementById("progress");var progress_bar = progress.children[0];var progress_bar_fg = progress_bar.children[0];var mask = progress_bar.children[1];var progress_value = progress.children[1];// 2. 監(jiān)聽鼠標(biāo)按下mask.onmousedown = function (event) {var e = event || window.event;// 2.1 獲取初始位置var offsetLeft = event.clientX - mask.offsetLeft;// 2.2 監(jiān)聽鼠標(biāo)的移動document.onmousemove = function (event) {var e = event || window.event;// 2.3 獲取移動的位置var x = e.clientX - offsetLeft;// 邊界值處理if(x < 0){x = 0;}else if(x >= progress_bar.offsetWidth - mask.offsetWidth){x = progress_bar.offsetWidth - mask.offsetWidth;}// 2.4 走起來mask.style.left = x + 'px';progress_bar_fg.style.width = x + 'px';progress_value.innerHTML = parseInt(x / (progress_bar.offsetWidth - mask.offsetWidth) * 100) + '%';return false;};// 2.5 監(jiān)聽鼠標(biāo)抬起document.onmouseup = function () {document.onmousemove = null;}}} </script> </body> </html>

商品展示

商品展示,拉動的時候展示對應(yīng)的商品

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title></title><style>*{margin: 0;padding: 0;list-style: none;border:none;}#box{width: 800px;height: 200px;border: 1px solid #ddd;position: relative;margin: 100px auto;overflow: hidden;}#box ul{width: 2600px;position: absolute;left: 0;top: 20px;}#box ul li{float: left;}#box_bottom{position: absolute;left: 0;bottom: 0;background-color: #e8e8e8;width: 100%;height: 25px;}.mask{position: absolute;left: 0;top:0;height: 25px;background-color: orangered;border-radius: 12px;cursor: pointer;}</style> </head> <body><div id="box"><ul id="box_top"><li><img src="images/img1.jpg" alt=""></li><li><img src="images/img2.jpg" alt=""></li><li><img src="images/img3.jpg" alt=""></li><li><img src="images/img4.jpg" alt=""></li><li><img src="images/img5.jpg" alt=""></li><li><img src="images/img6.jpg" alt=""></li><li><img src="images/img7.jpg" alt=""></li><li><img src="images/img8.jpg" alt=""></li><li><img src="images/img1.jpg" alt=""></li><li><img src="images/img2.jpg" alt=""></li><li><img src="images/img1.jpg" alt=""></li><li><img src="images/img2.jpg" alt=""></li><li><img src="images/img3.jpg" alt=""></li><li><img src="images/img4.jpg" alt=""></li><li><img src="images/img5.jpg" alt=""></li><li><img src="images/img6.jpg" alt=""></li><li><img src="images/img7.jpg" alt=""></li><li><img src="images/img8.jpg" alt=""></li><li><img src="images/img1.jpg" alt=""></li><li><img src="images/img2.jpg" alt=""></li></ul><div id="box_bottom"><span class="mask"></span></div></div><script>window.onload = function () {// 1. 獲取需要的標(biāo)簽var box = document.getElementById("box");var box_top = document.getElementById("box_top");var box_bottom = document.getElementById("box_bottom");var mask = box_bottom.children[0];// 2. 設(shè)置滾動條的長度// 滾動條長度 = ( 盒子的寬度 / 內(nèi)容的寬度) * 盒子的寬度var mask_len = (box.offsetWidth / box_top.offsetWidth) * box.offsetWidth;mask.style.width = mask_len + 'px';// 3. 鼠標(biāo)操作mask.onmousedown = function (event) {var e = event || window.event;// 3.1 求出初始值var beginX = e.clientX - mask.offsetLeft;// 3.2 移動document.onmousemove = function (event) {var e = event || window.event;// 3.3 求出移動的距離var endX = event.clientX - beginX;// 邊界值if(endX < 0){endX = 0;}else if(endX >= box.offsetWidth - mask.offsetWidth){endX = box.offsetWidth - mask.offsetWidth;}// 3.4 動起來mask.style.left = endX + 'px';// 內(nèi)容走的距離 = (內(nèi)容的長度 - 盒子的長度) \/ (盒子長度 - 滾動條的長度) * 滾動條走的距離var content_len = (box_top.offsetWidth - box.offsetWidth) / (box.offsetWidth - mask.offsetWidth) * endX;box_top.style.left = -content_len + 'px';return false;};document.onmouseup = function () {document.onmousemove = null;}}} </script> </body> </html>

彈性導(dǎo)航

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title></title><style>*{margin: 0;padding: 0;border:0;list-style: none;}body{background-color: pink;}#nav{width: 900px;height: 63px;background:url("images/doubleOne.png") no-repeat rightcenter #fff;border-radius: 5px;position: relative;margin: 100px auto;}#nav ul{position: relative;}#nav ul li{float: left;width: 88px;height: 63px;text-align: center;line-height: 70px;cursor: pointer;}#t_mall{width: 88px;height: 63px;background: url("images/tMall.png") no-repeat;position: absolute;}</style> </head> <body> <nav id="nav"><span id="t_mall"></span><ul><li>雙11狂歡</li><li>服裝會場</li><li>數(shù)碼家電</li><li>家具建材</li><li>母嬰童裝</li><li>手機會場</li><li>美妝會場</li><li>進口會場</li><li>飛豬旅行</li></ul> </nav> <script>window.onload = function () {// 1. 獲取需要的標(biāo)簽var nav = $("nav");var t_mall = nav.children[0];var ul = nav.children[1];var allLis = ul.children;// 記錄鼠標(biāo)點擊的位置var beginX = 0;// 2. 遍歷for(var i=0; i<allLis.length; i++){var li = allLis[i];// 2.1 監(jiān)聽鼠標(biāo)進入li.onmouseover = function () {end = this.offsetLeft;};// 2.2 監(jiān)聽鼠標(biāo)按下事件li.onmousedown = function () {beginX = this.offsetLeft;};// 2.2 監(jiān)聽鼠標(biāo)離開事件li.onmouseout = function () {end = beginX;}}// 3.緩動動畫var begin = 0, end =0;setInterval(function () {begin = begin + (end - begin) * 0.1;t_mall.style.left = begin + "px";}, 10);function $(id) {return typeof id === "string" ? document.getElementById(id) : null;}} </script> </body> </html>

素材代碼下載

總結(jié)

以上是生活随笔為你收集整理的十五、JavaScript进度条的制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。