我怎样才能滚动到页面上使用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();
滚动到页面坐标
使用scrollTop
或scrollLeft
属性animationhtml
和body
元素
$('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 }); } }); };