如何滚动到页面的中间(50%)

如果不使用流行的scrollTo插件,如何滚动到页面/ div的垂直中间(50%)?

这会将div的内部滚动滚动到它的垂直中间

var myDiv = $("#yourdiv"); var scrollto = myDiv.offset().top + (myDiv.height() / 2); myDiv.animate({ scrollTop: scrollto}); 

JQuery – 跳转到scroll-div的vert / hori中间

垂直

 $("#centralize-ver").click(function(){//centralize vertical var scrollableDivJ=$("#scroll-div"); scrollableDivJ.scrollTop("1000000");//scroll to max var scrollHeight=scrollableDivJ.prop("scrollHeight"); var diff=(scrollHeight-scrollableDivJ.scrollTop())/2; var middle=scrollHeight/2-diff; scrollableDivJ.scrollTop(middle); }); 

 $("#centralize-hor").click(function(){//centralize horizontal var scrollableDivJ=$("#scroll-div"); scrollableDivJ.scrollLeft("1000000");//scroll to max var scrollWidth=scrollableDivJ.prop("scrollWidth"); var diff=(scrollWidth-scrollableDivJ.scrollLeft())/2; var middle=scrollWidth/2-diff; scrollableDivJ.scrollLeft(middle); }); 

将“#scroll-div”替换为div。 “身体”不适合我。

的jsfiddle

这是唯一适合我的解决方案。 实际上它是一个2小时尝试的解决方案,它可以很好地完成它的工作。 也许有人可以解释为什么scrollTop永远不会达到prop(“scrollheight”)的值,并且diff和middle的书面计算是必要的。