问答详情
源自:3-1 Canvas 时钟外边框圆

为什么js放在canvas后面才可以显示圆形效果,将script放在head和canvas前都没效果

<body>

<!--<script src="js/time.js"></script>        没效果-->

<div>

<canvas id="clock" height="200" width="200"></canvas> 

</div>

</body>

<script src="js/time.js"></script>      <!--有效果-->


提问者:0011nj 2018-04-27 01:00

个回答

  • 歐炳傑
    2019-09-01 17:41:45

    浏览器的执行顺序是从上到下加载解析的,放在head的js文件会比body中的html元素优先执行,此时canvas元素还未被浏览器解析渲染出来,所以没有效果

    可以在将代码放在

     window.onload = function () {

        // 具体代码

    }

    中,这样就能保证js文件先执行也能渲染出时钟

  • 慕粉1447279180
    2018-04-28 15:57:54

    浏览器加载文件是逐行加载,如果放在 canvas 之前,浏览器将优先解析 js 文件,此时 canvas 还没有解析出来,控制台会报错且页面没有任何效果。

    所以文件位置的安排很重要。