图片旋转切换效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片旋转切换效果代码</title>
</head>
<style>
*{margin:0;padding:0;}
ul,li{list-style:none}
img{border:0;}

#d_tab29{
	position:relative; 
	height:400px;
	background:url('img/bg3.jpg') no-repeat center 0;
	text-align:left;
}
#d_tab29 .d_img{
	position:relative;
	margin:0 auto;
	width:1000px;
	height:100%
} 
#d_tab29 .d_img li{
	position:absolute;
	z-index:0;
	background:#000;
	text-align: center;
	overflow: hidden;
	display:none;
}
#d_tab29 .d_img li img{
	max-width:100%;
	max-height:100%;
    vertical-align: middle;
}
 
#d_tab29 .d_img li.d_pos1{
	display:list-item;width:400px;height:240px;line-height:236px;
	left:0%;	top:60px;	z-index:1;	
}
#d_tab29 .d_img li.d_pos2{
	display:list-item;width:450px;height:270px;line-height:266px;
	left:10%;top:40px;z-index:2;
}
#d_tab29 .d_img li.d_pos3{
	display:list-item;width:500px;height:300px;line-height:296px;
	left:25%;top:20px;z-index:3;
}
#d_tab29 .d_img li.d_pos4{
	display:list-item;width:450px;height:270px;line-height:266px;
	right:10%;top:40px;z-index:2;
}
#d_tab29 .d_img li.d_pos5{
	display:list-item;width:400px;height:240px;line-height:236px;
	right:0%;top:60px;z-index:1;
}

#d_tab29 .d_menu{position:absolute;bottom:20px;width:100%;text-align:center}
#d_tab29 .d_menu li{display:inline-block;zoom:1;*display:inline;background:url('img/btn.png') no-repeat 0 0;width:12px;height:12px;cursor:pointer;margin-right:3px}
#d_tab29 .d_menu li.d_select{background:url('img/btn.png') no-repeat 0 -18px}

#d_tab29 .d_next{position:absolute;left:50%;margin-left:475px;top:140px;z-index:10;cursor:pointer}
#d_tab29 .d_prev{position:absolute;left:50%;margin-left:-525px;top:140px;z-index:10;cursor:pointer}
</style>

<body style="min-width:1200px">
 

<div id="d_tab29">
		<ul class="d_img">			
			 
			<li class="d_pos1"><img src="http://s0.ifengimg.com/2017/05/26/8d2f31f1f405bc6f3ca90b1b6a30cb04.jpg" alt=""/></li>
			<li class="d_pos2"><img src="http://s0.ifengimg.com/2016/08/29/sup1_6252069a.jpg" alt=""/></li>
			<li class="d_pos3"><img src="http://s0.ifengimg.com/2016/09/18/294956800488973000_6a05b55e.jpg" alt=""/></li>
			<li class="d_pos4"><img src="http://s0.ifengimg.com/2016/09/18/22547823172663723_8160287a.jpg" alt=""/></li>
			<li class="d_pos5"><img src="http://s0.ifengimg.com/2017/05/25/0186b155315bb24686931bca84607c6b.jpg" alt=""/></li>
			<li><img src="http://s1.ifengimg.com/2016/12/05/1e4fce2fd0988a77c2edd48e08b8f2fa.jpg"></li>
			<li><img src="https://c1.ifengimg.com/mappa/2016/11/24/f2dec0d56eed1e61e7ccff1c750d2392.jpg"></li>
			<li><img src="http://s0.ifengimg.com/2017/05/26/dbcfb64bafa9990c1f3aaba9212103c6.jpg"></li>
		</ul>	
		<ul class="d_menu">
			 
		</ul>
		<p class="d_prev"><img src="img/prev.png" alt=""></p>
		<p class="d_next"><img src="img/next.png" alt=""></p>
</div>

<script src="http://s0.ifengimg.com/static/js/jquery-1.7.2.min_c4de8813.js"></script>
<script>
(function($) {
    $.fn.DB_rotateRollingBanner = function(options) {
        var defaults = {
            key: "",
            moveSpeed: 200,
            autoRollingTime: 5000
        };
        $.extend(defaults, options);
        return this.each(function() {
            var me = $(this);
            var ul = me.find(".d_img");
            var lis = ul.find(">li");
            var menu = me.find(".d_menu");
            var menuLis = menu.find(">li");
            var prev = me.find(".d_prev");
            var next = me.find(".d_next");
            var lisLength = lis.length;
            var num = 5;            // 显示的li数量;
            var NorP = "next";     // 用来判断 上一张 下一张;
            var timer;              // 定时器;
            var btnTimer;           // 点击 menu li按钮的 定时器;
            var visibleLi = [];     // 存贮显示li的css属性值;
            var allLi = [];         // 存贮所有的li;
            var isFinish = 1;       // 1 图片切换已经执行完  0 图片切换还没有执行完
            var clickIndex = 0;     // 点击的 menu li按钮 索引
            var currentIndex = 0;   // 正显示的 menu li的索引
            var sum = 0;            // 点击 menu li按钮后 要执行 “图片切换” 的次数
            var count = 0;          // 点击 menu li按钮后 记录“图片切换” 的次数
            w();
            function w() {
                init();      //存贮所有的li 并设置li的属性;初始化menu li按钮;
                bind();      //事件绑定
                rolling();   //定时任务
            }
            function init() {
                menu.html("");
                for (var i = 0; i < lisLength; i++) {   //遍历li
                    var liN = lis.eq(i);
                    if (i < num) {
                        visibleLi[i] = {
                            left: liN.position().left,
                            top: liN.position().top,
                            zIndex: liN.css("z-index"),
                            width: liN.width(),
                            height: liN.height(),
                            lineHeight:liN.css("line-height")
                        };
                        liN.css("left", visibleLi[i].left);
                    } else {
                        liN.css("left", visibleLi[num - 1].left);
                    }
                    allLi.push(liN);
                    menu.append("<li></li>");
                }
                menuLis = menu.find(">li");
                menuLis.eq(0).addClass("d_select");
            }
            function bind() {
                me.bind("mouseenter",
                function() {
                    clearInterval(timer);
                }).bind("mouseleave",
                function() {
                    rolling();
                });
                menuLis.bind("click",
                function() {
                    if (isFinish && currentIndex != $(this).index()) {
                        clickIndex = $(this).index();        //本次点击的 menu li的索引
                        isFinish = 0;
                        sum = Math.abs(clickIndex - currentIndex);        //点击 menu li按钮后 要执行 “图片切换” 的次数
                        if (clickIndex > currentIndex) {
                            NorP = "next";
                        } else {
                            NorP = "prev";
                        }
                        if (sum > Math.ceil(lisLength / 2)) { //如果一次要执行 lisLength/2 次以上  就换个方向  执行的次数就少些
                            sum = lisLength - sum;
                            if (NorP == "next") {
                                NorP = "prev";
                            } else {
                                NorP = "next";
                            }
                        }
                        count = 0;
                        change();
                        if (sum > 1) {
                            btnTimer = setInterval(function() {
                                if (isFinish) {
                                    change();
                                    isFinish = 0;
                                    if (count >= sum) {
                                        clearInterval(btnTimer);
                                    }
                                }
                            },
                            50)
                        }
                    }
                });
                next.bind("click",
                function() {
                    if (isFinish) {
                        NorP = "next";
                        isFinish = 0;
                        if (clickIndex == lisLength - 1) {
                            clickIndex = 0;
                        } else {
                            clickIndex++;
                        }
                        change();
                    }
                });
                prev.bind("click",
                function() {
                    if (isFinish) {
                        NorP = "prev";
                        isFinish = 0;
                        if (clickIndex == 0) {
                            clickIndex = lisLength - 1;
                        } else {
                            clickIndex--;
                        }
                        change();
                    }
                })
            }
            function change() {
                if (NorP == "next") {              // 下一张
                    for (i = 0; i < num; i++) {
                        var D = visibleLi[i - 1];
                        if (i == 0) {
                            allLi[i].fadeOut(defaults.moveSpeed);
                        } else {
                            allLi[i].css("z-index", D.zIndex).animate({
                                left: D.left,
                                top: D.top,
                                width: D.width,
                                height: D.height,
                                lineHeight: D.lineHeight
                            },
                            defaults.moveSpeed);
                        }
                    }
                    var D = visibleLi[num - 1];
                    if (allLi.length != num) {
                        allLi[num].css({
                            left: D.left,
                            top: D.top,
                            width: D.width,
                            height: D.height,
                            "z-index": D.zIndex,
                            lineHeight: D.lineHeight
                        }).fadeIn(defaults.moveSpeed,
                        function() {
                            isFinish = 1;
                        });
                    } else {
                        allLi[0].stop().css({
                            left: D.left,
                            top: D.top,
                            width: D.width,
                            height: D.height,
                            "z-index": D.zIndex,
                            lineHeight: D.lineHeight
                        }).fadeIn(defaults.moveSpeed,
                        function() {
                            isFinish = 1;
                        });
                    }
                    allLi.push(allLi.shift());
                } else {                 // 上一张
                    for (i = 0; i < num; i++) {
                        var D = visibleLi[i + 1];
                        if (i == num - 1) {
                            allLi[i].css("z-index", 0).fadeOut(defaults.moveSpeed);
                        } else {
                            allLi[i].css("z-index", D.zIndex).animate({
                                left: D.left,
                                top: D.top,
                                height: D.height,
                                width: D.width
                            },
                            defaults.moveSpeed);
                        }
                    }
                    var D = visibleLi[0];
                    allLi[allLi.length - 1].stop().css({
                        left: D.left,
                        top: D.top,
                        width: D.width,
                        height: D.height,
                        "z-index": D.zIndex,
                        lineHeight: D.lineHeight
                    }).fadeIn(defaults.moveSpeed,
                    function() {
                        isFinish = 1;
                    });
                    allLi.unshift(allLi.pop());
                }
                menuLis.removeClass("d_select");
                menuLis.eq(clickIndex).addClass("d_select");
                currentIndex = clickIndex;
                count++;
            }
            function rolling() {
                timer = setInterval(rotate, defaults.autoRollingTime);
            }
            function rotate() {
                next.click();
            }
        })
    }
})(jQuery);

	$('#d_tab29').DB_rotateRollingBanner({
		key:"c37080",            
		moveSpeed:200,           
		autoRollingTime:50000
	})
</script>

</body>
</html>

  

转载于:https://www.cnblogs.com/mbyund/p/6909382.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值