2011-03-04 162 views
4

我有一個頁面,我將有多個圖片滑塊(如50個滑塊+每個5-10張圖片)。不幸的是,由於這個大量的滑塊,頁面加載速度真的很慢: - (帶AJAX功能的jQuery循環插件

到目前爲止,我一直在使用着名的jQuery循環插件Malsup。但是,這缺乏AJAX功能,因爲圖片需要加載之前發射的循環功能。

我半經驗豐富,但缺乏時間寫我自己的libary相適應我的需要。

因此這個問題,沒有任何人有一個jQuery的知識滑動(阿賈克斯加載)圖片插件?我一直在網上搜索,但是太多的數據壓倒了真實的結果。

提前致謝!

回答

6

這是一種破解,但可能能夠爲你工作,滑塊插件支持前後功能,我們可以利用它來推遲爲您加載的圖像。

給出以下標記:

<div id="s1" class="pics"> 
    <img src="http://cloud.github.com/downloads/malsup/cycle/beach1.jpg" width="200" height="200" /> 
    <img src="http://cloud.github.com/downloads/malsup/cycle/beach2.jpg" width="200" height="200" /> 
    <img asrc="http://cloud.github.com/downloads/malsup/cycle/beach3.jpg" width="200" height="200" /> 
    <img asrc="http://cloud.github.com/downloads/malsup/cycle/beach4.jpg" width="200" height="200" /> 
    <img asrc="http://cloud.github.com/downloads/malsup/cycle/beach5.jpg" width="200" height="200" /> 
    <img asrc="http://cloud.github.com/downloads/malsup/cycle/beach6.jpg" width="200" height="200" /> 
    <img asrc="http://cloud.github.com/downloads/malsup/cycle/beach7.jpg" width="200" height="200" /> 
    <img asrc="http://cloud.github.com/downloads/malsup/cycle/beach8.jpg" width="200" height="200" /> 
</div> 

公告前兩個具有有效的src ATTR,但其餘的都是未通過瀏覽器加載ASRC。

現在使用前後功能,我們可以利用它並將asrc切換到一個真正的src,這將導致瀏覽器查詢圖像。

$('#s1').cycle({ 
    fx: 'shuffle', 
    speed: 'fast', 
    timeout: 0, 
    next: '#next2', 
    prev: '#prev2', 
    before: function(currSlideElement, nextSlideElement, options, forwardFlag) { 
     if ($(nextSlideElement).attr("asrc")) { 
      $(nextSlideElement).attr("src", $(nextSlideElement).attr("asrc")); 
     } 
    }, 
    after: function(currSlideElement, nextSlideElement, options, forwardFlag) { 
     if ($(nextSlideElement).attr("asrc")) { 
      $(nextSlideElement).attr("src", $(nextSlideElement).attr("asrc")); 
     } 
    } 
}); 

這個例子在jsfiddle

+0

嗨,馬克,謝謝你的例子。雖然我擔心這並不會削減它。我正在尋找一種解決方案,當用戶選擇單擊prev或next時,我可以加載下一張圖片。 – Kristian 2011-03-04 10:32:31

+0

@kris,參見更新,我更深入地研究了循環插件的api,並使用'before'和'after'之後,您可能能夠完成您想要的任務。這應該適用於超時和next/prev。 – 2011-03-04 16:27:41

+0

馬克,我不能夠感謝你。非常感謝 - 我自己沒有想到這個解決方案..我感謝你的幫助! – Kristian 2011-03-04 22:06:11