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

时间:2011-05-17 09:57:16

标签: jquery scroll

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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永远不会达到道具的价值(" scrollheight")并且必须编写diff和middle的书面计算。