2012-10-31 551 views
0

我有一個問題試圖讓這個代碼工作,由於某種原因,我似乎無法找到什麼是錯的。如果有人知道我能做些什麼來讓它顯示幻燈片約3秒,然後淡出並顯示一個新的,最後回到第一個和循環,這將是偉大的!下面我發佈了我現在的代碼。我真的需要一些幫助,因爲這個項目將在兩週內完成,我還有很多工作要做,謝謝!Jquery內容滑塊問題

<section class="clearfix"> 
    <div id="snapshots"> 
     <article> 
      <img src="http://static.tumblr.com/dbek3sy/4mem1qr1m/themes_image.png"> 
     </article> 
     <article> 
      <img src="http://static.tumblr.com/dbek3sy/q8Em247a0/slidehome_4.png"> 
     </article> 
     <article> 
      <img src="http://static.tumblr.com/dbek3sy/dsLm2trr5/slidehome_5.png"> 
     </article> 
    </div> 
    </section>​ 


    /* joey content slider function */ 
    window.onload = function() { 

    var time = 1500; 
    var content = $('#snapshots'); 
    var cont = 1; 


    // MARK THE ARTICLES AND CONTENT 
    $(function article(){ 

    // how many slides 
    // an = article number 
    var an = content.find("article").length; 

    // define the amount of slides in a class name 
    // example: <div class="slides_6"> 
    content.addClass("slides_"+an); 

    // slide switcher 
    content.append('<div id="switch"></div>'); 

    }; 




// FIND AND MARK SLIDES 
$(function slides() { 
    numb = 1; 
    content.find("article").each(function(){ 
     $(this).addClass("slide_"+numb); 
     numb++; 
     $(this).hide(); 
    }); 

    //setTimeout("", 4000); 
} 


function slider(content, time){ 
    content.fadeOut(time, function() { 

    // plus 1 slide 
    var conta = cont+1; 

    $("article.slide_"+conta).animate({ 
     "display": "block" 
    },1500); 

    $("article.slide_"+cont).animate({ 
     "display": "none" 
    },1500); 

    setTimeout("doitdude()", 4000); 

    }); 

} 


// RESET SLIDE 
function reset(content, time) { 

    // fade out content 
    content.fadeOut(time, function(){ 

    // while fading out 

    // show first slide 
    $("article.slide_1").animate({ 
     "display": "block" 
    },1500); 
    // hide the last one 
    $("article.slide_"+conta).animate({ 
     "display": "none" 
    },1500); 

    // end transition 
    }); 


    setTimeout("doitdude()", 4000); 
} 


function doitdude() { 
    if(cont < an) { 
     slider(content, 1000); 
     cont++; 
    } 
    else{ 
     var conta = cont; 
     var cont = 1; 
     // reset code here: 
     reset() 
    } 


};​ 


    #snapshots { overflow: hidden; height: 410px; width: auto; } 
    #snapshots img { }​ 

注:,因爲我試圖讓我自己,我不能使用插件。謝謝!

又一個的jsfiddle這裏:

http://jsfiddle.net/UYE4E/

+0

我不知道是怎麼回事。檢查你的瀏覽器的控制檯,很多地方都有語法錯誤。如果你修復一個,你會得到另一個。我不確定你使用正確的語法來實現你想要做的事情...... – Ian

回答

1

你的函數聲明不正確。可能您正在嘗試執行以下操作:

(function($) { 
    function foo(){ 
     //foo body 
    }; 
}(jQuery)); 

無論如何,請閱讀JS範圍和關閉。

Article 1Article 2