我在移动(和桌面)浏览过程中使用锚标签时遇到了一个问题。单击链接时,锚点ID将写入URL,因此www.mysite.com将成为www.mysite.com/#anchor,这会在刷新页面时导致问题,因为它会跳回到锚点位置而不是页面顶部(或页面刷新的位置)。我发布了一个关于这个的问题,得到了一些响应,需要多个相同代码的实例,这看起来效率很低。因此,在如此摆弄之后我想出了这个。
答案 0 :(得分:0)
$('.js-anchor').click(function (evt) {
evt.preventDefault();
var anchor = $(this).text();
$('html, body').animate({
scrollTop: $('#' + anchor).offset().top
}, 1500);
});
通过确保链接的内容与锚点的id相同,这将完美地起作用。只要该类包含" js-anchor"就可以在页面上拥有任意数量的锚点。
(html mock)
<a class="js-anchor">Top</a>
<span id="Top"></span>