代码之家  ›  专栏  ›  技术社区  ›  Savageman

更改隐藏div的卷轴

  •  9
  • Savageman  · 技术社区  · 16 年前

    我有一个固定高度的隐藏div和一个滚动条。我想更改滚动位置,但浏览器不允许我这样做,因为div是隐藏的。 scrollTop属性将保留为0。

    如果有人知道怎么做,那真的很有帮助。

    谢谢!

    3 回复  |  直到 16 年前
        1
  •  3
  •   BrunoLM    16 年前

    可以使用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 ,但它是一个跨浏览器的解决方案。

        2
  •  2
  •   fantactuka    16 年前

    <div> 脚本不可用-可以使用位置隐藏而不是 "display: none;" :

    .hidden {
      position: absolute !important;
      left: -9999px !important;
      top: -9999px !important;
    }
    
        3
  •  2
  •   Savageman    16 年前

    我的问题不完整。潜水器不是自己藏起来的。它是容器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>
    

    $('#my_div').bind('show', function() {
        handle_scrollTopOffset();
    });
    

    当show事件被绑定时,它会添加类 .onShow 去办公室,还有 jQuery.fn.show() 函数已被重写,以在具有 .onShow公司 班级。

    谢谢大家的建议。对不起,我提了一个不完整的问题。下次我会把所有的细节都说出来。