滚动到弹出窗口内,位置为:fixed

时间:2014-04-14 16:59:06

标签: jquery overflow scrolltop

我有一个位置弹出窗口:已修复。因为我想禁用身体滚动,我有身体{overflow-y:hidden}。在弹出窗口中我有很多内容,这就是我有溢出的原因:滚动到弹出窗口和大量滚动。

我想滚动到此弹出窗口中的特定元素(其位置:固定且滚动很多)。我无法使用弹出窗口将页面滚动到标签:(

HTML结构是这样的:

<body style="overflow-y: hidden;">
    <div class="popup" style="position: fixed; overflow-y:scroll; ... ">
        ....
        ....

        .... really long content
        <h4>here</h4>
        ....
        ....
    </div>
</body>

这不起作用:(

$('html, body').animate({
    scrollTop: $("h4").offset().top
}, 2000);

这两个:(

  $('.popup').animate({
        scrollTop: $("h4").offset().top
    }, 2000);

这两个:(

jQuery.fn.scrollTo = function(where, speed) {
    $(this).animate({
        scrollTop:  $(this).scrollTop() - $(this).offset().top + where
    }, speed == undefined ? 1000 : speed);
    return this;
};
$("#custom_development_popup").scrollTo($("h4").offset().top, 300);

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

在我看来,问题在于你试图通过jQuery(javascript)来解决CSS问题。

检查这个小提琴,看看你想要做什么。

http://jsfiddle.net/w3QZc/1/

基本上我描述了除了div和body标签之外的css。你会发现它没有JS。如果这不是您想要做的,请给我们更多背景并更好地解释您的问题。

body{
    overflow-y: hidden;
}

.popup{
    background-color: #eee;
    border: 1px solid #000;
    position: fixed; 
    overflow-y:scroll;
    height: 200px;
    width: 400px;
    padding: 20px;
    margin: 30px;
}