作者:好人民看到了 | 来源:互联网 | 2023-10-11 14:14
我一直试图防止单击锚链接后页面滚动。
这是当前页面的外观。当用户单击左侧面板中的图像,这将使较大版本的图像以全视图显示在右侧面板中(下方带有文本)。该页面特别需要如下所示。思想锚可能是最好的方法,但可以接受其他建议。
不幸的是,我尝试了href =“!#”无效。
还尝试了许多Javascript方法,例如e.preventdefault(),e.stopPropagation(),然后返回false,返回false只是使链接完全停止工作。
这是带有锚点链接的缩略图按钮,位于带有滚动条的div中(溢出:滚动),带有一组相似的缩略图。
这是包含锚点的图像,也是位于带有滚动条的div中的其他图像。
Alexandru Zdrobau
Anthony Ginsbrook
Brooke Cagle
这是我尝试通过以下方式停止滚动的Javascript:
$("a[href^='#']").click(function(e){
e.stop();
});
$('.d-block mb-4 h-100').click(function(event) {
event.preventDefault();
return false;
});
$(".d-block mb-4 h-100").click(function (event) {
event.stopPropagation()
})
有什么想法吗?谢谢!
第一种解决方案:例如,在图库位置(或用户单击时希望浏览器跳转的位置)周围定义一些html锚点,例如:
定义所有您需要的。如果您像这样定义锚点,浏览器将跳过锚点的位置,并且不会干扰Gallery js的代码,因此您可以进一步定义浏览器的跳转点。
第二个选项(更精致)是找到您正在使用的图库的位置,以检测URL哈希(URL中的锚点)并将链接替换为href =“ Javascript:thatfunction('anchor')”。请指定您正在使用的代码/图库,因为在第二个选项中,如果看不到实际代码,则无法更明确地显示。
第三种选择:最后,如果由于某种原因,您想要您提出的事件控制器解决方案;可能甚至根本没有调用您定义的单击事件控制器...,因为设置完成后没有与jquery选择器匹配的元素。
要解决此问题,您可以:
- 延迟事件控制器的设置(我不喜欢这种解决方案,但有时是必需的)...或...
- 您可以使用全局主体事件控制器,并通过使用event.target参数属性来检测必须停止/阻止/取消的事件,该属性应已定义了最初启动事件时的dom元素,可能是href元素(如果不是孩子的话)(因此,您可以让父母找一个“ a”标签并检查它的href)。如果它不起作用,那么您最终还可以测试是否使用mousedown / touch事件。
,
您可以使用href =“ Javascript:void(0)”代替href =“#”
例如:
Click Here!
,
以为我很快就提出建议,最后我设法解决了这个问题。基本上是在Javascript中使用scrollIntoView()函数使图像显示在右侧框中。后来将函数更改为scrollToTop(),由于某种原因,每当您在左侧面板中选择图像时,这都会停止整个页面的移动。