簡體   English   中英

更改隱藏div的滾動

[英]Change the scroll of an hidden div

我有一個固定高度的隱藏div和一個滾動條。 我想改變滾動位置,但瀏覽器不會讓我這樣做,因為div是隱藏的。 scrollTop屬性將保持為0。

此外,我不想顯示和隱藏div返回,這會導致閃爍。

如果有人知道該怎么做,那將非常有幫助。

謝謝!

您可以使用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完全相同opacity: 0 ,但它是一個跨瀏覽器的解決方案。

為防止div閃爍並修復腳本的<div>不可用,您可以使用位置隱藏而不是"display: none;"

.hidden {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
}

我的問題不完整。 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類的子.onShow上的“show”事件。

謝謝大家的建議。 對不起,我提供了一個不完整的問題。 我下次會給出所有細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM