看源码看不懂了求解

1.如图所示开始是一片浅灰色的背景色,鼠标滑过的时候图片一片一片的显示出来。看源码看不懂了求大神给解析一下,代码很短
图片描述

图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>for的图片生成应用</title>
    <style>
        #picture {
            height: 600px;
            width: 513px;
            position: relative;
            display: block;
            overflow: hidden;
        }
        #cover {
            position: absolute;
            height: 600px;
            width: 520px;
            top: 0;
            left: 0;
            display: block;
            background: transparent;
            font-size: 0;
        }
        div {
            display: inline-block;
            height: 50px;
            width: 50px;
            border: 1px solid #eee;
            background: #eee;
            margin: 0;
        }
    </style>
    <script>
         window.onload = function(){

             var oCover = document.getElementById('cover'),
                 str = '', 
                 bits = document.getElementsByTagName('div');

             for (var i=0; i<200; i++) {
                 str += '<div></div>';
             }
             oCover.innerHTML = str;

             for (var i=0; i<304; i++) {
                 bits[i].onmouseover = function(){
                     this.style.background = 'transparent';
                 }
             }


         }
    </script>
</head>
<body>
    <section id="picture">
        <img src="2-img/pic.jpg">
        <section id="cover"></section>
    </section>
</body>
</html>

为什么创建200个div,却for(i=0;i<304???

阅读 2.4k
2 个回答

其实我比较好奇 为什么 bits是有值的…

明明getElementsByTagName的时候,innerHTML还没有赋值啊!!

至于304可能只是一个恶趣味,在浏览器里bits里只有200个元素。

写 200 就可以呀

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题