有没有办法使用jQuery向下滚动到锚链?
像这样:
$(document).ready(function(){
$("#gotomyanchor").click(function(){
$.scrollSmoothTo($("#myanchor"));
});
});
发布于 2012-10-04 02:40:48
我是这样做的:
var hashTagActive = "";
$(".scroll").on("click touchstart" , function (event) {
if(hashTagActive != this.hash) { //this will prevent if the user click several times the same link to freeze the scroll.
event.preventDefault();
//calculate destination place
var dest = 0;
if ($(this.hash).offset().top > $(document).height() - $(window).height()) {
dest = $(document).height() - $(window).height();
} else {
dest = $(this.hash).offset().top;
}
//go to destination
$('html,body').animate({
scrollTop: dest
}, 2000, 'swing');
hashTagActive = this.hash;
}
});
然后你只需要像这样创建你的锚点:
<a class="scroll" href="#destination1">Destination 1</a>
你可以在我的website上看到。
这里还提供了一个演示:http://jsfiddle.net/YtJcL/
发布于 2013-02-11 11:48:24
到目前为止我见过的最好的解决方案:jQuery: Smooth Scrolling Internal Anchor Links
HTML:
<a href="#comments" class="scroll">Scroll to comments</a>
脚本:
jQuery(document).ready(function($) {
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
});
发布于 2012-08-22 18:34:14
下面是我用来将jQuery scrollTo快速绑定到所有锚链接的代码:
// Smooth scroll
$('a[href*=#]').click(function () {
var hash = $(this).attr('href');
hash = hash.slice(hash.indexOf('#') + 1);
$.scrollTo(hash == 'top' ? 0 : 'a[name='+hash+']', 500);
window.location.hash = '#' + hash;
return false;
});
https://stackoverflow.com/questions/4198041
复制相似问题