jQuery轻柔滚动
由于我网站的性质,我经常不得不链接到页面中列出的锚,而不仅仅是页面本身。可以在此处找到一个示例: 我要找的是一些jQuery代码,我可以使用它使页面慢慢向下滚动到锚定位置,而不是直接跳转到锚定位置 有人能帮我吗?谢谢。假设您的html是:jQuery轻柔滚动,jquery,jquery-ui,scroll,Jquery,Jquery Ui,Scroll,由于我网站的性质,我经常不得不链接到页面中列出的锚,而不仅仅是页面本身。可以在此处找到一个示例: 我要找的是一些jQuery代码,我可以使用它使页面慢慢向下滚动到锚定位置,而不是直接跳转到锚定位置 有人能帮我吗?谢谢。假设您的html是: <a href="#someid">click me</a> <h1 id="someid">some heading<h1> 编辑:利亚姆说的话(见下面的评论)这是我不久前整理的东西 $('a', t
<a href="#someid">click me</a>
<h1 id="someid">some heading<h1>
编辑:利亚姆说的话(见下面的评论)这是我不久前整理的东西
$('a', this)
.each(function(e) {
var url = $(this).attr('href').replace(/^\s/, '').replace(/\s$/, '');
var parts = url.split("#", 2);
var anchors = $("#" + parts[1] + ", a[name='" + parts[1] + "']");
if (anchors.length > 0) {
$(this).click(function(evt) {
evt.preventDefault();
$('html, body')
.animate({
scrollTop: $(anchors.get(0)).offset().top
}, {
duration: 1500,
specialEasing: {
scrollTop: 'easeOutQuint'
}
});
});
}
});
如果我再次编辑此内容,我将使用$('a[href^=“#“]”)liam的选择器替换我的锚筛选。谢谢您的回答,但它无法正常工作。对于链接和锚点位于同一页面上的页面,它可以正常工作,但它会阻止所有链接工作。另一点需要注意的是,大多数情况下,指向锚的链接将来自另一个页面,因此它需要能够从url获取#。谢谢。对于第一部分,在链接中添加一个类,将其表示为“同一页面”,然后使用
$('a.myclass')
作为选择器。至于第二部分,我不会那么做。听起来像是糟糕的使用性使用$('a[href^=“#“]”)
只选择指向页面上锚的链接。
$('a', this)
.each(function(e) {
var url = $(this).attr('href').replace(/^\s/, '').replace(/\s$/, '');
var parts = url.split("#", 2);
var anchors = $("#" + parts[1] + ", a[name='" + parts[1] + "']");
if (anchors.length > 0) {
$(this).click(function(evt) {
evt.preventDefault();
$('html, body')
.animate({
scrollTop: $(anchors.get(0)).offset().top
}, {
duration: 1500,
specialEasing: {
scrollTop: 'easeOutQuint'
}
});
});
}
});