• js


    上效果图: 

     上代码:

    
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>scrollLeft</title>
        <style>
            h3,section{
                background-color: skyblue;
                padding: 10px;
                border-radius: 10px;
                margin-top: 20px;
            }
            section{
                padding-bottom: 20px;
            }
            
            .slide{
                display: block; 
                 500px;
                height: 300px;
                overflow: hidden;
            }
            .slide img{
                 100%;
                height: 100%;
                object-fit: cover;
                vertical-align: top;
            }

            .slide-wrap{
                position: relative;
                 500px;
            }

            .slide-wrap > .btn{
                position: absolute;
                 60px;
                height: 60px;
                background-color: #f1c40f;
                top: 110px;
                display: flex;
                justify-content: center;
                align-items: center;
            }
            .slide-wrap .left-btn{
                left: 0;
            }
            .slide-wrap .right-btn{
                right: 0;
            }

            /* 手撸个箭头 */
            .arrow{
                 30px;
            }
            .arrow div{
                height: 5px;
                background-color: #2c3e50;
            }
            .arrow-top , .arrow-bottom{
                 20px;
            }   
            .arrow-top{
                transform:rotate(-45deg) translateY(-4px)
            }    
            .arrow-bottom{
                transform:rotate(45deg) translateY(4px)
            }      
            .arrow-middle{
                 30px;
                transform:translateX(-1.5px)
            }
            /* 反转箭头 */
            .arrow-reverse{
                transform: rotate(180deg);
            }  
        </style>
    </head>
    <body>
        <h3>scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离</h3>

        <h3><b>当前元素必须设置 overflow: hidden;</b> scrollLeft 才会生效</h3>
        <h3>slide设置为display:flex时,谷歌不支持。 为了兼容浏览器,最好设置为block</h3>
        
        <!-- 这个容器只是为了加切换的按钮 -->
        <div class="slide-wrap">
            <!-- 主要切换区域 -->
            <div class="slide">
                <img src="./img/wly.jpg" alt="">
                <img src="./img/wsm.jpg" alt="">
                <img src="./img/wzz.jpg" alt="">
            </div>
            <div class="btn left-btn" id="slidePrevious">
                <div class="arrow">
                    <div class="arrow-top"></div>
                    <div class="arrow-middle"></div>
                    <div class="arrow-bottom"></div>
                </div>
            </div>
            <div class="btn right-btn" id="slideNext">
                <div class="arrow arrow-reverse">
                    <div class="arrow-top"></div>
                    <div class="arrow-middle"></div>
                    <div class="arrow-bottom"></div>
                </div>
            </div>
        </div>

        <section>
            <p>画个箭头</p>
            <div class="arrow">
                <div class="arrow-top"></div>
                <div class="arrow-middle"></div>
                <div class="arrow-bottom"></div>
            </div>
            <p>反转箭头</p>
            <div class="arrow arrow-reverse">
                <div class="arrow-top"></div>
                <div class="arrow-middle"></div>
                <div class="arrow-bottom"></div>
            </div>
        </section>
       
        
            
        <script>
            let slide = document.getElementsByClassName("slide")[0];

            let len = document.getElementsByClassName("slide")[0].children.length;
            
            let i = 0;
            let func = function(){
                if(i==len){
                    i=0;
                }
                slide.scrollTop = i*300;
                i++;
            }
            
            let timer = setInterval(func,5000)

            let slideWrap = document.getElementsByClassName("slide-wrap")[0];

            slideWrap.addEventListener("mouseover",function(){
                clearInterval(timer);
            },{capture:true})

            slideWrap.addEventListener("mouseout",function(){
                timer = setInterval(func,5000);
            },{capture:true})

            // 左右切换
            let previous = document.getElementById("slidePrevious");
            let next = document.getElementById("slideNext");

            previous.addEventListener("click",function(){
                if(i==0){
                    console.log("nothing");
                    i = len-1;
                    slide.scrollTop = i*300;
                    return
                }else{
                    i--;
                    console.log(i);
                    slide.scrollTop = i*300;
                }
               
            },{
                capture:true
            })
            next.addEventListener("click",function(){
                if(i==(len-1)){
                    console.log("nothing");
                    i=0;
                    slide.scrollTop = i*300;
                    return
                }else{
                    i++;
                    slide.scrollTop = i*300;
                }
              
            },{
                capture:true
            })

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

    由于加载的本地的图片,大佬们可以更改下图片地址,查看效果 。 

  • 相关阅读:
    【276】◀▶ Python 字符串函数说明
    Spring事务配置的五种方式 巨全!不看后悔,一看必懂!
    Android Developers:两个视图渐变
    《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
    Android的TextView与Html相结合的用法
    嵌入式C语言优化小技巧
    vxworks获取系统时间编程
    【算法与数据结构】在n个数中取第k大的数(基础篇)
    字符集转换 字符类型转换 utf-8 gb2312 url
    java 从零开始,学习笔记之基础入门<Oracle_基础>(三十三)
  • 原文地址:https://www.cnblogs.com/500m/p/13615652.html
Copyright © 2020-2023  润新知