Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象固定滚动_Javascript_Jquery_Css_Scroll_Fixed - Fatal编程技术网

Javascript对象固定滚动

Javascript对象固定滚动,javascript,jquery,css,scroll,fixed,Javascript,Jquery,Css,Scroll,Fixed,我有一只奇怪的虫子。我在顶部有一个通过CSS固定的条。易于理解的然而,在这个栏中打开jQuery下拉列表是有问题的,因为当我滚动时,它不会滚动。下拉列表将保持在当前位置 因此,我尝试用jQuery解决这个问题: $(document).ready(function () { var dropdownMenu = $('.dropdownMenu'), top = $('#topMenu').height(); $(window).on('scroll click

我有一只奇怪的虫子。我在顶部有一个通过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');
    });
});
如果我打开页面顶部的下拉列表并滚动,它将按预期工作。但是当向下滚动并打开下拉列表时,它被放置在任何地方,但不是我期望的地方。只要我一滚动,它就会确定它的位置

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


有什么想法吗?

一个快速而肮脏的黑客:

$(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);
}

你能贴一张小提琴来显示这个问题吗?