• js和jquery实现图片无缝轮播的不同写法


    多掌握一种方法总是会有好处的,学习编程就要多思考,举一反三

    下面写一下实现图片自动播放的代码,由于学习的是javascript,代码量很大,所以又学习了jquery库的操作,非常简便

    还有非常有逼格的三元运算: 条件 ?(表示True) do something :(表示False) do others

    这是css代码

    * {
        padding:0;
        margin:0;
    }
    ul {
        list-style:none;
    }
    .box {
        width:240px;
        height:180px;
        /*在这里必须要设置高度,因为里面只有一个ul,而我们给ul设置的是绝对定位,提升了层级,那么box文档流中*/
        /*没有元素撑开box的高度,所以我们要给其设置固定高度*/
        background:lightgray;
        margin:200px auto;
        overflow:hidden;
        position:relative;
    }
    ul {
        width:400%;
        height:180px;
        position:absolute;
        top:0;
        left:0;
        background:red;
    }
    
    ul li {
        float:left;
    }

    这是html + js代码

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>a website</title>
            <link rel = "stylesheet" href = "css.css" type = "text/css">
        </head>
        <body>
        <div class = "box">
            <ul class = "u">
                <li><img src = "img/01.jpg"></li>
                <li><img src = "img/02.jpg"></li>
                <li><img src = "img/03.jpg"></li>
                <li><img src = "img/04.jpg"></li>
            </ul>
        </div>
        </body>
        <script src = "jquery-3.2.1.js"></script>
        <script type = "text/javascript">
    //        想要实现的效果:
    //        1.打开网页,图片自动往左移动,当4张图片都移动完之后又重新移动,实现无缝轮播的效果
    //        2.当鼠标滑到图片区域图片会停止轮播
    //        3.当鼠标滑出图片区域图片会按照原来的位置继续轮播
    //        方法一:基于javascript来实现
    //        window.onload = function() {
    //            var box = document.getElementsByClassName("box")[0];
    //            var ul = document.getElementsByTagName("ul")[0];
    //            var count = 0;
    //            var timer = null;
    //            function func(){
    //                count--;
    //                count < -720 ? count=0 : count;
    //                ul.style.left = count + "px";
    //            }
    //            timer = setInterval(func,20);
    //            box.onmouseover = function(){
    //                clearInterval(timer)
    //            }
    //            box.onmouseout = function(){
    //                timer = setInterval(func,20);
    //            }
    //            }
    
    //            方法二:基于jquery实现
                $(function(){
                    var count = 0;
                    var timer = null;
                    function func(){
                        count --;
                        count < -720 ? count = 0
                        :$("ul").css("left",count)
                    }
                    timer = setInterval(func,20);
                    $(".box").mouseover(function(){
                        clearInterval(timer);
                    });
                    $(".box").mouseout(function(){
                        timer = setInterval(func,20);
                    });
                });
    
    //            现在我们加一个按钮控制轮播动画的位置
    //            $(".box").before("<button>移动</button>");
    //            $("button").click(function(){
    //                $(".box").css("margin","20px auto")
    //            })
    //              或者加一个按钮让轮播位置产生动画效果
    //              $(".box").before("<button>移动</button>");
    //              $("button").click(function(){
    //                  $(".box").toggle(1000)
    //              })
        </script>
    </html>
  • 相关阅读:
    最优装载(二分答案)
    最小生成树
    hibernate映射实体类查询时数据库空字段赋值给实体类报错的问题
    'hibernate.dialect' must be set when no Connection avalable
    简单了解一下oracle中的显示游标和存储过程
    oracle中的预定异常和自定义异常
    PL/sql中如何声明变量,常量,控制语句及for,loop,while和顺序控制的使用
    简单了解,使用oracle中的索引,表分区
    oracle中序列,同义词的创建
    数据库权限管理
  • 原文地址:https://www.cnblogs.com/tarantino/p/8854850.html
Copyright © 2020-2023  润新知