博客列表 >07-18作业:JQ改写图片轮播效果

07-18作业:JQ改写图片轮播效果

Yx的博客
Yx的博客原创
2019年07月21日 23:39:31655浏览

实例

<!DOCTYPE html>
<html>
<head>
    <title>jquery改写图片轮播</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <style>
        #lunbo{width: 600px;height: 300px;margin: 0 auto;overflow: hidden;}
        #pics{width: 600px;height: 300px;cursor: pointer;position: relative;}
        ul li{width: 600px;height: 300px;list-style: none;position: absolute;top: 0;left: 0;display: none;}
        img{width: 600px;height: 300px;}
    </style>
</head>
<body>
<div id="lunbo">
    <ul id="pics">
        <li style="display: inline;"><img src="https://img1.360buyimg.com/da/s590x470_jfs/t1/79425/15/4421/98558/5d283017E29d9a8fb/723bfa83c3f73613.jpg!q90!cc_590x470.webp"></li>
        <li><img src="https://img1.360buyimg.com/pop/s590x470_jfs/t1/45206/26/5099/84405/5d2c41f8E490ac899/c03df426cd52bfe9.jpg!q90!cc_590x470.webp"></li>
        <li><img src="https://imgcps.jd.com/ling/7307139/6LaF5biC54m56Imy57K-6YCJ/54iG5ZOB5L2O6IezOS455YWD/t-5bd95d4f8e34e21f3ff67e71/15a71c63.jpg"></li>
    </ul>
</div>
<script type="text/javascript">
    $(document).ready(function(){
        var oLi = $("li");
        var liWidth = oLi.eq(0).width();
        var liHeight = oLi.eq(0).height();
        //每隔3秒进行轮播
        var timer = setInterval(change,3000);
        //鼠标放置在图片上时停止轮播,移开时继续轮播
        $("div").mouseover ( function(){
            clearInterval(timer);
        })
        $("div").mouseout (function(){
            timer = setInterval(change,3000);
        })
        //轮播函数
        var prevIndex = 0,nextIndex = 1;
        function change(){
            if (prevIndex == oLi.length-1 ) {//若当前图片是最后一张图片,下一张出现首张图片
                nextIndex = 0;
            }
            var n = Math.floor(Math.random()*3);
            if (n == 0) {
                fade(prevIndex,nextIndex);
            }
            else if (n== 2) {
                slide(prevIndex,nextIndex);
            }
            else{
                grap(prevIndex,nextIndex);
            }
            prevIndex = nextIndex;
            nextIndex ++;
        }
        //淡入淡出效果,
        function fade(prevIndex,nextIndex){
            //传入当前显示图片以及下一张图片的索引
            oLi.eq(prevIndex).fadeOut(1000);
            oLi.eq(nextIndex).fadeIn(1000);
        }
        //向左右滑动效果
        function slide(prevIndex,nextIndex){
            var rand = Math.floor(Math.random()*2);
            oLi.eq(nextIndex).show();
            oLi.eq(nextIndex).css("z-index","-1");
            if (rand) {
                //向左滑动
                oLi.eq(prevIndex).animate({left: -liWidth},1000,fun);
            }
            else{
                oLi.eq(prevIndex).animate({left: liWidth},1000,fun);
            }
            function fun(){
                oLi.eq(prevIndex).css({"left":"0","display":"none"});
                oLi.eq(nextIndex).css("z-index","1");
            }
        }
        //收缩效果
        function grap(prevIndex,nextIndex){
            var rand = Math.floor(Math.random()*4);
            oLi.eq(nextIndex).show();
            oLi.eq(nextIndex).css("z-index","-1");
            switch (rand){
                case 0://向左上角滑动
                    oLi.eq(prevIndex).animate({left: -liWidth,top: -liHeight},1000,function(){
                        oLi.eq(prevIndex).css({"left":"0","top": "0","display":"none"});
                        oLi.eq(nextIndex).css("z-index","1");
                    });break;
                case 1://向右上角滑动
                    oLi.eq(prevIndex).animate({left: liWidth,top: -liHeight},1000,function(){
                        oLi.eq(prevIndex).css({"left":'0',"top":"0","display":"none"});
                        oLi.eq(nextIndex).css("z-index","1");
                    });break;
                case 2://向右下角滑动
                    oLi.eq(prevIndex).animate({left: liWidth,top: liHeight},1000,function(){
                        oLi.eq(prevIndex).css({"left":'0',"top":"0","display":"none"});
                        oLi.eq(nextIndex).css("z-index","1");
                    });break;
                case 3://向左下角滑动
                    oLi.eq(prevIndex).animate({left: -liWidth,top: liHeight},1000,function(){
                        oLi.eq(prevIndex).css({"left":'0',"top":"0","display":"none"});
                        oLi.eq(nextIndex).css("z-index","1");
                    });break;
                default:break;
            }
        }
    });
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议