回答
一种选择是将overflow
属性临时设置为hidden
上body
,这将摆脱滚动条但在页面调整时会导致小的闪烁。
另一种选择是点击$(window).scroll()
事件并从那里返回false。这也会导致一些闪烁,因为浏览器不会对返回的错误语句做出快速反应。
你最好的赌注是你的点击事件处理程序移动到一个单独的文件,然后执行绑定有:
$(function() {
$('.emailPost').click(function() {
$(window).scroll(function() { return false; });
pageTracker._trackPageview('/onclick/emailquote');
});
});
这应该防止网页滚动。请记住,在对话框关闭后删除绑定,否则该页面将无法再滚动!您可以使用删除的绑定:
$(window).unbind('scroll');
请勿在链接中使用#标记!
它会尝试滚动到锚点#但由于它是空的,它将滚动到页面的顶部。
编辑您的链接:
<a href="" onclick="javascript: pageTracker._trackPageview('/onclick/emailquote');" class="emailPost">Email this quote</a>
(注意在href = “”)
绝对使用哈希标记,不要在任何情况下使用内联JavaScript。为了防止浏览器重定向到#,可以在处理函数的末尾使用'return false;'。 http://crisp.tweakblogs.net/blog/313/the-useless-javascript-pseudo-protocol.html –
对不起,罗吉尔,这并没有解决问题。它也使得页面重新加载,关闭弹出窗口。虽然谢谢! – Joe
是的,你仍然必须使用返回假现象! 但这是真正基本的JS;) 'Email this quote' 将工作正常。 – YesMan85
该代码块适用于iOS移动时滚动问题非常普遍的设备。
$('body').on('touchmove', function(e) {
if ($('.scroll-disable').has($(e.target)).length) e.preventDefault();
});
$('body').on('shown.bs.modal', function() {
$(this).addClass('scroll-disable');
});
$('body').on('hidden.bs.modal', function() {
$(this).removeClass('scroll-disable');
});
- 1. 当弹出窗口打开时防止滚动身体
- 2. 防止滚动背景
- 3. CSS:防止滚动背景
- 4. 背景窗口弹出
- 5. JavaScript弹出窗口(背景窗口)
- 6. 如何在弹出窗口显示时防止弹出获取焦点
- 7. 防止页面滚动,如果弹出窗口打开
- 8. 如何显示透明背景图像的弹出窗口?
- 9. 弹出窗口的背景不显示在Android中
- 10. 防止div窗口滚动后滚动的窗口
- 11. 弹出窗口显示/隐藏后防止生成WM_MOUSEMOVE
- 12. 如何防止渲染或显示弹出窗口时渲染后窗?
- 13. jQuery弹出窗口滚动
- 14. 如何在单击“输入”按钮时防止显示退出弹出窗口?
- 15. 弹出窗口不滚动时关闭
- 16. 如何防止背景滚动
- 17. 防止在emacs中弹出窗口
- 18. 防止WinForms MessageBox.Show模态弹出窗口
- 19. 防止多个弹出窗口点击
- 20. 显示弹出窗口后处于相同的滚动位置
- 21. 弹出窗口不显示
- 22. 弹出窗口不显示
- 23. 弹出窗口不显示
- 24. 显示弹出窗口
- 25. iPhone:MKAnnotation显示弹出窗口?
- 26. 如何在打开弹出窗口时停止滚动页面
- 27. jquery移动弹出窗口不显示。
- 28. 如何显示其他弹出窗口上的弹出窗口?
- 29. 使弹出窗口背景透明而不会退出弹出窗口
- 30. HTML/CSS“弹出式窗口”窗口和禁用的背景
谢谢。但是,这种解决方案会导致屏幕闪烁? 此外,pageTracker是通过Wordpress中设置的自定义字段传递的,并且不容易与jQuery进行交互。 – Joe
在safari 4和firefox 3.5.7中不起作用。 – DataGreed
我有同样的情况。这是一个不错的解决方案,因为它锁定了FF24.0中的滚动条,但它仍然允许页面使用end/home/pageup/pagedown进行移动;此外,它似乎不能在IE8中工作。我还没有对这两个浏览器做进一步测试,但上面的评论似乎表明这个问题需要一些工作。 – Thomas