亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

原生Js 實(shí)現(xiàn)的簡單無縫滾動(dòng)輪播圖的示例代碼

 更新時(shí)間:2021年05月10日 17:19:27   作者:小白可別不舉鐵  
這篇文章主要介紹了原生Js 實(shí)現(xiàn)的簡單無縫滾動(dòng)輪播圖的示例代碼,幫助大家更好的理解喝學(xué)習(xí)使用js,感興趣的朋友可以了解下

   簡單無縫滾動(dòng)輪播圖存在很多漏洞,就是后期增加圖片時(shí)會(huì)很不方便,需要改動(dòng)的地方也很多,耦合性也很強(qiáng),只適用于一部分程序,所以我們可以通過改動(dòng)圖片結(jié)構(gòu)和計(jì)算折算點(diǎn)的方式,升級(jí)代碼。

      原簡單的滾動(dòng)輪播代碼

<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .scroll{
            position: relative;
            width: 830px;/*展示寬度 展示4個(gè)圖+3個(gè)邊框=830*/
            height: 130px;
            border: 10px solid rgb(15, 15, 15);
            margin: 100px auto;
            overflow: hidden;
        }
        .scroll ul{
            position: absolute;
            width: 5000px;/*ul能存下所有l(wèi)i的寬*/
            height: 130px;
            top: 0;
            left: 0;
        }
        .scroll ul li{
            float: left;
            width: 200px;
            height: 130px;
            margin-right: 10px;
            overflow: hidden;
        }

    </style>
</head>
<body>
    <div id="scroll" class="scroll">
        <ul id="munit">
            <li><img src="../BOM/shuzi/3.png" alt=""></li>
            <li><img src="../BOM/shuzi/4.png" alt=""></li>
            <li><img src="../BOM/shuzi/5.png" alt=""></li>
            <li><img src="../BOM/shuzi/6.png" alt=""></li>
            <li><img src="../BOM/shuzi/7.png" alt=""></li>
            <li><img src="../BOM/shuzi/8.png" alt=""></li>
            <li><img src="../BOM/shuzi/9.png" alt=""></li>

            <li><img src="../BOM/shuzi/3.png" alt=""></li>
            <li><img src="../BOM/shuzi/4.png" alt=""></li>
            <li><img src="../BOM/shuzi/5.png" alt=""></li>
            <li><img src="../BOM/shuzi/6.png" alt=""></li>
            <li><img src="../BOM/shuzi/7.png" alt=""></li>
            <li><img src="../BOM/shuzi/8.png" alt=""></li>
            <li><img src="../BOM/shuzi/9.png" alt=""></li>
        </ul>
    </div>

    <script>
        //獲取元素
        var scroll = document.getElementById("scroll");
        var munit = document.getElementById("munit");
        var li = munit.children;
        // 進(jìn)行滾動(dòng)
        var nowLeft = 0;
        //要找到ul元素運(yùn)動(dòng)的折返點(diǎn)
        var back = -1470;//圖和邊框是li的寬度,展示的有4張圖,所以折返點(diǎn)就是1260
        //定時(shí)器
        var timer = setInterval(run,20);

        // 鼠標(biāo)移上scroll停止
        scroll.onmouseover = function(){
            clearInterval(timer);
        }
        // 移開輪播
        scroll.onmouseout = function(){
            timer = setInterval(run,20);
        }

        //運(yùn)動(dòng)函數(shù)
        function run(){
            nowLeft -= 2;
            //判斷是否走到了折返點(diǎn),走到了,則瞬間切換到0位置
            if(nowLeft <= back){
                nowLeft = 0;
            }
            munit.style.left = nowLeft + "px";
        }

       
    </script>
</body>
</html>

   在<div id="scroll">結(jié)構(gòu)給ul新增的一個(gè)父級(jí)div,這樣之后添加圖片,后期通過獲取ul寬度就可以了計(jì)算折算點(diǎn)
   1、折返點(diǎn)計(jì)算需要通過Js自動(dòng)計(jì)算
   var back = -munit.offsetWidth;//元素左移,值為負(fù)數(shù)
   2、自動(dòng)生成另一組對應(yīng)的圖片結(jié)構(gòu) li
   munit.innerHTML = munit.innerHTML + munit.innerHTML;//這樣就會(huì)增加一組li標(biāo)簽,后期增加圖片也會(huì)隨之增加
修改部分代碼,

css改寫部分:
  /*給ul新增的一個(gè)父級(jí)div,這樣添加圖片后期獲取ul寬度 就可以了 */
        .scroll .inner{
            position: relative;
            width: 5000px;
        }
        .scroll ul{
            position: absolute;
            height: 130px;
            top: 0;
            left: 0;
            list-style: none;


body改寫部分:      
<body>
    <div id="scroll" class="scroll">
       <div class="inner">
           <ul id="munit">
              <li><img src="../BOM/shuzi/3.png" alt=""></li>
              <li><img src="../BOM/shuzi/4.png" alt=""></li>
              <li><img src="../BOM/shuzi/5.png" alt=""></li>
              <li><img src="../BOM/shuzi/6.png" alt=""></li>
              <li><img src="../BOM/shuzi/7.png" alt=""></li>
              <li><img src="../BOM/shuzi/8.png" alt=""></li>
              <li><img src="../BOM/shuzi/9.png" alt=""></li>
              <li><img src="../BOM/shuzi/10.png" alt=""></li>
          </ul>
       </div>
    </div>

JS改寫部分:
<script>
        //獲取元素
        var scroll = document.getElementById("scroll");
        var munit = document.getElementById("munit");

        //改寫部分
        //1 折返點(diǎn)計(jì)算需要通過Js自動(dòng)計(jì)算
        var back = -munit.offsetWidth;//元素左移,值為負(fù)數(shù)
        //2 自動(dòng)生成另一組對應(yīng)的圖片結(jié)構(gòu) li
        munit.innerHTML = munit.innerHTML + munit.innerHTML;
        // 進(jìn)行滾動(dòng)


        var nowLeft = 0;
        //定時(shí)器
        var timer = setInterval(run,20);

        // 鼠標(biāo)移上scroll停止
        scroll.onmouseover = function(){
            clearInterval(timer);
        }
        // 移開輪播
        scroll.onmouseout = function(){
            timer = setInterval(run,20);
        }

        //運(yùn)動(dòng)函數(shù)
        function run(){
            nowLeft -= 1;
            //判斷是否走到了折返點(diǎn),走到了,則瞬間切換到0位置
            if(nowLeft <= back){
                nowLeft = 0;
            }
            munit.style.left = nowLeft + "px";
        }

    </script>
</body>
</html>

這樣的代碼耦合性低,也適合任意個(gè)數(shù)的li、任意大小的圖片的加入

以上就是原生Js 實(shí)現(xiàn)的簡單無縫滾動(dòng)輪播圖的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Js 實(shí)現(xiàn)的簡單無縫滾動(dòng)輪播圖的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JS打字效果的動(dòng)態(tài)菜單代碼分享

    JS打字效果的動(dòng)態(tài)菜單代碼分享

    這篇文章主要介紹了JS打字效果的動(dòng)態(tài)菜單,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • 談?wù)凧avaScript類型系統(tǒng)之Math

    談?wù)凧avaScript類型系統(tǒng)之Math

    Math 對象并不像 Date 和 String 那樣是對象的類,因此沒有構(gòu)造函數(shù) Math(),像 Math.sin() 這樣的函數(shù)只是函數(shù),不是某個(gè)對象的方法。您無需創(chuàng)建它,通過把 Math 作為對象使用就可以調(diào)用其所有屬性和方法
    2016-01-01
  • 微信小程序?qū)崿F(xiàn)翻牌小功能

    微信小程序?qū)崿F(xiàn)翻牌小功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)翻牌小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • js實(shí)現(xiàn)鼠標(biāo)劃過給div加透明度的方法

    js實(shí)現(xiàn)鼠標(biāo)劃過給div加透明度的方法

    這篇文章主要介紹了js實(shí)現(xiàn)鼠標(biāo)劃過給div加透明度的方法,涉及javascript動(dòng)態(tài)操作頁面元素屬性的相關(guān)技巧,該方法可兼容火狐與IE瀏覽器,需要的朋友可以參考下
    2015-05-05
  • 微信小程序開發(fā)背景圖顯示功能

    微信小程序開發(fā)背景圖顯示功能

    這篇文章主要介紹了微信小程序開發(fā)--背景圖顯示,需要的朋友可以參考下
    2018-08-08
  • javascript removeChild 使用注意事項(xiàng)

    javascript removeChild 使用注意事項(xiàng)

    removeChild的注意事項(xiàng)。大家可以參考下。
    2009-04-04
  • 詳解JavaScript引擎V8執(zhí)行流程

    詳解JavaScript引擎V8執(zhí)行流程

    本文主要講解的是V8的技術(shù),是V8的入門篇,主要目的是了解V8的內(nèi)部機(jī)制,希望對前端,快應(yīng)用,瀏覽器,以及nodejs同學(xué)有些幫助。這里不涉及到如何編寫優(yōu)秀的前端,只是對JS內(nèi)部引擎技術(shù)的講解
    2021-06-06
  • 基于JavaScript實(shí)現(xiàn)HarmonyOS備忘錄服務(wù)卡片

    基于JavaScript實(shí)現(xiàn)HarmonyOS備忘錄服務(wù)卡片

    這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)HarmonyOS備忘錄服務(wù)卡片,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 一種JavaScript的設(shè)計(jì)模式

    一種JavaScript的設(shè)計(jì)模式

    一種JavaScript的設(shè)計(jì)模式...
    2006-11-11
  • typescript中聲明合并介紹

    typescript中聲明合并介紹

    這篇文章主要介紹了typescript中聲明合并介紹,類型合并表明編譯器將合并兩個(gè)分開的并且名稱相同的聲明,合并之后的聲明擁有兩個(gè)聲明的特點(diǎn),任意數(shù)量的聲明可以被合并,不僅限兩個(gè),更多相關(guān)內(nèi)容需要的朋友可以參考下面文章內(nèi)容
    2022-09-09

最新評(píng)論