2012-10-01 133 views
1

我想用幾個分類鏈接過濾投資組合大拇指。流沙太麻煩了,我寧願寫我自己的代碼。我對jQuery相當陌生,所以我知道我會碰到問題,並可能過多的代碼。 :)jQuery淡出和淡入問題

我繼續創建的jsfiddle顯示問題:

http://jsfiddle.net/zHWgG/1/

看看它是如何閃爍?預期的效果將是我點擊過濾器,所有可見淡出完全,然後只對應拇指淡入它的工作和有效的jQuery,但我怎麼能:

  1. 擺脫閃爍實現

  2. 簡化/創建一個精簡碼(較少字節)

謝謝!

+0

我沒有在該演示中看到任何閃爍的東西... – elclanrs

+0

我所看到的是雙動畫,它似乎,不確定。被點擊的類別淡出然後淡入淡出?應該看起來每個人都一樣,希望... –

回答

2

使用動畫結束回調。

$('.item').fadeOut(500, function() { 
    $('.item').fadeIn(500); 
}); 

編輯: 的閃爍的發生是因爲不可見.portfolio-itens被fadding出–他們成爲影響激活可見。嘗試使用此:

$('.portfolio-item:visible').fadeOut(500, function() { 
    $('.item').fadeIn(500); 
}); 

僞選擇:visible將激活淡出只爲所需的元素。

+0

這不是我已經在做什麼嗎? –

+0

@JustinW不是第一個主播,這是我犯錯的原因。打擾一下。 –

+0

這實際上非常有用,謝謝。使用':visible'僞選擇器的任何兼容性問題?如果是這樣,那麼將採取另一種方式來做到這一點?另外,如果點擊過濾器,然後點擊「全部」,它仍然會閃爍。那裏應該改變什麼? –

1

要停止閃爍,你應該添加.stop()到您的代碼 - >http://api.jquery.com/stop/

http://jsfiddle.net/rrikesh/dS5zV/

$('#all').click(function() { 
     //fade out entire set (transition looks better) 
     $('.portfolio-item').stop(true,true).fadeOut(500); 
      //fadeIn all thumbs 
      $('.portfolio-item').fadeIn(500); 
     }); 
}); 
+0

謝謝!我在這裏分叉它:http://jsfiddle.net/HbfHa/ –

+0

再次感謝。兩個答案都非常有幫助。我想檢查你們是否都回答了,但tassoevan幾乎回答得很好。 –

+0

不用擔心。我的目標是幫助你,而不是收集點:) – RRikesh

1

試試這個降低代碼:

$('.menu_item').click(function(){ 
    var callBack = (function(itemsToShow){ 
     $('.portfolio-item:visible').fadeOut(500, function() { 
      $(itemsToShow).fadeIn(500); 
     }); 
    }); 

    switch ($(this).attr('id')){ 
     case 'all': 
      callBack('.portfolio-item'); 
      break; 
     case 'web': 
      callBack('.web'); 
      break; 
     case 'graphic': 
      callBack('.graphic'); 
      break; 
     case 'logo': 
      callBack('.logo'); 
      break; 
     case 'motion': 
      callBack('.motion'); 
      break; 

    }     
}); 

你可以從看以上我將menu_item類添加到導航列表

http://jsfiddle.net/zHWgG/18/

+0

這真的很渺茫。我將通過這個步驟來更好地理解這裏發生的事情。看起來我的編程班現在正在回到我身邊!謝謝你的幫助,烏蘭! –

+0

沒問題!您也可以嘗試如下所示:http://jsfiddle.net/zHWgG/23/ 這裏唯一的約束是您必須爲導航項目和組合項目的名稱使用相同的id名稱 –

+0

這很有道理。我更多地沿着這個例子的方向想像了一些東西,因爲很久以前我用單選按鈕寫了類似的東西。我的編程非常生疏,所以我需要它。再次感謝! –