Javascript jquery resize()将多个动态宽度div居中
情况如下: 我有3个全宽部分,标题垂直居中,按钮div左对齐。 调整大小时,我想将按钮居中,当前位置为:绝对 我的想法是: 调整窗口大小时Javascript jquery resize()将多个动态宽度div居中,javascript,jquery,html,Javascript,Jquery,Html,情况如下: 我有3个全宽部分,标题垂直居中,按钮div左对齐。 调整大小时,我想将按钮居中,当前位置为:绝对 我的想法是: 调整窗口大小时 捕获外部Div的宽度 捕获内部Div的宽度 从外部减去内部以确定剩余空间 将剩菜分成两等份 使用.css()应用以固定内部Div两侧的边距 以下是我根据这个想法编写的脚本 jQuery( window ).resize(function() { var parentWidth = $( ".search__btn--wrapper" ).
jQuery( window ).resize(function() {
var parentWidth =
$( ".search__btn--wrapper" ).parent().width();
var childWidth =
$( ".search__btn--wrapper" ).width();
var marginWidth =
parentWidth - childWidth;
var halfWidth =
marginWidth/2;
$( ".search__btn--wrapper" ).css("left" , halfWidth);
$( ".search__btn--wrapper" ).css("right" , halfWidth);
console.log('width is now' + $( window ).width() );
console.log('parent of button element width:' + parentWidth );
console.log('button element width:' + childWidth );
console.log('leftover margins' + marginWidth );
console.log('needed margins' + halfWidth );
});
到目前为止的问题
尽管我能够在每次调整大小时获得外部和内部的宽度,但由于某种原因,marginWidth变量不会更新。
同样适用于半宽度
我还尝试为每个对象动态地执行此操作,而不仅仅是第一个,但这是第二个操作,我觉得只需要某种.each()
循环
第一部分我遗漏了什么?
我觉得这是一件容易忽略的事情:我不明白用jQuery而不是CSS编写代码需要什么。您可以将绝对div居中于div relative中:
position:absolute;
left:0;
right:0;
margin:0 auto;
这与我在网站的前一部分中所做的差不多。直到我进一步研究它,我才发现为了使文本中间对齐,我遗漏了什么。我需要添加一个线条高度来欺骗系统,因为否则它就不会对我产生影响。谢谢你的提醒!