我怎样才能滚动到页面上使用jQuery的特定位置?

是否有可能使用jQuery滚动到页面上的特定位置?

我想滚动的位置必须有:

<a name="#123">here</a> 

或者它可以移动到一个特定的DOM ID?

jQuery Scroll插件

因为这是一个问题,标签为jquery我不得不说,这个库有一个非常漂亮的插件平滑滚动,你可以在这里find它: http : //plugins.jquery.com/scrollTo/

摘自文件:

 $('div.pane').scrollTo(...);//all divs w/class pane 

要么

 $.scrollTo(...);//the plugin will take care of this 

自定义jQuery滚动function

你可以通过定义自定义滚动jquery函数来使用一个非常轻量级的方法

 $.fn.scrollView = function () { return this.each(function () { $('html, body').animate({ scrollTop: $(this).offset().top }, 1000); }); } 

并使用它像:

 $('#your-div').scrollView(); 

滚动到页面坐标

使用scrollTopscrollLeft属性animationhtmlbody元素

 $('html, body').animate({ scrollTop: 0, scrollLeft: 300 }, 1000); 

纯javascript

window.scroll滚动

 window.scroll(horizontalOffset, verticalOffset); 

只是总结一下,使用window.location.hash来跳转到带有ID的元素

 window.location.hash = '#your-page-element'; 

直接在HTML(可访问性增强)

 <a href="#your-page-element">Jump to ID</a> <div id="your-page-element"> will jump here </div> 

是的,即使在普通的JavaScript中也很容易。 你给一个元素一个id,然后你可以使用它作为一个“书签”:

 <div id="here">here</div> 

如果你想在用户点击一个链接时滚动到那里,你可以使用try-and-true方法:

 <a href="#here">scroll to over there</a> 

要以编程方式执行,请使用scrollIntoView()

 document.getElementById("here").scrollIntoView() 

没有必要使用任何插件,你可以这样做:

 var divPosition = $('#divId').offset(); 

然后使用这个滚动文档到特定的DOM:

 $('html, body').animate({scrollTop: divPosition.top}, "slow"); 

这是一个纯粹的JavaScript版本:

 location.hash = '#123'; 

它会自动滚动。 请记住添加“#”前缀。

纯Javascript:

 window.location = "#elementId" 
 <div id="idVal"> <!--div content goes here--> </div> ... <script type="text/javascript"> $(document).ready(function(){ var divLoc = $('#idVal').offset(); $('html, body').animate({scrollTop: divLoc.top}, "slow"); }); </script> 

这个例子显示了在这种情况下定位到特定的div id,即'idVal'。 如果你有后续的div /表格,通过ajax在这个页面打开,那么你可以指定独特的div,并调用脚本滚动到div的每个内容的特定位置。

希望这会有用。

 <script type="text/javascript"> $(document).ready(function(){ $(".scroll-element").click(function(){ $('html,body').animate({ scrollTop: $('.our_companies').offset().top }, 1000); return false; }); }) </script> 

尝试这个

 <div id="divRegister"></div> $(document).ready(function() { location.hash = "divRegister"; }); 

这是@ juraj-blahunka的轻量级方法的变种。 这个函数并不假定容器是文档,只有当项目不在视图中时才滚动。 animation排队也被禁用,以避免不必要的弹跳。

 $.fn.scrollToView = function () { return $.each(this, function () { if ($(this).position().top < 0 || $(this).position().top + $(this).height() > $(this).parent().height()) { $(this).parent().animate({ scrollTop: $(this).parent().scrollTop() + $(this).position().top }, { duration: 300, queue: false }); } }); };