删除/避免将目标链接添加到URL
Remove/avoid adding target link to URL
对于这里的jQuery/JavaScript大师来说,这可能很简单,但我在网上找不到解决方案。
案例
我在页面底部有一个链接,上面写着Back to Top
,该链接只是一个目标链接,如下所示:
<a href="#top" class="standard">Back to Top</a>
所以当你们点击它时,它会跳到页面的顶部。易于理解的
问题
当点击目标链接时,id #top
会添加到页面的URL中,即:
http://website.com/about-us/#top
问题
有没有办法删除或避免将id #top
添加到页面的URL,但保留页面跳到顶部的功能?
如有任何帮助,我们将不胜感激。
在任何一种情况下(jQuery或vanilla JavaScript),您都需要执行以下操作:
- 选择
href
设置为#top
的所有锚点标记 - 创建一个"跳转"函数,将页面位置设置为顶部,返回
false
以防止默认链接行为 - 将"跳转"函数绑定到找到的所有节点的
click
事件
要跳转,您有多种选择。我在下面的第一个示例中提供了它们(jQuery和JS特定)。
使用jQuery
jQuery使选择和绑定到click
事件变得容易。然后,您可以使用jQuery或直接的JavaScript跳到页面顶部。
$('a[href="#top"]').click(function() {
//
// To jump, pick one...
//
// Vanilla JS Jump
window.scroll(0,0)
// Another Vanilla JS Jump
window.scrollTo(0,0)
// jQuery Jump
$('html,body').scrollTop(0);
// Fancy jQuery Animated Scrolling
$('html,body').animate({ scrollTop: 0 }, 'slow');
//
// ...then prevent the default behavior by returning false.
//
return false;
});
jQuery的animate
提供了动画持续时间和放松的选项,以及设置回调的功能。
香草JavaScript
你也可以全程使用VanillaJS。。。然而,查询和绑定变得更加痛苦。
现代浏览器支持document.querySelectorAll()
,这将允许您像使用jQuery:一样获取所有链接元素
var links = document.querySelectorAll('a[href="#top"]');
然后循环元素并绑定"跳转":
for (var i = links.length - 1; i >= 0; i--) {
links[i].onclick = function() { window.scroll(); return false; };
};
如果你的目标浏览器没有给你querySelectorAll
,你只需循环浏览所有锚标签,找到链接到#top
:的标签
var links = document.body.getElementsByTagName('a');
for (var i = links.length - 1; i >= 0; i--) {
var l = links[i];
if(l.getAttribute('href') === '#top') {
l.onclick = function() { window.scroll(); return false; }
}
}
$('a[href=#top]').click(function(){
$(window).scrollTop(0);
return false;
});
您需要停止标记a的默认事件来触发。
在处理锚点点击事件时,始终使用e.preventDefault();
On click of anchor元素。当您不需要锚元素时。
e.preventDefault();
$('html, body').animate({ scrollTop: 0 }, 'slow');
这将适用于
$('a.standard').click(function() {
$('body,html').animate({
scrollTop: 0
});
});
- 正在链接添加了以下内容::在之后
- 将超链接添加到“;标题“;标记文本
- 将重定向URL链接添加到JS函数
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 将数据库中的超链接添加到查询结果
- jQuery regex从文本链接-添加不需要的域到链接
- 将href链接添加到通过js鼠标悬停显示的图像
- 三.js - 自 r69 以来如何链接/添加相机灯
- 如何向超链接添加变量值
- 使用JavaScript向链接添加参数
- 知道点击了什么链接添加到数据库中
- 向asp.net生成的链接添加确认javascript
- 使用AJAX将AJAX链接添加到页面Yii
- 如何仅为特定URL向超链接添加属性
- 如何在javascript中将下一个和上一个链接添加到当前滑块
- 如何通过Jquery点击链接添加输入
- 将带有单击事件的超链接添加到 Dojo 网格
- OpenCart - 通过链接添加产品
- 使浏览器为我的链接添加书签
- 使用 JavaScript 向一组链接中的第一个链接添加一个属性