我看过网站顶部有一些链接,当你点击第一个链接的例子时,你正在页面上向下滚动(jQuery向下滚动效果)到你点击的id(#) 。 (带链接的菜单跟随你)。然后,您可以单击另一个链接,然后您将被带到页面下方。
我无法为这种技术命名,我对垂直页面滑动的搜索没有返回我希望的内容。
Tumblr.com有类似的东西,不完全是我想要的东西。 http://www.w3.org/html/logo也有这样的东西,这里唯一缺少的是当页面滚动时关闭菜单。
任何人都可以帮我解释一下吗?或者举几个例子?
提前致谢!
答案 0 :(得分:2)
您只需获取要滚动到的元素的垂直偏移量,然后为scrollTop
元素(或您正在滚动的任何元素)设置window
属性的动画:
//bind to all links whose `href` attribute starts with a hash
$('a[href^="#"]').on('click', function () {
//get the offset from the document's top for the element targeted in the links `href` attribute
var offset = $($(this).attr('href')).offset().top;
//scroll the document, some browsers use `html`, some use `body`
$('html, body').stop().animate({ scrollTop : offset }, 1000);
});
以下是演示:http://jsfiddle.net/wCgA7/1/
请注意,如果您提供导航position:fixed
,则可以将其停靠在视口的顶部。
答案 1 :(得分:0)
查找scrollTo插件。 http://flesler.blogspot.com/2007/10/jqueryscrollto.html
答案 2 :(得分:0)
答案 3 :(得分:0)
我一直在使用此JQuery
代码的修改版本:
// animate to anchor link
$('nav a').click(function() {
$('nav li').removeClass('selected');
$(this).parent().addClass('selected');
var elementClicked = $(this).attr("href");
var destination = $(elementClicked).offset().top;
$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 500);
return false;
});
// update active links on scroll
$(window).scroll(function(){
var pos = $(window).scrollTop();
var height = $(window).height();
$('nav li').each(function(){
if( ( pos >= $(this).offset().top )){
$('nav li').removeClass();
$(this).addClass('selected');
}
});
});