Javascript 需要防止用户手动滚动网页。(仅使用内部链接导航)

Javascript 需要防止用户手动滚动网页。(仅使用内部链接导航),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我目前正在设计一个非常垂直的网页,我的想法是用户不会在页面上滚动,但只有当他们单击带有内部锚的链接(href=“#someDiv”)时,页面才会自动向下滚动到该部分 因此,页面的元素被组织成束,用户单击以上下移动到单个页面的一个部分或另一个部分 我已将页面上载到以下url: 这个页面相当简单,我使用了一个平滑滚动jQuery插件来自动滚动。我所希望的是用户不能独自四处游荡 我尝试过使用overflow:hidden,并寻找javascript或jQuery来实现这一点,但似乎找不到可行的解决方

我目前正在设计一个非常垂直的网页,我的想法是用户不会在页面上滚动,但只有当他们单击带有内部锚的链接(
href=“#someDiv”
)时,页面才会自动向下滚动到该部分

因此,页面的元素被组织成束,用户单击以上下移动到单个页面的一个部分或另一个部分

我已将页面上载到以下url:

这个页面相当简单,我使用了一个平滑滚动jQuery插件来自动滚动。我所希望的是用户不能独自四处游荡

我尝试过使用
overflow:hidden
,并寻找javascript或jQuery来实现这一点,但似乎找不到可行的解决方案。溢出隐藏阻止页面加载超过屏幕,因此无法链接到页面的其他元素


除了Mac OS之外,我还没有真正测试过HTML/CSS,但它在Safari、Firefox和Chrome上运行良好。

虽然你肯定有一个有趣的概念,但我认为很难实现你想要的方式。如果我将浏览器窗口的高度设置得太小,以至于看不到您的导航菜单,也无法滚动,会发生什么情况?很可能我会厌倦你的网站然后离开

当用户看到垂直滚动条时,他们希望能够上下滚动。从用户那里采取这种方式更可能让他们感到沮丧和愤怒,而不是让他们认为“这真的很酷”

也就是说,您可以加载jQuery并执行如下操作:

$(document).ready(function() {

    $('html, body').scroll(function(e) {
         e.preventDefault();
    });

});

这将防止滚动条向上或向下移动免责声明:我尚未对此进行测试。

您可以使用以下css属性禁用页面上的滚动条

body{overflow: hidden;}

这将同时禁用滚动条和鼠标滚轮(我不确定Pg Up和Down按钮)

我建议您使这些部分(部分)可折叠。例如:

这个:如果我把浏览器窗口的高度设置得太小,以至于我看不到你的导航菜单,也看不到滚动条,会发生什么?我也这么想,但网站是为高端家具店设计的,所以我想客户的分辨率会与我的类似。。。。我还想把它作为一个学习机会,让默认的滚动可用。禁用它是一个坏主意。此外,如果你从这里开始遵循这个概念,你的页面可能会更酷:(我不认为这是第一个使用它的网站,但我记得它是一个网站)这对我来说是一个糟糕的设计,试图控制滚动,在不同大小的屏幕上充满了问题。我建议您在一个页面中添加/删除或隐藏/显示内容,以控制用户看到的内容,而不是试图覆盖滚动控制。出于已经说明的原因,不要这样做。非常好的一行回答@redslazer还禁用“向上翻页”和“向下翻页”按钮。除此之外,它还禁用OP使用定位标记以编程方式滚动的功能。这不是正确的答案。