2013-11-01 174 views
0

我試圖爲我的網站的照片部分創建一個系統,有一個更多的隱藏功能,但我似乎有點麻煩。我創建了一個小提琴here,所以你可以看到我在說什麼。顯示和隱藏項目顯示更多,並顯示更少的按鈕

基本上,我想要加載顯示的十個圖像(這不會發生),然後能夠顯示十個,然後有另一個按鈕,將隱藏其中十個。

雖然我的增值似乎有些事情發生。在加載所有的圖像顯示,當我擊中少顯示,然後他們都消失。然後,我可以添加或刪除十,,但是當碰巧有不平衡數量的圖像時,它會中斷並隱藏或顯示更多,然後需要。那有意義嗎?

我的js看起來像這樣。任何幫助將是美好的!

size_li = $(".imgLinks li").size(); 
     x=10; 
     $('.imgLinks li:lt('+x+')').show(); 
     $('.show_button').click(function() { 
      x= (x+10 <= size_li) ? x+10 : size_li; 
      $('.imgLinks li:lt('+x+')').show(); 
      $('.hide_button').show(); 
      if(x == size_li){ 
       $('.show_button').hide(); 
      } 
     }); 
     $('.hide_button').click(function() { 
      x=(x-10<0) ? 10 : x-10; 
      $('.imgLinks li').not(':lt('+x+')').hide(); 
      $('.show_button').show(); 
      $('.hide_button').show(); 
      if(x == 10){ 
       $('.hide_button').hide(); 
      } 
     }); 
+0

你可能想重寫'x =(x-10 <0)? 10:x-10'到'x = Math.max(x-10,0)'和'x =(x + 10 <= size_li)? x + 10:size_li'到'x = Math。min(x + 10,size_li)' –

+0

@ user1561072當我在小提琴中做到這一點,它打破了整個事情... – zazvorniki

+0

對不起,應該是'x = Math.max(x - 10,10)'和'Math.min(x + 10,size_li)'。你確定'(x-10 <0)',但是'10'的最小值?編輯:試過了,工作。 –

回答

2

如果您最初隱藏所有圖像和隱藏按鈕,您的js代碼將顯示前十,並且一切看起來都很好。添加以下在你的CSS代碼,

.imgLinks li, .hide_button{ 
    display:none; 
} 

http://jsfiddle.net/SrK88/8/

或在您的js的頂部添加以下兩行,

$(".imgLinks li").hide(); 
$(".hide_button").hide(); 

http://jsfiddle.net/SrK88/9

編輯

偶數/不均勻的問題修改代碼隱藏的話,

$('.hide_button').click(function() { 
     x = (x - 10 < 0) ? 10 : (x%10!=0?x-(x%10):x - 10); 
     $('.imgLinks li').not(':lt(' + x + ')').hide(); 
     $('.show_button').show(); 
     $('.hide_button').show(); 
     if (x == 10) { 
      $('.hide_button').hide(); 
     } 
    }); 

http://jsfiddle.net/SrK88/24/

+0

這確實修復了它的一部分,並且謝謝,但是如果li不是甚至還有問題。如果不是20個圖像,則有18個圖像。如果在那個小提琴上,你會一直走到底部,你可以看到它的功能。 – zazvorniki

+0

@zazvorniki錯過了那部分,我想現在沒關係。 – melc

0

也許你可以按照這個example。基本上它是切分2個項目而不是10個。它使用css來隱藏所有li從ul裏面的第3個li開始。

+0

我在看這個,但是我跟着我做了,因爲它對我的應用程序更有意義。 – zazvorniki

0

確定如何對這個http://jsfiddle.net/SrK88/21/

UPDATE 使用%操作chagned代碼來處理不均勻金額:http://jsfiddle.net/SrK88/23/

首先你的圖片都是可見的,因爲你從不掩飾他們開始。

你的尺寸有點

我改成了var size_li = $(".imgLinks li").hide().size();

其餘的我會很樂意解釋,如果它不是';噸清楚

它似乎過於複雜的例子內部追蹤你在哪裏在顯示/隱藏,所以我只是看看可見<li>的和檢查你是否可以顯示或隱藏更多

+0

這確實有效,但它仍然存在不均勻顯示和隱藏的問題。例如,如果總共有18張圖像而不是20張,那麼當我去隱藏它們時,它們會不均勻地隱藏它們。 – zazvorniki

+0

你可以添加一個檢查,當所有可見的弄清楚什麼使用%操作符(即:79%10 = 9) –

+0

我不太確定你說什麼......在我的代碼中,這迫使他們有一種顯示風格:list-item;我不確定那是從哪裏來的。 – zazvorniki