搜索
javascript - 页面加载时js修改div的大小问题
高洛峰
高洛峰 2017-04-10 16:23:44
[JavaScript讨论组]

问题是这样子的,如果我在页面定义了一个200(W)x100(H)的p,然后再通过js来修改这个p的宽度为100,浏览器加载该页面的时候,理论上我们应该是先看到一个200x100的p,然后再一闪变成了一个100x100的p,那么现在的问题是,我想实现的是浏览器加载到完成的这一个过程,我始终看到的是100x100的p,而不是由200x100的p一闪变成一个100x100的p,请问各位这个应该如何实现,有没有一些比较靠谱的做法呢?谢谢!!

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
    #p1 { width: 200px; height: 100px; background: red; }
    </style>
</head>
<body>
    <p id='p1'></p>
    <script>
    window.onload = function() { document.querySelector('#p1').style.width = '100px'; };
    </script>
</body>
</html>
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
PHP中文网

监听document的ready事件,在DOM树加载完成但是还没有渲染的时候,执行JS脚本
那么等JS执行完成后,p的style已经变化,渲染的时候就按你最新的大小显示

使用jQuery的代码

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="../script/jquery-2.1.3.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
           document.querySelector('#p1').style.width = '100px';
        });
        //window.onload = function() { document.querySelector('#p1').style.width = '100px'; };
    </script>
    <style>
        #p1 { width: 200px; height: 100px; background: red; }
    </style>
</head>

<body>

<p id='p1'></p>

</body>
</html>
PHP中文网

你可以先隐藏,改好了再显示

巴扎黑

如果你想看到变化过程,你可以延迟一会在执行

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板