Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery resize()将多个动态宽度div居中_Javascript_Jquery_Html - Fatal编程技术网

Javascript jquery resize()将多个动态宽度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" ).

情况如下:

我有3个全宽部分,标题垂直居中,按钮div左对齐。 调整大小时,我想将按钮居中,当前位置为:绝对

我的想法是: 调整窗口大小时

  • 捕获外部Div的宽度
  • 捕获内部Div的宽度
  • 从外部减去内部以确定剩余空间
  • 将剩菜分成两等份
  • 使用.css()应用以固定内部Div两侧的边距
  • 以下是我根据这个想法编写的脚本

    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;
    

    这与我在网站的前一部分中所做的差不多。直到我进一步研究它,我才发现为了使文本中间对齐,我遗漏了什么。我需要添加一个线条高度来欺骗系统,因为否则它就不会对我产生影响。谢谢你的提醒!