2013-03-24 29 views
1

我使用下面的代碼在這裏:jQuery的.animate()跳動1頁上,但不是在另一頁

function toggle_visibility(id, h4id) 
{ 
    var e = $("#" + id); 
    var h = $("#" + h4id); 
    h.css({'padding': '0 0 0 20px'}); 
    e.animate({height: 'toggle'}, 400, function(){ 
     var vImg = e.is(':visible') ? 'minus' : 'plus'; 
     h.css({'background-image': 'url(/images/' + vImg + '.png)'}); 
    }); 
} 

如果您在本頁面到這裏看看:http://opportunityfinance.net/industry/ 做工精細

如果你在這裏看一下這裏:http://opportunityfinance.net/consulting/default.aspx?id=6474 這真的是動畫片。當您單擊它滑動並單擊它以滑動時,它會跳轉。

我試圖確定可能導致此問題的兩頁之間的差異,並且似乎無法理解爲什麼它不會在第二頁上沒有跳轉或下滑。

我該如何解決這個問題?在SO上已經閱讀過幾個問題和答案,但沒有運氣。

謝謝你們,讓我知道如果你需要更多的信息。

+0

嘗試在第一頁上的第二頁的內容,看看會發生什麼。 – 2013-03-24 15:05:39

+0

這是一個活網站,我不能只是改變這樣的網頁內容。此外,它的內容並不重要(如果你看第3個'

'標籤幾乎沒有任何內容,仍然跳躍),它仍然在第2頁跳動!在我假設的實際頁面上必定會有不同的東西(比如'paddings'或'margins)導致這個...? – 2013-03-24 15:19:11

回答

0

問題在於您正在動畫打開和關閉的div內的複雜內容。在你的第一個例子中,你有一小段純文本。在你的第二個例子中,你有嵌入的視頻。

您可能會調查使用基於CSS3的動畫是否可以爲複雜內容提供更好的性能。

+0

這不可能是真的,因爲即使是第三個'

'標籤也是如此,***生產與零售之間:中層食品連鎖企業***只有文字,點擊時仍然很刺激。 – 2013-03-24 15:07:04

+0

與h4一起獲得的跳躍是經典的jQuery幻燈片動畫凹凸,與其他元素獲得的較差性能無關。 http://jqueryfordesigners.com/slidedown-animation-jump-revisited/ – Nate 2013-03-24 15:29:05

+0

較差的表現與其他元素?這是什麼意思?至於滑動動畫碰撞,所以我必須設置一個高度?假設一個高度數組比? – 2013-03-24 15:46:05

0

這與我所知道的內容的高度有關 - 即第一頁的切換內容非常短,所以400的動畫速度足夠平滑地動畫到全高,而在第二頁面的擴展速度要快得多,因爲它比外部內容包裝器更高,當外部包裝器擴展以適應它時,就會發生跳轉。

我能想到的最佳解決方案是減慢動畫速度!

+0

如果您點擊第1頁上的第112屆國會影響力機會財務***'

'標記的***最終行動更新,這也是一個非常大的高度,但幻燈片仍然很好,沒有任何跳躍。所以,這個邏輯不太對。 – 2013-03-24 15:12:05

+0

我剛剛將動畫放慢到1000毫秒(1秒),仍然沒有變化!我懷疑放慢動畫速度會解決這個問題! – 2013-03-24 15:55:17

0

就像安格斯說的那樣,你的問題在於你的隱藏元素的高度每次都在變化,但你的時間不是動畫(400ms)。就這麼簡單。你的問題是,你有不同的高度相同的時間,所以嘗試用一個相對於高度的比例來改變你的時間。

+0

我減慢到1000毫秒,沒有好處,問題依然存在。另外,如果您查看該頁面上的第三個'

'標記,則它是一個1 LINE句子,點擊它時會顯示,但仍會跳轉。 – 2013-03-24 16:16:12

0

使用jQuery SlideUp()和SlideDown()代替animate()。它將工作...

+0

只是改變它使用'slideUp'和'slideDown',但沒有幫助。問題依然存在。 – 2013-03-24 16:04:05

+0

您正在爲每個父div添加「MARGIN-BOTTOM:1em」。將其刪除。 – 2013-03-25 10:00:16

0

好吧,這個問題是由於具有margin-bottommargin-top設置爲1em<h4>標籤。這對margin-top來說並不是什麼問題,因爲我在toggle2類中爲<h4>元素設置了一個5px的margin-top,它覆蓋了它,但仍然存在問題。

爲了解決這個問題,我都設置margin-topmargin-bottom0pxdiv標籤中纏繞。<h4>Title</h4><div>contents</div>給予該div標籤margin-bottom設置爲1em

這似乎已經解決了問題吧!謝謝,但我有一種感覺,邊距和/或填充導致了問題,我是對的!

相關問題