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

js實現(xiàn)櫥窗展示效果

 更新時間:2020年01月11日 10:03:21   作者:頑張ってちしじょ  
這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)櫥窗展示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)櫥窗展示的具體代碼,供大家參考,具體內(nèi)容如下

思路

1、獲取需要的標(biāo)簽

2、求出滾動條的長度(公式:滾動條長度 = ( 盒子的寬度 / 內(nèi)容的寬度) * 盒子的寬度)

3、監(jiān)聽鼠標(biāo)按下事件:3 設(shè)置起始位置

4、監(jiān)聽鼠標(biāo)的移動:

4.1求出移動的位置
4.2判斷滾動條的位置(防超出)
4.3 移動滾動條、商品滾動(公式:內(nèi)容走的距離 = (內(nèi)容的長度 - 盒子的長度) / (盒子長度 - 滾動條的長度) * 滾動條走的距離);

5、監(jiān)聽鼠標(biāo)的離開事件:把鼠標(biāo)的移動事件設(shè)置為無即可。

  <script>
    window.onload = function (){
      //1.獲取需要的標(biāo)簽
      var box = document.getElementById("box");
      var box_top = box.children[0];
      var box_bottom = box.children[1];
      var mask = box_bottom.children[0];
      //2.獲取滾動條長度
      // 滾動條長度 = ( 盒子的寬度 / 內(nèi)容的寬度) * 盒子的寬度
      var mask_length = (box.offsetWidth /box_top.offsetWidth) * box.offsetWidth;
      mask.style.width = mask_length + "px";
      //3.監(jiān)聽鼠標(biāo)按下的事件
      mask.onmousedown = function (event){
        var event = event || window.event;
        //3.1設(shè)置起始位置
        var beginX = event.clientX - mask.offsetLeft;
        //3.2 監(jiān)聽鼠標(biāo)的移動
        document.onmousemove =function (event){
          var event = event || window.event;
          //3.2.1求移動的位置
          var endX = event.clientX - beginX;

          //3.2.2處理邊界值
          if(endX < 0){
            endX = 0
          }else if(endX >= box.offsetWidth - mask.offsetWidth){
            endX = box.offsetWidth - mask.offsetWidth;
          }
          //3.2.3讓滾動條滾動
          mask.style.left = endX + "px";

          //3.2.4 讓商品隨著滾動
          //公式:內(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>

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

相關(guān)文章

  • javascript進行數(shù)組追加方法小結(jié)

    javascript進行數(shù)組追加方法小結(jié)

    javascript中給數(shù)組加元素是一個非常簡單的問題,javascript本身就提供了大量這類函數(shù),我們可以使用js自帶函數(shù)快速給數(shù)組增加元素了,本文就javascript進行數(shù)組追加的方法做出如下小結(jié)。
    2014-06-06
  • Echarts折線圖實現(xiàn)一條折線顯示不同顏色的方法

    Echarts折線圖實現(xiàn)一條折線顯示不同顏色的方法

    這篇文章主要給大家介紹了關(guān)于Echarts折線圖實現(xiàn)一條折線顯示不同顏色的相關(guān)資料,Echarts的折線圖可以通過設(shè)置series中的itemStyle屬性來改變折線的顏色,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 一個通過script自定義屬性傳遞配置參數(shù)的方法

    一個通過script自定義屬性傳遞配置參數(shù)的方法

    編寫了一個js插件,要使用該插件需要先在html中引入該插件Js,然后再添加一個script標(biāo)簽,在里面調(diào)用,需要的朋友可以看看
    2014-09-09
  • JS正則替換掉小括號及內(nèi)容的方法

    JS正則替換掉小括號及內(nèi)容的方法

    下面小編就為大家?guī)硪黄狫S正則替換掉小括號及內(nèi)容的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • ES6?class類實現(xiàn)繼承實例詳解

    ES6?class類實現(xiàn)繼承實例詳解

    傳統(tǒng)的javascript中只有對象,沒有類的概念,下面這篇文章主要給大家介紹了關(guān)于ES6?class類實現(xiàn)繼承的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • JavaScript利用canvas實現(xiàn)炫酷的碎片切圖效果

    JavaScript利用canvas實現(xiàn)炫酷的碎片切圖效果

    這篇文章主要和大家分享一個炫酷的碎片式切圖效果,本文主要利用canvas來實現(xiàn),代碼量不多,但有些地方還是需要花點時間去理解的,感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • swtich/if...else的替代語句

    swtich/if...else的替代語句

    這篇文章主要介紹了swtich/if...else的替代語句的相關(guān)資料,需要的朋友可以參考下
    2015-08-08
  • js change,propertychange,input事件小議

    js change,propertychange,input事件小議

    github上關(guān)于mootools一個issue的討論很有意思,所以就想測試記錄下。感興趣的可以點擊原頁面看看
    2011-12-12
  • 如何用javascript去掉字符串里的所有空格

    如何用javascript去掉字符串里的所有空格

    如何用javascript去掉字符串里的所有空格...
    2007-02-02
  • JS使用cookie設(shè)置樣式的方法

    JS使用cookie設(shè)置樣式的方法

    這篇文章主要介紹了JS使用cookie設(shè)置樣式的方法,涉及javascript樣式的設(shè)置與cookie的讀寫相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論

青神县| 隆尧县| 井陉县| 洛浦县| 温泉县| 长春市| 抚顺市| 垣曲县| 晋城| 缙云县| 迁安市| 五大连池市| 怀集县| 府谷县| 长宁县| 阳新县| 徐水县| 凭祥市| 通辽市| 繁峙县| 涟源市| 车致| 余干县| 金沙县| 安龙县| 宁安市| 嘉峪关市| 通州市| 林州市| 大宁县| 孟连| 济南市| 思南县| 什邡市| 岑溪市| 缙云县| 嘉兴市| 正安县| 曲水县| 新晃| 华池县|