我有一个奇怪的错误。我在顶部有一个通过 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');
});
});
如果我打开页面最顶部的下拉菜单并滚动,它会按预期工作。但是当向下滚动并打开下拉菜单时,它无处不在,但不是我期望的位置。只要我滚动,它就会固定它的位置。
所以我的问题是,点击时,它会在错误的位置打开。不多也不少。
有什么想法吗?
最佳答案
一个快速而肮脏的 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);
}
关于Javascript对象固定滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863308/