我有一個隱藏的div,具有固定高度和滾動條。我想改變滾動位置,但瀏覽器不會讓我這樣做,因爲div是隱藏的。 scrollTop屬性將堅持爲0.更改隱藏div的滾動
此外,我不想顯示和隱藏div,導致閃爍。
如果有人知道如何去做,它會非常有幫助。
謝謝!
我有一個隱藏的div,具有固定高度和滾動條。我想改變滾動位置,但瀏覽器不會讓我這樣做,因爲div是隱藏的。 scrollTop屬性將堅持爲0.更改隱藏div的滾動
此外,我不想顯示和隱藏div,導致閃爍。
如果有人知道如何去做,它會非常有幫助。
謝謝!
我的問題並不完整。 div並不是自己隱藏的。它是隱藏的容器div的一部分。內部div顯示與他的父母。
<div class="container hidden">
<div id="some_div">Content</div>
<div id="my_div">I wanted to scroll this one</div>
<div id="other_div">Content</div>
</div>
我們使用jQuery想出了一個自定義的「onShow」事件。
所以現在我們可以這樣做:
$('#my_div').bind('show', function() {
handle_scrollTopOffset();
});
當show事件被綁定,就增加了類.onShow
到div。 jQuery.fn.show()
函數已被覆蓋,觸發具有.onShow
類的孩子的'show'事件。
謝謝大家的建議。對不起,我提供了一個不完整的問題。下次我會提供所有的細節。
這是我找到的最佳解決方案。我只是將scrollTop()函數從我的關閉函數移到了我的開頭函數中,而不是事件。 – stackers 2015-08-19 15:52:11
爲了防止格閃爍和修復<div>
不可用性腳本可以使用位置隱藏的"display: none;"
代替:
.hidden {
position: absolute !important;
left: -9999px !important;
top: -9999px !important;
}
您可以使用jQuery的數據功能保存滾動。
function SaveScroll(val)
{
$(the_element).data("Scroll", val);
}
function Show()
{
var element = $(the_element);
// prevent from showing while scrolling
element.css
({
position: "absolute",
top: "-50000px",
left: "-50000px",
display: ""
});
// Scroll to the position set when it was hidden
element.scrollTop(element.data("Scroll"));
// show the element
element.css
({
position: "",
top: "",
left: ""
});
}
這可能做的伎倆
你也許可以只使用visibility: hidden
,而不是display: none
。可見性將元素保留在原來的位置。我相信它和opacity: 0
完全一樣,但它是一個跨瀏覽器的解決方案。
當您取消隱藏時,您不能更改滾動位置嗎? – NibblyPig 2010-06-23 10:40:08