当前位置:  开发笔记 > 编程语言 > 正文

如何滚动到jQuery中的元素?

如何解决《如何滚动到jQuery中的元素?》经验,为你挑选了4个好方法。

我在JavaScript中完成了以下代码,将焦点放在特定元素上(branch1是一个元素),

document.location.href="#branch1";

但是因为我也在我的网络应用程序中使用jQuery,所以我想在jQuery中执行上面的代码.我试过但不知道为什么它不起作用,

$("#branch1").focus();

上面的jquery(focus())代码不适用于div,而如果我尝试使用textbox相同的代码,那么它的工作,

请告诉我,如何使用jQuery将重点放在div elemnt上?

谢谢!



1> Banning..:

对于我的问题这个代码工作,我不得不导航到页面加载上的锚标记:

$(window).scrollTop($('a#captchaAnchor').position().top);

就此而言,您可以在任何元素上使用它,而不仅仅是锚标记.


而不是"$(this).scrollTop",你应该使用"$(window).scrollTop".当"this"恰好与"window"相同时,第一次只能工作.

2> User12334223..:

就像@ user293153我只是发现了这个问题而且似乎没有得到正确回答.

他的回答是最好的.但您也可以为元素设置动画.

$('html, body').animate({ scrollTop: $("#some_element").offset().top }, 500);


如果你在.live('click')中使用它并且你注意到窗口跳转到页面顶部,添加一个"return false"作为最后一个语句,它解决了IE和Chrome的问题:D
请注意,虽然在选择器中似乎不需要"html",但Firefox不会在没有它的情况下进行滚动.所以$('html,body')有效,$('body')不起作用(仅FF,在IE和Chrome中它可以正常工作).

3> MCurbelo..:

你可以像这样扩展jQuery功能:

jQuery.fn.extend({
scrollToMe: function () {
    var x = jQuery(this).offset().top - 100;
    jQuery('html,body').animate({scrollTop: x}, 500);
}});

然后:

$('...').scrollToMe();

简单 ;-)



4> CMS..:

检查jQuery.ScrollTo,我认为这是你想要的行为,请查看演示.


链接过时而不是真正的jQuery,而是一个jQuery插件.
这个答案首先出现在Google上.从新的jQuery翻新开始,新的正确的URL是http://plugins.jquery.com/scrollto/
即使那个地址现在已经过时了.作者的Github回购在https://github.com/flesler/jquery.scrollTo
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有