Javascript Jquery模式弹出导致页面滚动
因此,我有一个模式窗口,导致页面向下滚动。它在url中添加了#登录框,但该div id不是一个固定位置。我曾想过在html中添加一个div,但这不起作用,因为我的菜单很粘,这会导致他们滚动到该div所在的任何位置 然后单击导航菜单中的“登录”。你会明白我在说什么。然后向下滚动并再次单击,oyu将看到它向下滚动,无论您在页面上的何处 以下是模态窗口的相关JS:Javascript Jquery模式弹出导致页面滚动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我有一个模式窗口,导致页面向下滚动。它在url中添加了#登录框,但该div id不是一个固定位置。我曾想过在html中添加一个div,但这不起作用,因为我的菜单很粘,这会导致他们滚动到该div所在的任何位置 然后单击导航菜单中的“登录”。你会明白我在说什么。然后向下滚动并再次单击,oyu将看到它向下滚动,无论您在页面上的何处 以下是模态窗口的相关JS: // Load the modal window $('a.login-window').click(function() {
// Load the modal window
$('a.login-window').click(function() {
// Get the value in the href of our button.
var login_id = $(this).attr('href');
// Add our overlay to the body and fade it in.
$('body').append('<div id="overlay"></div>');
$('#overlay').fadeIn(300);
// Fade in the modal window.
$(login_id).fadeIn(300);
// center our modal window with the browsers.
var margin_left = ($(login_id).width() + 24) / 2;
var margin_top = ($(login_id).height() + 24) / 2;
$(login_id).css({
'margin-left' : -margin_left,
'margin-top' : -margin_top
});
return false;
});
要停止页面上的滚动,请创建此javascript函数(用纯javascript编写): 然后将此类添加到css中:
.stopScrolling{
height: 100%;
overflow:hidden;
}
如果要防止滚动,请调用toggleScrolling函数,如果要重新启动,请再次调用该函数。我知道您正在使用JQuery,但您应该能够将它与普通JS混合使用。在片段链接上向下滚动窗口的插件导致了这种情况。如果您取消隐藏登录菜单,您可以看到窗口正在向下滚动到其原始位置。由于这不是默认的浏览器行为,
return false
或event.preventDefault()
不会停止此行为。您需要查看是否有一个类可以添加到此链接,当单击此链接时,该类将阻止插件滚动
另一个选项是不要对登录窗口的id使用href
属性。将其设置为href=“javascript:void(0)”
或只是href=“#”
。然后使用如下数据属性:data target=“loginMenu”
并更新javascript以从该属性获取id:
var login_id = $(this).attr('data-target');
#overlay div是什么样式的?特别是身高。我不知道你的意思。你是说css是什么意思?或者?请参阅底部更新的帖子。:)谢谢#我想重叠会得到文档的高度。如果你可以尝试在你的js函数中给它加上高度,然后加上窗口高度。你有可能写出js吗?我不确定我是否完全明白。再次感谢!
.stopScrolling{
height: 100%;
overflow:hidden;
}
var login_id = $(this).attr('data-target');