我一直在寻找一个"灯箱"类型的解决方案,允许这个但尚未找到一个(请,如果您知道任何,请建议).
我正在尝试重新创建的行为就像您在点击图片时在Pinterest上看到的那样.叠加层是可滚动的(因为整个叠加层像页面顶部的页面一样向上移动),但叠加层后面的主体是固定的.
我试图用CSS创建它(即div
在整个页面和主体上面叠加overflow: hidden
),但它不会阻止div
可滚动.
如何防止正文/页面滚动但仍在全屏容器内滚动?
我正在尝试在使用灯箱时禁用父级的html/body滚动条.这里的主要词是禁用.我也没有想隐藏它overflow: hidden;
.
这样做的原因是overflow: hidden
使网站跳转并占据滚动区域.
我想知道是否可以在显示时禁用滚动条.
使用jQuery,我想禁用正文的滚动:
我的想法是:
body{ overflow: hidden;}
scrollTop();/scrollLeft()
有没有更好的办法?
更新:
请参阅http://jsbin.com/ikuma4/2/edit,查看我的示例,以及原因
我知道有人会想"为什么他不只是position: fixed
在面板上使用?".
由于我有其他原因,请不要这样做.
我在开发站点上实现了fancybox2.
当我使用fancybox(点击链接等)时,整个html会在它后面移动 - 然后转到顶部.我在另一个演示中工作正常,但是当我将相同的代码拖到这个项目时,它会跳到顶部.不仅有内联div的链接,还有简单的图库.
有没有人经历过这个?
我正在使用canvas和javascript制作游戏.
当页面长于屏幕(评论等)时,按向下箭头会向下滚动页面,使游戏无法播放.
当玩家想要向下移动时,我该怎么做才能防止窗口滚动?
我猜Java游戏等等,只要用户点击游戏就不会有问题.
我尝试了以下解决方案:如何使用箭头键禁用FF中的页面滚动,但我无法使其工作.
我有一个页面,其中有一个部分用于绘制图纸.但是,当在移动浏览器上使用时,touchmove事件(至少是垂直事件)也会滚动页面(这会降低草图体验的性能).有没有办法要么a)禁用并重新启用页面的滚动(所以我可以在每行启动时将其关闭,但在每次完成后将其重新打开),或者b)禁用默认处理touchmove事件(可能是滚动)转到绘制草图的画布(我不能完全禁用它们,因为草图使用它们)?
我已经使用jquery-mobile vmouse处理程序作为草图,如果这有所不同.
更新:在iPhone上,如果我选择要绘制的画布,或者只是在绘制之前握住我的手指,页面不会滚动,而不是因为我在页面中编码的任何内容.
是否可以在jQuery UI模式对话框打开时禁用浏览器中的滚动(仅适用于浏览器的滚动条).
注意:我确实希望在对话框中启用滚动
由于我使用的是jQuery,因此任何解决方案都可以使用.理想情况下,我想知道两者.
我已经将箭头键绑定到我页面上的另一个函数(使用jQuery),但是让它们导致页面滚动除此之外,导致我出现问题.
我可能一次都知道这个,但我不记得了.
我正在寻找一种方法来阻止鼠标中键点击使浏览器开始滚动,并显示小滚动'指南针'.
我已经看到使用javascript禁用中间点击滚动但是解决方案比我想要的更多hackey,并且似乎不是我实际可以使用的东西.
我正在寻找一个更明确的"这是你如何做到"或"你不能这样做,儿子".
我当然对hacks和workarounds持开放态度.
仅仅因为SO代码看起来更好用代码,这就是我用来在右键或中键点击时关闭工具提示的内容.
msg.mousedown(function(e) {
if (e.which == 2) { //middle mouse click
msg.hide();
e.preventScrolling(); //if only this worked...
}
else if (e.which == 3) { //right mouse click
msg.hide();
}
}).bind('contextmenu', function(e) {
e.preventDefault();
}).click(function(e) {
e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
编辑:jQuery,JavaScript,无论如何,让我们现在玩得很好:)
编辑2:
我更感兴趣的是防止小卷轴'罗盘'而不是阻止页面滚动.我想从我最初的描述中不是很清楚.
我正在使用Jquery对话框在页面顶部打开一个弹出框窗口.当我打开对话框时,我希望禁用常规页面滚动.为此,我正在做:
$('body').css({overflow:'hidden'});
Run Code Online (Sandbox Code Playgroud)
对话框打开时,:
$('body').css({overflow:'auto'});
Run Code Online (Sandbox Code Playgroud)
对话框关闭时
这有效,但是当删除滚动条时,后面的内容会向右移动,结果不太好.
我尝试了另一种方法,通过创建一个css类"noscroll",如下:
body.noscroll
{
position: fixed;
overflow-y: scroll;
width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
然后,而不是以前的js代码,我在对话框打开/关闭时添加并删除此类到正文.
现在这适用于滚动条,后面的内容不会向右移动,但使用此方法后面的内容会返回到顶部.
因此,基本上,method1使内容向右移动,而method2使内容移回到顶部.
有谁知道这方面的解决方案?对话框打开时没有滚动后面的内容,禁用滚动时没有移动...?
jquery ×7
css ×5
javascript ×5
scroll ×4
arrow-keys ×2
canvas ×1
fancybox-2 ×1
html ×1
jquery-ui ×1
lightbox ×1
overlay ×1
touch ×1