我有一个单页网站,使用scrollmagic及其所有必要的插件/库(以及jQuery)来实现不同的效果,包括滚动位置触发的动画、固定、淡出等过程。
我还将其用于从页面菜单和其他本地链接进行的动画滚动到锚点-请参见下面脚本的相应部分。
问题在于,此脚本抑制了默认行为,“跳转”到锚点时直接单击本地链接,并且显然也会在通过带有附加到URL的锚点的直接链接或书签访问页面时发生。 (例如
是否有任何方法使浏览器直接显示单击上述示例中的链接时的锚点位置?
(在外部调用原始URL时,创建小提琴/ CodePen 没有意义。)
我还将其用于从页面菜单和其他本地链接进行的动画滚动到锚点-请参见下面脚本的相应部分。
问题在于,此脚本抑制了默认行为,“跳转”到锚点时直接单击本地链接,并且显然也会在通过带有附加到URL的锚点的直接链接或书签访问页面时发生。 (例如
http://www.example.com/index.php#part3
)。尽管单击本地链接时希望出现这种行为,但它显然会阻止浏览器显示从其他地方链接的锚点位置。是否有任何方法使浏览器直接显示单击上述示例中的链接时的锚点位置?
var sm_controller_1 = new ScrollMagic.Controller();
sm_controller_1.scrollTo(function(anchor_id) {
TweenMax.to(window, 2.0, {
scrollTo: {
y: anchor_id
autoKill: true
},
ease: Cubic.easeInOut
});
});
jQuery(document).on("click", "a[href^=#]", function(e) {
var id = jQuery(this).attr('href');
if(jQuery(id).length > 0) {
e.preventDefault();
sm_controller_1.scrollTo(id);
if (window.history && window.history.pushState) {
history.pushState("", document.title, id);
}
}
});
(在外部调用原始URL时,创建小提琴/ CodePen 没有意义。)