我真的很接近這個,但我錯過了一些東西讓它正常工作。我建立了一個test page here。每次點擊可見的第n個孩子 - 缺少東西
將鼠標懸停在第一個濾鏡組上並單擊命名&語音時,它會正確過濾,圖像佔位符的邊距都是正確的。如果您然後單擊數字(不重置過濾器),過濾器仍然工作,但邊緣是混亂的,以便第一行只有3圖像,而不是4.
我不知道我需要添加什麼到代碼中,每次設置過濾時都會正確設置邊距。或者更具體地說,是否讓每個第四項都沒有餘量。
這裏的JS代碼:
$(document).ready(function(){
//WORK OVERVIEW FILTERS
$('.nav-secondary.filters .section-inner').each(function(){
//NAV REVEAL ON HOVER
var conf = {
over: function() {
$(this).find('ul.filter-list,.reset').slideDown(250,'swing');
},
timeout: 25,
out: function() {
$(this).find('ul.filter-list,.reset').slideUp(250,'swing');
}
}
$(this).hoverIntent(conf);
//FILTER FUNCTIONS
var _filter = '';
var _count = 0;
$('a.work-filter').click(function(){
_filter = $(this).data('filter');
$('.item.work[data-cats*="'+_filter+'"]').each(function(){
$(this).show(250,'swing');
});
$('.item.work:not([data-cats*="'+_filter+'"])').each(function(){
$(this).hide(250,'swing');
});
$('.item.work[data-cats*="'+_filter+'"]:visible').each(function (i) {
if ((i+1) % 4 == 0) $(this).css('margin-right', '0');
});
$('a.work-filter.active').removeClass('active').data('active','no');
$(this).addClass('active').data('active','yes');
$('ul.work-filters').find('a.parent.current').removeClass('current');
$(this).closest('ul').siblings('a.parent').addClass('current');
});
$('.reset a').click(function(){
$('.item.work').each(function(){
$(this).show(250,'swing');
});
$('a.work-filter.active').removeClass('active').data('active','no');
$('ul.work-filters').find('a.parent.current').removeClass('current');
});
});
});
編輯:爲了澄清,當你第一次點擊過濾器,它的作品,因爲它應該。這是任何後續點擊,保證金不會在正確的位置被刪除。所以缺少的是一些方法來清除所有的問題,並重新應用margin-right:0在第一個點擊之後點擊任何過濾器。
嗯,這似乎不工作。我得到相同的結果。 :/ –