jQuery:将dom元素放置在视口中心的最佳方法
我正在寻找一种合适的方法,将弹出div元素放置在当前视图区域的中心 例如:我们有一些div元素,带有jQuery:将dom元素放置在视口中心的最佳方法,jquery,html,Jquery,Html,我正在寻找一种合适的方法,将弹出div元素放置在当前视图区域的中心 例如:我们有一些div元素,带有{display:none;position:absolute}和几个按钮,一个在文档顶部,第二个在中间,最后一个在底部的某个地方。单击此按钮中的任何一个,div应显示在当前查看区域的中心 $(".btnClass").click(function(){ //some actions for positioning here $(div_id).show() }) 下面的步骤
{display:none;position:absolute}
和几个按钮,一个在文档顶部,第二个在中间,最后一个在底部的某个地方。单击此按钮中的任何一个,div应显示在当前查看区域的中心
$(".btnClass").click(function(){
//some actions for positioning here
$(div_id).show()
})
下面的步骤就可以了。虽然还有其他的方法(使用CSS,利润率,溢出等)…所以这可能不是你的问题的答案取决于你认为“最好”是什么。
您可能需要调整scrollLeft和scrollTop…我被分散了注意力,无法思考(叹气,我希望我能再次拥有我的私人办公室)。这很好,但是如果我有一个长窗口,其中的内容在视图之外,并且我尝试将一个元素居中,那么当前视图为什么会跳转?该代码确实将一个元素定位在中心,但是滚动条会跳起来,并且由于某种原因滚动条会发生一些变化。
$(".btn_class").click(function(){
var win = $(window),
winW = win.width(),
winH = win.height(),
scrollTop = win.scrollTop(),
scrollLeft = win.scrollLeft(),
container = $("#div_id").css({"display":"block","visibility":"hidden"}),
contW = container.width(),
contH = container.height(),
left = (winW-contW)/2+scrollLeft,
top = (winH-contH)/2+scrollTop;
container.css({"left":left,"top":top,"visibility":"visible"});
});