最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)商品櫥窗特效

 更新時(shí)間:2020年01月09日 08:33:59   作者:KaiSarH  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)商品櫥窗特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JS實(shí)現(xiàn)商品櫥窗特效的具體代碼,供大家參考,具體內(nèi)容如下

知識(shí)點(diǎn)

換算公式
① 滾動(dòng)條長(zhǎng)度 = ( 盒子的寬度 / 內(nèi)容的寬度) * 盒子的寬度
滾動(dòng)條長(zhǎng)度/盒子的長(zhǎng)度 = 盒子的長(zhǎng)度/內(nèi)容的長(zhǎng)度
② 內(nèi)容走的距離 = (內(nèi)容的長(zhǎng)度 - 盒子的長(zhǎng)度)/ (盒子的長(zhǎng)度 - 滾動(dòng)條的長(zhǎng)度)* 滾動(dòng)條走的距離

運(yùn)行效果

代碼

<!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: 5200px;
   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>
   <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è)置滾動(dòng)條的長(zhǎng)度
  // 滾動(dòng)條長(zhǎng)度 = ( 盒子的寬度 / 內(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 移動(dòng)
   document.onmousemove = function (event) {
    var e = event || window.event;

    // 3.3 求出移動(dòng)的距離
    var endX = event.clientX - beginX;

    // 邊界值
    if(endX < 0){
     endX = 0;
    }else if(endX >= box.offsetWidth - mask.offsetWidth){
     endX = box.offsetWidth - mask.offsetWidth;
    }


    // 3.4 動(dòng)起來
    mask.style.left = endX + 'px';

    // 內(nèi)容走的距離 = (內(nèi)容的長(zhǎng)度 - 盒子的長(zhǎng)度)/ (盒子的長(zhǎng)度 - 滾動(dòng)條的長(zhǎng)度)* 滾動(dòng)條走的距離
    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>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript實(shí)現(xiàn)表格排序方法

    JavaScript實(shí)現(xiàn)表格排序方法

    JavaScript實(shí)現(xiàn)表格排序方法,需要的朋友可以參考一下
    2013-06-06
  • js模擬點(diǎn)擊事件實(shí)現(xiàn)代碼

    js模擬點(diǎn)擊事件實(shí)現(xiàn)代碼

    在實(shí)際的應(yīng)用開發(fā)中,我們會(huì)常常用到JS的模事件,比如說點(diǎn)擊事件,舉個(gè)簡(jiǎn)單的例子,點(diǎn)擊表單外的“提交”按鈕來提交表單。上代碼吧
    2012-11-11
  • 一文帶你搞懂JS中導(dǎo)入模塊import和require的區(qū)別

    一文帶你搞懂JS中導(dǎo)入模塊import和require的區(qū)別

    JavaScript中,模塊是一種可重用的代碼塊,它將一些代碼打包成一個(gè)單獨(dú)的單元,并且可以在其他代碼中進(jìn)行導(dǎo)入和使用。JavaScript中有兩種常用的方式:使用import和require,本文主要聊聊他們二者的區(qū)別
    2023-03-03
  • 關(guān)于JS中的undefined與null詳解

    關(guān)于JS中的undefined與null詳解

    在JavaScript中,undefined和null是兩個(gè)特殊的值,用于表示缺失或空值,文章通過代碼示例詳細(xì)介紹undefined與null作用及使用方法,感興趣的同學(xué)可以借鑒一下
    2023-05-05
  • 微信小程序Getuserinfo解決方案圖解

    微信小程序Getuserinfo解決方案圖解

    本文通過圖文并茂的形式給大家介紹了微信小程序Getuserinfo解決方案,需要的朋友可以參考下
    2018-08-08
  • javascript實(shí)現(xiàn)移動(dòng)端 HTML5 圖片上傳預(yù)覽和壓縮功能示例

    javascript實(shí)現(xiàn)移動(dòng)端 HTML5 圖片上傳預(yù)覽和壓縮功能示例

    這篇文章主要介紹了javascript實(shí)現(xiàn)移動(dòng)端 HTML5 圖片上傳預(yù)覽和壓縮功能,結(jié)合實(shí)例形式分析了javascript移動(dòng)端 HTML5 圖片上傳預(yù)覽和壓縮功能具體實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • ExtJs整合Echarts的示例代碼

    ExtJs整合Echarts的示例代碼

    本篇文章主要介紹了ExtJs整合Echarts的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • layui導(dǎo)出Excel表格的方法代碼舉例

    layui導(dǎo)出Excel表格的方法代碼舉例

    使用了layui自帶的導(dǎo)出功能后,真的是超級(jí)便捷,下面這篇文章主要給大家介紹了關(guān)于layui導(dǎo)出Excel表格的方法代碼,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 微信小程序-可移動(dòng)菜單的實(shí)現(xiàn)過程詳解

    微信小程序-可移動(dòng)菜單的實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了微信小程序-可移動(dòng)菜單的實(shí)現(xiàn)過程詳解,我們可以經(jīng)常看到手機(jī)app里有的菜單欄是懸浮在首頁(yè)的,用戶可以拖動(dòng)和點(diǎn)擊菜單欄進(jìn)行交互,今天就教大家利用小程序的控件,,需要的朋友可以參考下
    2019-06-06
  • 使用async await 封裝 axios的方法

    使用async await 封裝 axios的方法

    這篇文章主要介紹了使用async await 封裝 axios的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論

辽阳县| 沈丘县| 巨野县| 辽阳县| 家居| 加查县| 隆尧县| 泸水县| 兴隆县| 浦北县| 长沙县| 明星| 辽宁省| 乌拉特后旗| 随州市| 手机| 紫云| 陈巴尔虎旗| 宜昌市| 静安区| 台安县| 四川省| 教育| 井冈山市| 宁海县| 元阳县| 通州市| 长海县| 寿光市| 中牟县| 丹棱县| 大洼县| 梁平县| 鄂托克前旗| 霍城县| 南靖县| 岳西县| 锦屏县| 饶阳县| 黄浦区| 若羌县|