【问题标题】:Javascript object fixed scrollingJavascript对象固定滚动
【发布时间】:2013-12-31 21:19:53
【问题描述】:

我有一个奇怪的错误。我在顶部有一个通过 CSS 修复的栏。简单的。然而,在这个栏中打开一个 jQuery 下拉菜单是有问题的,因为它不会滚动,当我这样做时。下拉菜单保持在当前位置。

所以,我尝试用 jQuery 解决这个问题:

$(document).ready(function () {
    var dropdownMenu = $('.dropdownMenu'),
        top = $('#topMenu').height();

    $(window).on('scroll click', function () {
        $(dropdownMenu).css('position', 'fixed');
        $(dropdownMenu).css('top', top + 7 + 'px');
    });
});

如果我打开页面顶部的下拉菜单并滚动,它会按预期工作。但是当向下滚动并打开下拉菜单时,它无处不在,但不是我期望的位置。当我滚动时,它会立即固定它的位置。

所以我的问题是,点击时,它会在错误的位置打开。不多也不少。

有什么想法吗?

【问题讨论】:

  • 你能发布一个显示这个问题的小提琴吗?

标签: javascript jquery css scroll fixed


【解决方案1】:

快速而肮脏的 hack:

$(function() {
    WCF.Dropdown.init();

$('.dropdownToggle').click(reposition);

$(window).on('scroll click', reposition);
});

function reposition() {
    var dropdownMenu = $('.dropdownMenu'),
        top = $('#topMenu').height();
    setTimeout(function() {
        $(dropdownMenu).css('position', 'fixed');
        $(dropdownMenu).css('top', top + 7 + 'px');
    }, 10);
}

【讨论】:

    猜你喜欢
    • 2012-07-24
    • 2021-03-24
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2015-05-09
    相关资源
    最近更新 更多