幻燈片

使用的時候先用Jquery在引它

mousewheel(function(event,data)) 向下是-1 向上+1

(window).height() 獲取可視區(qū)

null 空

setTimeout 定時器

clearTimeout() 清理定時器 做到函數(shù)節(jié)流

輪播圖(PPT)

首尾連續(xù)滑動(需要用js)

li都是通過絕對定位的

用索引判斷大小

除了第一個li都定位到右側(cè)

動態(tài)創(chuàng)建小圓點(用代碼動態(tài)生成)each循環(huán)

左右按鈕是兩個div 一個自增一個自減

幻燈片布局

 <div class="bg3">
    <div class="slide fl">
        <ul class="slide_pics">
            <li><a href="#"><img src="image/main1.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main2.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main3.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main4_1.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main5.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main6.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main7.jpg" alt="幻燈片"/></a></li>
            <li><a href="#"><img src="image/main8.jpg" alt="幻燈片"/></a></li>
        </ul>
    <div class="prev"></div>
    <div class="next"></div>

幻燈片

$(function(){
var $li = $(".slide_pics li");
var len = $li.length;//一共有幾張圖片
var $prev = $('.prev');
var $next = $('.next');
var nextli = 0;//將要運動過來的li
var nowli = 0;//當前要離開的li
var timer = null;//定時器

//除第一個li,都定位到右側(cè)
$li.not(':first').css({left:1156});

//動態(tài)創(chuàng)建小圓點
$li.each(function(index){
//創(chuàng)建li
var $sli = $('<li></li>');
//第一個li添加選中樣式
if(index == 0){
    $sli.addClass('active');
}
//將li添加到ul中
$sli.appendTo('.points');
})

$points = $('.points li');
// alert($points.length);

$points.click(function() {
nextli = $(this).index();//點擊的小圓點的索引,就是馬上要進來那張的索引
//當點擊當前張的小圓點時,不做任何操作
if(nextli == nowli){
    return;
}
move();
$(this).addClass('active').siblings().removeClass('active');
});

$prev.click(function() {
nextli--;
move();
//改變圓點樣式
$points.eq(nextli).addClass('active').siblings().removeClass('active');
});

$next.click(function() {
nextli++;
move();
//改變圓點樣式
$points.eq(nextli).addClass('active').siblings().removeClass('active');
});

//進入子元素也清除定時器
$('.slide').mouseenter(function() {
clearInterval(timer);
});
$('.slide').mouseleave(function() {
timer = setInterval(autoplay, 3000);
});

//定時器循環(huán)自動播放
timer = setInterval(autoplay, 3000);

//自動播放的邏輯跟點擊下一張是相同的
function autoplay(){
nextli++;
move();
//改變圓點樣式
$points.eq(nextli).addClass('active').siblings().removeClass('active');
}

function move(){
//走到第一張,再繼續(xù)走時
if(nextli < 0){
    nextli = len - 1;//將要來的是最后一張
    nowli = 0;//要離開的是第一張
    $li.eq(nextli).css({left:-1156});//把最后一張定位到左側(cè),準備進入
    $li.eq(nowli).stop().animate({left:1156});//離開的第一張走到右側(cè)
    $li.eq(nextli).stop().animate({left:0});//進入的最后一張走進來
    nowli = nextli;//要離開的賦值為剛進入的最后一張
    return;//下邊代碼是正常情況的,極端情況下不執(zhí)行,直接返回
}

//走到最后一張,再繼續(xù)走時
if(nextli > len - 1){
    nextli = 0;//將要來的是第一張
    nowli = len - 1;//要離開的是最后一張
    $li.eq(nextli).css({left:1156});//將要進來的第一張定位到右側(cè),準備進入
    $li.eq(nowli).stop().animate({left:-1156});//離開的最后一張走到左側(cè)
    $li.eq(nextli).stop().animate({left:0});//進入的第一張走進來
    nowli = nextli;//要離開的賦值為剛進入的第一張
    return;
}

if(nextli > nowli){//從右向左進入,例如第2張進入,第1張出去
    $li.eq(nextli).css({left:1156});//把馬上要進來的那張,瞬間放在右側(cè)
    $li.eq(nowli).stop().animate({left:-1156});//當前這張要離開,運動到左側(cè)
}else{
    $li.eq(nextli).css({left:-1156});//把馬上要進來的那張,瞬間放在左側(cè)
    $li.eq(nowli).stop().animate({left:1156});//當前這張要離開,運動到右側(cè)
}
$li.eq(nextli).stop().animate({left:0});//馬上進來的這張走到可視區(qū)(即0的位置)
nowli = nextli;
}
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容