Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Jquery 水平居中div,不带“;“跳跃”;_Jquery_Css_Positioning_Css Position - Fatal编程技术网

Jquery 水平居中div,不带“;“跳跃”;

Jquery 水平居中div,不带“;“跳跃”;,jquery,css,positioning,css-position,Jquery,Css,Positioning,Css Position,此外,我还添加了to以集中放置#containerdiv 然而,现在发生的是: 页面加载在默认位置 JavaScript插入并重新定位#容器 因为主图像相当大,所以在内容“跳转”到中心位置之前有明显的延迟 正如我在原始帖子中提到的,水平放置内容的正常方式是 #container { margin: 0 auto } 但我不能这样做,因为布局(我没有写)不必要地使用了大量绝对定位 我有没有办法消除这种跳跃效应,同时将内容放在中心位置 谢谢 这有点脏,但不要将javascript放在documen

此外,我还添加了to以集中放置
#container
div

然而,现在发生的是:

  • 页面加载在默认位置
  • JavaScript插入并重新定位
    #容器
  • 因为主图像相当大,所以在内容“跳转”到中心位置之前有明显的延迟

    正如我在原始帖子中提到的,水平放置内容的正常方式是

    #container { margin: 0 auto }
    
    但我不能这样做,因为布局(我没有写)不必要地使用了大量绝对定位

    我有没有办法消除这种跳跃效应,同时将内容放在中心位置


    谢谢

    这有点脏,但不要将javascript放在document onload事件上。将其笔直放置在end div的闭合标签后。这将使其不太明显

    如果您知道容器的宽度,则可以始终以绝对定位方式将其居中:

    #container { position: absolute; left: 50%; margin-left: <negative width divided by 2>; }
    
    #容器{位置:绝对;左:50%;左边距:;}
    
    或将其设置为可见性:隐藏;然后在使用javascript将其定位后,再次使用javascript将其设置为可见。甚至把它淡入。 只有当您的访问者启用了js时才是好的。
    您可以将其设置为隐藏在onload事件中或使用js在div之后。因此,如果js被停用,它仍然存在。

    也许可以在页面加载时将CSS设置为隐藏
    #容器

    #container { display:none; }
    
    设置边距后,再执行
    .fadeIn()

    $(document).ready(function() {
    
        setMargins();
    
        $('#conatiner').fadeIn();
    
        $(window).resize(function() {
            setMargins();    
        });
    });
    

    首先给容器一个CSS属性“visibility:hidden”,并在定位完成后让Javascript将其删除。看起来元素会在页面的其余部分之后稍微加载,但它不会跳转,而且由于您没有使用“显示:无”,容器会将其余内容推出其边界框,即使其不可见,因此页面的其余部分在加载时也不会跳转。

    我不确定我是否完全理解这个问题。。看看CSS,div是水平居中的吗?考虑这个规则:

    #container {
      height:616px;
      width:1024px;
      left:50%;
      margin-left:-512px;
      margin-top:100px;
      top: 0px;  
    }
    
    <>它有一个宽度为1024px,我们说左边的位置正好在页面的中间。然后,等于div宽度一半的负左边距使div居中

    另外,我注意到一些人建议将div设置为可见:隐藏,然后在定位div后使用JS将其切换回。这不是一个好的做法,因为没有JS的用户将永远看不到任何东西。最好在默认情况下显示,使用JS隐藏,然后在其他所有操作完成后重新显示


    如果我误解了,请发表评论

    听起来是时候重构HTML/CSS了;)一个可怕的方法,我甚至不会把它作为一个答案,就是使容器在装载时不可见,并在跳转后设置显示。@Don:容器div的结束标记。他指的是容器div的结尾,就像so asf一样……这样做是因为它防止了以后的回流,对吗?还是有不同的解释?