【发布时间】:2017-10-02 13:21:03
【问题描述】:
这里是 StackOverflow 的新手,如果有什么我需要做的,请告诉我。
我在我的网站 (https://github.com/cferdinandi/smooth-scroll) 上使用 cferdinanadi 的平滑滚动插件,但我想在单击链接后摆脱 URL 中的锚链接。所以现在当我点击一个链接时,我的 URL 变为 (www.mysite.com/#anchor) 但我希望它保持为 (www.mysite.com)
在提供的文档 (https://github.com/cferdinandi/smooth-scroll) 的最底部,我找到了应该从 URL 中删除这些锚链接的辅助函数,但我不确定我应该将代码粘贴到哪里才能使其正常工作。
谁能帮助我?这是提供的应该修复它的代码:
var scroll = new SmoothScroll();
var smoothScrollWithoutHash = function (selector, settings) {
/**
* If smooth scroll element clicked, animate scroll
*/
var clickHandler = function (event) {
var toggle = event.target.closest( selector );
console.log(toggle);
if ( !toggle || toggle.tagName.toLowerCase() !== 'a' ) return;
console.log(toggle.hash);
var anchor = document.querySelector( toggle.hash );
if ( !anchor ) return;
event.preventDefault(); // Prevent default click event
scroll.animateScroll( anchor, toggle, settings || {} ); // Animate scroll
};
window.addEventListener('click', clickHandler, false );
};
// Run our function
smoothScrollWithoutHash( 'a[href*="#"]' );
【问题讨论】:
-
你能分享一下你拥有什么和想要什么的屏幕截图吗?如果您可以提供指向您的网站或 jsfiddler 的链接,也会很有帮助。
-
该站点尚未启动。我也会在帖子中添加此编辑,但现在当我单击链接时我的 URL 变为 (mysite.com/#section1) 但我希望它保持为 (www.mysite.com)
-
在
var toggle ...上方添加event.preventDefault();
标签: jquery scroll smooth-scrolling