繁体   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