zoukankan      html  css  js  c++  java
  • 特效 左右滑动轮播图jQuery思路

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                padding: 0;
                margin: 0;
                list-style: none;
                border: 0;
            }
    
            .all {
                 500px;
                height: 200px;
                padding: 7px;
                border: 1px solid #ccc;
                margin: 100px auto;
                position: relative;
            }
    
            .screen {
                 500px;
                height: 200px;
                overflow: hidden;
                position: relative;
            }
    
            .screen li {
                 500px;
                height: 200px;
                overflow: hidden;
                float: left;
            }
    
            .screen ul {
                position: absolute;
                left: 0;
                top: 0px;
                 3000px;
    
            }
    
            .all ol {
                position: absolute;
                right: 10px;
                bottom: 10px;
                line-height: 20px;
                text-align: center;
            }
    
            .all ol li {
                float: left;
                 20px;
                height: 20px;
                background: #fff;
                border: 1px solid #ccc;
                margin-left: 10px;
                cursor: pointer;
            }
    
            .all ol li.current {
                background: yellow;
            }
    
            #arr {
                display: none;
            }
    
            #arr span {
                 40px;
                height: 40px;
                position: absolute;
                left: 5px;
                top: 50%;
                margin-top: -20px;
                background: #000;
                cursor: pointer;
                line-height: 40px;
                text-align: center;
                font-weight: bold;
                font-family: '黑体';
                font-size: 30px;
                color: #fff;
                opacity: 0.3;
                border: 1px solid #fff;
            }
    
            #arr #right {
                right: 5px;
                left: auto;
            }
        </style>
    </head>
    <body>
    <div class="all" id='box'>
        <div class="screen">
            <ul>
                <li><img src="images/1.jpg" width="500" height="200"/></li>
                <li><img src="images/2.jpg" width="500" height="200"/></li>
                <li><img src="images/3.jpg" width="500" height="200"/></li>
                <li><img src="images/4.jpg" width="500" height="200"/></li>
                <li><img src="images/5.jpg" width="500" height="200"/></li>
            </ul>
            <ol>
                <li class="current">1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ol>
        </div>
        <div id="arr"><span id="left">&lt;</span><span id="right">&gt;</span></div>
    </div>
    <script src="jquery-1.12.2.js"></script>
    <script>
        $(function(){
             var n=0;
             var $li=$(".screen ul li"); //声明变量减少服务器的请求次数
             var $ul=$(".screen ul");
             var $oli=$(".screen ol li");
             var $arr=$("#arr");
             var imgWidth=$li.width();
             // var timer=null;
             //克隆第一个图片
             var oLi=$li.eq(0).clone(true);
             //把克隆的图片加到ul后面
             $ul.append(oLi);
             var size=$li.size(); //获取li的个数
             // console.log(size);
             //滑过数字小图标大图跟着动
             $oli.mouseenter(function(){
                n=$(this).index();
                tab();
             })
             //点击右箭头移动轮播图
             $("#box #arr #right").click(function(){
                toRight();         
             })
             //点击左箭头移动轮播图
             $("#box #arr #left").click(function(){
                toLeft();    
             })
    
             //指到盒子上左右箭头出现  离开隐藏
             $("#box").hover(function(){
                $arr.css("display","block");
                clearInterval(timer);
             },function(){
                $arr.css("display","none");
                autoPlay();
             })
             //自动轮播
             autoPlay();
             function autoPlay(){
                timer=setInterval(function(){
                    toRight();
                },1500)
             }
             //封装左箭头
             function toLeft(){
                n--;
                if(n<0){
                    
                    $ul.css("left",-size*imgWidth+"px");
                    n=size-1;
                }
                tab();
             };
             //封装右箭头
             function toRight(){
                n++;
                if(n>size){
                    n=1;
                    $ul.css("left",0);
                }
                if(n==size){
                    $oli.eq(0).addClass("current").siblings().removeClass("current");
                }
                tab();
             }
             //封装移动动画
             function tab(){
                $ul.stop().animate({left:-imgWidth*n+"px"},200);
                $oli.eq(n).addClass("current").siblings().removeClass("current");
             }
        })
    </script>
    </body>
    </html>

  • 相关阅读:
    Spark权威指南(中文版)----第5章 结构化API基本操作
    Spark权威指南(中文版)----第2章 Spark简介
    Spark权威指南(中文版)----第4章 结构化API概述
    Spark权威指南(中文版)----第1章Apache Spark是什么
    Java读写锁的实现原理
    【进阶之路】动态代理与字节码生成
    如何写好技术文档——来自Google十多年的文档经验
    谈谈 C++ STL 中的迭代器
    面试官疯狂问我联表查询怎么办? 愣着干嘛?进来白嫖啊!
    面试问题记录 三 (JavaWeb、JavaEE)
  • 原文地址:https://www.cnblogs.com/zhang-wang/p/6262391.html
Copyright © 2011-2022 走看看