【问题标题】:jQuery scrollTo [closed]jQuery滚动到[关闭]
【发布时间】:2013-04-15 18:48:15
【问题描述】:
$(document).ready(function() {
    $("#contact_menu").click(function() {
        $(body).scrollTo("#contact", 800);  
    }); 
}); 

我在我的代码中输入了这个,希望它会使我的页面滚动,但我不会工作。我尝试了几种方法,但都无法正确。

我希望你们中的一个可以帮助我。

【问题讨论】:

  • 你能发布你的html吗?
  • 确保它马上就来
  • 什么是 $(body)?也许你的意思是 $('body')?
  • 是的,但不能解决问题。

标签: jquery html scrollto


【解决方案1】:

试试这个:

$("#contact_menu").click(function() {
        $("body").animate({
         scrollTop: $("#contact").offset().top
     }, 2000);
}); 

jsFiddlehttp://jsfiddle.net/hescano/43umh/

你在尝试这个插件吗? http://demos.flesler.com/jquery/scrollTo/

【讨论】:

  • 是的,我正在尝试,但不确定它是否是插件。
  • @Johan - 一个很好的查找方法是谷歌“jquery scrollto”。如果函数不需要插件,第一个结果将带您直接访问 jQuery 文档。如果需要插件,前几个搜索结果应该很明显。一般而言,每当您对某个函数有任何疑问时,都应立即在 Google 上搜索“jquery FUNCTION_NAME”。
  • 我认为 Firefox 需要您为 $("html") 制作动画。这就是为什么大多数动画滚动教程都将$("html, body") 作为动画对象。参考:stackoverflow.com/questions/9769630/…
【解决方案2】:

如果你打算使用 jQuery 滚动到某处,请使用 .scrollTop:

$(document).ready(function() {
    var pos = $('#contact').position();
    $("#contact_menu").click(function() {
        $(body).animate({scrollTop:pos.top},800);  
    }); 
}); 

【讨论】:

  • 终于有东西了!谢谢!
【解决方案3】:

试试

$(document).ready(function() {
    $("#contact_menu").click(function() {
        $('body, html').animate({ scrollTop: $("#contact").offset().top }, 800);
    });
});

【讨论】:

  • 谢谢,现在完美运行!
【解决方案4】:

我不知道“scrollTo”功能,但如果确实存在,问题可能出在选择器上。根据浏览器的不同,您必须为 body 或 html 对象设置动画。我通常做的动画滚动顶部是这样的:

$('html,body').animate({ scrollTop: $('#contact').position().top+'px'}, 400, function() {})

请注意,我选择了 400 毫秒的持续时间,但您可以使用任何您想要的。最后一个“function()”参数是回调,这意味着它在动画完成时被调用。希望这会有所帮助。

【讨论】:

  • 是的,你是对的,scrollTo 不存在,或者它不再存在,但它已经通过 Hanlet 的回答解决了
  • @Johan - scrollTo() 需要a pluginscrollTop() 没有。
  • 而且 .scrollTop() 没有动画, .animate({scrollTop : value}) 有!
猜你喜欢
  • 2013-01-12
  • 2013-04-11
  • 2013-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多