0

当用户单击“联系我”按钮时,我希望屏幕滑动到#contact 元素,但不知道该怎么做。我尝试了各种不同的代码片段并尝试根据我的需要对其进行调整,但似乎没有任何效果。

网站在这里;http://dombracher.com/

只是希望屏幕滑动到上面提到的 div,而不是快速捕捉到它。

提前致谢。

4

3 回答 3

3
$(document).ready(function() {
  $("a[href^='#']").anchorAnimate()
});

jQuery.fn.anchorAnimate = function(settings) {

    settings = jQuery.extend({
        speed : 1100
    }, settings);   

    return this.each(function(){
        var caller = this
        $(caller).click(function (event) {  
            event.preventDefault()
            var locationHref = window.location.href
            var elementClick = $(caller).attr("href")

            var destination = $(elementClick).offset().top;
            $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, settings.speed, function() {
                window.location.hash = elementClick
            });
            return false;
        })
    })
}
于 2013-01-11T22:27:34.157 回答
3

您可以自己动画窗口滚动

$(".menu2").click(function(){
    $(document.body).animate({
        "scrollTop": $("#contact").offset().top
    }, 2000, "swing"); // animation time and easing
    return false; // preventing default jump
});

小提琴:http: //jsfiddle.net/M8JE2/

或者使用http://flesler.blogspot.com/2007/10/jquerylocalscroll-10.html之类的 jquery 插件来使任何/所有本地链接与动画一起使用。

于 2013-01-11T22:29:15.793 回答
1

在这里,滚动到页面底部,因为您的联系表格在那里:

jQuery(function () {
    jQuery('#nav1 li.menu2').click(function (e) {
        jQuery("html, body").stop().animate({
            scrollTop: jQuery(document).height()
        }, 1000);
        e.preventDefault();
        return false;
    });
});
于 2013-01-11T22:27:00.753 回答