/* * create by zhangxiaojian *调用方法 $(ID/class).slide({ * autoplay:true/false, * autoTime:4000 //自己设定 *}); * * */ (function ($) { $.fn.slide = function (options) { var dft = { zs_lunLock: true, autoplay: true, autoTime: 4000, curentImg: 0, height: 0, clickLunTime: 500 }; var ops = $.extend(dft, options); var zs_item = $(this).find(".slideItem"); var zs_itemWidth = $(this).find(".slideItem").width(); var t_time; var isImgLoad = false; var $this = this; var zs_dotListHtml = ""; var zs_showWord = "

"; $(this).find(".dotList").html(zs_dotListHtml); $(this).find(".arti-content").html(zs_showWord); $(this).find('.dotList ul li').first().addClass("active"); $($this).find(".arti-content .showLunWord").html($($this).find(zs_item[0]).find(".slidedetail").html()); zs_dots = $(this).find('.dot'); } } var zs_next = function () { lunbo(); if (ops.zs_lunLock) { ops.zs_lunLock = false; var Move_left = 0; var intemcount = zs_item.length - 1; $($this).find(".itemIndex" + intemcount).css("left", -zs_itemWidth); for (var i = 0; i < zs_item.length; i++) { Move_left = parseFloat($($this).find(".itemIndex" + i).css("left")) + parseFloat($($this).find(".slideItem").width()); $($this).find(".itemIndex" + i).animate({left: Move_left}, 500); } for (var j = 0; j < zs_item.length; j++) { var className = $($this).find(zs_item[j]).attr("class") + ""; var count = className.indexOf("itemIndex"); var index = className.substring(count, className.length); var pp = index.indexOf(" "); if (pp > 0) { index = index.substring(9, pp); } else { index = index.substring(9, index.length); } $($this).find(zs_item[j]).removeClass("itemIndex" + index); var next_index = parseInt(index) + 1; if (next_index == zs_item.length) { next_index = 0; } //控制底部圆点 $($this).find(zs_dots[j]).removeClass("active"); if (next_index == 0) { $($this).find(zs_dots[j]).addClass("active"); $($this).find(".arti-content .showLunWord").html($($this).find(zs_item[j]).find(".slidedetail").html()); } $($this).find(zs_item[j]).addClass("itemIndex" + next_index); } setTimeout(function () { ops.zs_lunLock = true; }, 500); } }; var zs_pre = function () { lunbo(); if (ops.zs_lunLock) { ops.zs_lunLock = false; var Move_left = 0; for (var i = 0; i < zs_item.length; i++) { Move_left = parseFloat($($this).find(".itemIndex" + i).css("left")) - parseFloat($($this).find(".slideItem").width()); $($this).find(" .itemIndex" + i).animate({left: Move_left}, 500); } for (var j = 0; j < zs_item.length; j++) { var className = $($this).find(zs_item[j]).attr("class") + ""; var count = className.indexOf("itemIndex"); var index = className.substring(count, className.length); var pp = index.indexOf(" "); if (pp > 0) { index = index.substring(9, pp); } else { index = index.substring(9, index.length); } $($this).find(zs_item[j]).removeClass("itemIndex" + index); var next_index = parseInt(index) - 1; if (next_index == -1) { next_index = zs_item.length - 1; } //控制底部圆点 $($this).find(zs_dots[j]).removeClass("active"); if (next_index == 0) { $($this).find(zs_dots[j]).addClass("active"); $($this).find(".arti-content .showLunWord").html($($this).find(zs_item[j]).find(".slidedetail").html()); } $($this).find(zs_item[j]).addClass("itemIndex" + next_index); } setTimeout(function () { var des = parseFloat(zs_itemWidth) * (zs_item.length - 1); $($this).find(".itemIndex" + (zs_item.length - 1)).animate({left: des}, 0.01); ops.zs_lunLock = true; }, 500); } } $(this).find(".Next").click(function () { zs_next(); }); $(this).find(".Previous").click(function () { zs_pre(); }); $(this).find(".dot").click(function () { lunbo(); var dotIntex = $(this).attr("dotIndex"); var itemIndex = ""; for (var i = 0; i < zs_item.length; i++) { var tagClass = $($this).find(zs_item[i]).attr("class") + ""; if (tagClass.indexOf("itemIndex0") > 0) { itemIndex = i; } } var Dvalue = dotIntex - itemIndex; if (Dvalue > 0) { zs_prevGo(Dvalue); } else { zs_nextGo(-Dvalue); } }); var zs_prevGo = function (Dvalue) { if (ops.zs_lunLock) { ops.zs_lunLock = false; var Move_left = 0; for (var i = 0; i < zs_item.length; i++) { Move_left = parseFloat($($this).find(".itemIndex" + i).css("left")) - Dvalue * parseFloat($($this).find(".slideItem").width()); $($this).find(" .itemIndex" + i).animate({left: Move_left}, ops.clickLunTime); } for (var j = 0; j < zs_item.length; j++) { var className = $($this).find(zs_item[j]).attr("class") + ""; var count = className.indexOf("itemIndex"); var index = className.substring(count, className.length); var pp = index.indexOf(" "); if (pp > 0) { index = index.substring(9, pp); } else { index = index.substring(9, index.length); } $($this).find(zs_item[j]).removeClass("itemIndex" + index); var next_index = parseInt(index) - Dvalue; if (next_index < 0) { next_index = zs_item.length + next_index; } //控制底部圆点 $($this).find(zs_dots[j]).removeClass("active"); if (next_index == 0) { $($this).find(zs_dots[j]).addClass("active"); $($this).find(".arti-content .showLunWord").html($($this).find(zs_item[j]).find(".slidedetail").html()); } $($this).find(zs_item[j]).addClass("itemIndex" + next_index); } setTimeout(function () { for (var m = 0; m < zs_item.length; m++) { var des = parseFloat(zs_itemWidth) * (zs_item.length - 1 - m); $($this).find(".itemIndex" + (zs_item.length - 1 - m)).animate({left: des}, 0.01); } ops.zs_lunLock = true; }, 500); } } var zs_nextGo = function (Dvalue) { if (ops.zs_lunLock) { ops.zs_lunLock = false; var Move_left = 0; var y = zs_item.length - 1; for (var x = 0; x < Dvalue; x++) { $($this).find(".itemIndex" + y).css("left", -zs_itemWidth - x * zs_itemWidth); y--; } for (var i = 0; i < zs_item.length; i++) { Move_left = parseFloat($($this).find(".itemIndex" + i).css("left")) + Dvalue * parseFloat($($this).find(".slideItem").width()); $($this).find(" .itemIndex" + i).animate({left: Move_left}, ops.clickLunTime); } for (var j = 0; j < zs_item.length; j++) { var className = $($this).find(zs_item[j]).attr("class") + ""; var count = className.indexOf("itemIndex"); var index = className.substring(count, className.length); var pp = index.indexOf(" "); if (pp > 0) { index = index.substring(9, pp); } else { index = index.substring(9, index.length); } $($this).find(zs_item[j]).removeClass("itemIndex" + index); var next_index = parseInt(index) + Dvalue; if (next_index >= zs_item.length) { next_index = next_index - zs_item.length; } //控制底部圆点 $($this).find(zs_dots[j]).removeClass("active"); if (next_index == 0) { $($this).find(zs_dots[j]).addClass("active"); $($this).find(".arti-content .showLunWord").html($($this).find(zs_item[j]).find(".slidedetail").html()); } $($this).find(zs_item[j]).addClass("itemIndex" + next_index); } setTimeout(function () { ops.zs_lunLock = true; }, 500); } }; $(this).bind('touchstart', function (e) { startX = e.originalEvent.changedTouches[0].pageX, startY = e.originalEvent.changedTouches[0].pageY; }); $(this).bind('touchend', function (e) { endX = e.originalEvent.changedTouches[0].pageX, endY = e.originalEvent.changedTouches[0].pageY; //获取滑动距离 distanceX = endX - startX; distanceY = endY - startY; //判断滑动方向 if (Math.abs(distanceX) > Math.abs(distanceY) && distanceX > 0) { zs_next(); } else if (Math.abs(distanceX) > Math.abs(distanceY) && distanceX < 0) { zs_pre(); } }); var zs_lunInterval = setInterval(function () { if (ops.autoplay) { zs_pre(); } }, ops.autoTime); if (!ops.autoplay) { clearInterval(zs_lunInterval); } $(".slideItem").hover(function () { ops.autoplay=false; },function () { ops.autoplay=true; }) }; })(jQuery);