热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何阻止锚链接跳到页面的另一个区域

我一直试图防止单击锚链接后页面滚动。这是当前页面的外观。当用户单

我一直试图防止单击锚链接后页面滚动。

这是当前页面的外观。当用户单击左侧面板中的图像,这将使较大版本的图像以全视图显示在右侧面板中(下方带有文本)。该页面特别需要如下所示。思想锚可能是最好的方法,但可以接受其他建议。

如何阻止锚链接跳到页面的另一个区域

不幸的是,我尝试了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(),由于某种原因,每当您在左侧面板中选择图像时,这都会停止整个页面的移动。


推荐阅读
author-avatar
好人民看到了
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有