淘宝滑动轮播案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>淘宝滑动轮播案例</title>
    <script src="../jquery-3.4.1.min.js"></script>
    <style type="text/css">
        *{
            padding:0px;
            margin:0px;
            border:0px;
        }
        li{
            list-style-type:none;
        }
        /*给a标签去除下划线*/
        a{
            text-decoration:none;
        }
        #wrapper{
            margin:20px auto;
        }
        #show-area{
            width:590px;
            height:470px;
            position:relative;
            margin:0px auto;
            overflow:hidden;
        }
        /*注意:找bug找了很久,这里自动插入一张,父容器要加上他的宽度,否则怎么显示呢?小问题大解决*/
        #show-area ul{
            position:relative;
            width:5310px;
            height:470px;
            right:0;
        }
        #show-area ul li{
            float:left;
            width:590px;
        }
        /*指示器*/
        #indicator{
            width:140px;
            text-align:center;
            position:absolute;
            top:450px;
            left:0;
            right: 0;
            margin: auto;
            z-index:1;
            /*ackground-color: #00ccff;*/
        }
        #indicator div{
            height:12px;
            width:12px;
            border-radius:100%;
            background-color:#ccc;
            float:left;
            margin-left:5px;
            opacity:0.9;
            filter:Alpha(opacity=90);/*为了适应旧的浏览器*/
        }
        #button-left,#button-right{
            /*display:none;*/
            position: absolute;
            width: 50px;
            height: 110px;
            z-index: 2;
            background-color: #cccccc;
            font-size: 40px;
            color: #FFFFFF;
            text-align: center;
            line-height: 110px;
            opacity:0;
            filter:Alpha(opacity=50);/*为了适应旧的浏览器*/
            cursor: default;
        }
        #button-left{
            top: 180px;
            left: 0px;
        }
        #button-right{
            top: 180px;
            left: 540px;
        }
        .onclick{
            background-color:#FFF !important;
        }
    </style>
 </head>

<body>
<div id="wrapper">
    <div id="show-area">

        <ul>
            <li><a href="#"><img src="1.jpg"></a></li>
            <li><a href="#"><img src="2.jpg"></a></li>
            <li><a href="#"><img src="3.jpg"></a></li>

        </ul>

        <div id="button-left" title="上一张"><</div>
        <div id="button-right" title="下一张">></div>

        <div id="indicator"></div><!--控制按钮,为了日后方便后台操作这里的控制按钮在js代码中控制添加-->
    </div>
</div>
<script>
    $(function () {

        /*设置鼠标移动到整个show区域则左右按钮显示出来,否则不显示*/
        $("#show-area").mouseenter(function () {
            $("#button-right,#button-left").css({opacity:0.5});
        });
        $("#show-area").mouseleave(function () {
            $("#button-right,#button-left").css({opacity:0});
        });

        var i=0;
        /*假装自己很智能,自动获取一下,在后面left值移动时就可以用它了*/
        var imgWidth = $("#show-area ul li").width();
        var clone = $("#show-area ul li").first().clone(true);
        /*copy 第一张的照片并且添加到最后已达到无缝对接的效果*/
        $("#show-area ul").append(clone);

        /*get 所有li的个数,只有length才是属性*/
        var size = $("#show-area ul li").length;

        /*step 1:  */
        //一开始循环添加按钮
        //为什么要size - 1?因为最后一张图片只是作一个过渡效果我们显示的始终还是4张图片
        //所以添加按钮的时候我们也应该添加4个按钮
        for(var j=0;j<size -1 ;j++){
            $("#indicator").append("<div></div>");
        }

        $("#indicator div").eq(i).addClass("onclick");

        /*step 2:  */
        //左按钮
        $("#button-left").click(function () {
            toLeft();
        });
        //右按钮
        $("#button-right").click(function () {
            toRight();
        });

        /*step 3:*/
        //按钮指示器鼠标移出移入事件
        $("#indicator div").hover(function () {
            i = $(this).index();
            clearInterval(timer);
            $("#show-area ul").stop().animate({left:-i * imgWidth});
            $(this).addClass("onclick").siblings().removeClass("onclick");

        },function () {
            timer = setInterval(function () {
                toRight();
            },2000)
        });

        //两个方向按钮鼠标移出移入事件
        $("#button-left,#button-right").mouseenter(function () {
            clearInterval(timer);
        }).mouseleave(function () {
            timer = setInterval(function () {
                toRight();
            },2000);
        });

        //定时器,注意,这里是最开始启动的,所以呢,这里不设值,会导致页面开始刷新出现错误。
         var timer = setInterval(function () {
            toRight();
        },2000);

        /*step 2-2*/
        //左按钮实现的函数
        function toLeft(){

            //同理,如果当前图片位置是第一张图片我再按一下右按钮那么我们也利用css的快速变换使它的位置来到最后一张图片的位置(size-1),并且让倒数第二张图片滑动进来
            i--;
            if(i==-1){
                $("#show-area ul").css({left:-(size - 1)*imgWidth});
                i=size-2;
            }
            $("#show-area ul").animate({left:-i*imgWidth},1000);
            $("#indicator div").eq(i).addClass("onclick").siblings().removeClass("onclick");

        }

        /*step2-2:*/
        //右按钮的实现函数
        function toRight() {
            i++;
            /*当前图片为最后一张图片的时候(我们一开始复制并且添加到ul最后面的图片)
            并且再点击了一次左按钮,这时候我们就利用css的快速转换效果把ul移动第一张图片的位置
            并且第二张图片滑入达到无缝效果(css的变换效果很快我们肉眼是很难看见的)*/
            if(i==size){
                console.log("qq");
                $("#show-area ul").css({left:0});
                i=1;
            }

            $("#show-area ul").stop().animate({left: -i * imgWidth}, 1000);

            //设置下面指示器的颜色索引
            if(i == size-1){
                $("#indicator div").eq(0).addClass("onclick").siblings().removeClass("onclick");

            }else{
                $("#indicator div").eq(i).addClass("onclick").siblings().removeClass("onclick");
            }
        }

    });
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/yonfeng/p/12004123.html

时间: 2024-11-05 02:41:44

淘宝滑动轮播案例的相关文章

以太坊去中心化淘宝智能合约案例

篇文章我们来介绍一个简易的区块链电商系统的核心功能,10多年来,我们习惯了淘宝的电商模式,淘宝为电商在中国普及做出了突出贡献,值得肯定,也完成了历史使命. 淘宝模式的核心是什么? 免费是一方面,我认为最核心的是解决了网上交易买卖家的信任问题,通过支付宝作为资金中介,使买卖家可以放心的交易. 但是,淘宝迅速崛起为巨头后,交易环节出现了很多不好的现象:刷信誉.巨大经济利益带来的内部腐败等等.因此,淘宝虽然成为了电商巨头,但是却没有真正的解决电商产业的信誉问题.这个问题其实不是淘宝特有,是一种社会现象

MySQL的InnoDB表如何设计主键索引-转自淘宝MySQL经典案例

创建a表 id主键 CREATE TABLE `a` (`id` bigint(20) NOT NULL AUTO_INCREMENT ,`message_id` int(11) NOT NULL,`user_id` int(11) NOT NULL,`msg` varchar(1024) DEFAULT NULL,`gmt_create` datetime NOT NULL,PRIMARY KEY (`id`),KEY `user_id` (`user_id`,`message_id`),KE

淘宝评论区案例

//css <style type="text/css"> .znsArea { width: 755px;overflow: hidden;margin: 0 auto;font-family: "Microsoft YaHei"; } .takeComment { width: 713px; display: block; overflow: hidden; border: #a5bcff solid 1px; background: #f3f8fd

【krpano】淘宝buy+案例

这是一个类似淘宝buy+的案例,是基于krpano全景开发工具二次开发的全景视频.WebVR.360°环物.全景视频热点添加于一身的综合性案例.现在将案例上传网站供krpano技术人员和爱好者大家共同研究学习. 淘宝buy+案例链接地址链接:http://pan.baidu.com/s/1qYGt2Eg 密码:vj6z 案例截图: 本博文发表于:http://www.krpano.tech/archives/210 发布者:Mr.huh123 转载请注明出处,谢谢!

JQuery仿最新淘宝网首页带箭头幻灯片,JQuery轮播图

JQuery代码 <script type="text/javascript"> $(function() { var $banner = $('.banner'); var $banner_ul = $('.banner-img'); var $btn = $('.banner-btn'); var $btn_a = $btn.find('a') var v_width = $banner.width(); var page = 1; var timer = null;

网页设计Dreamweaver网页制作 商业网站建设案例课程 ASP.NET基础实例教程 淘宝开店教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

网页设计 Dreamweaver网页制作 商业网站建设案例课程 ASP.NET基础实例教程 淘宝开店教程 更多&gt;

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

js实现淘宝首页图片轮播效果

原文:http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=10585 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>淘宝首页图片轮播效果</title> <style> <!-- * {margin: 0;padding:0;} body

淘宝店铺装修如何实现全屏轮播

淘宝店装移植有一个神秘的模块,那就是—全屏轮播,这个神奇的模块,能提高店铺的档次,给与顾客视觉冲击,提升顾客印象但是由于淘宝常规用户不支持CSS(用来定义网页样貌的能力),所以我们无法用简单的div+CSS来做出属于自己的全屏轮播强大的装修师们几经研究,终于摆脱了CSS的束绷,结合淘宝的轮播组件,单靠DIV代码就实现了全屏轮播(有缺点) 那么.不要CSS,我们怎么实现全屏轮播呢? 首先我要告诉大家全屏轮播的核心CSS属性—position:absolute 第一节:核心属性 position :