繁体   English   中英

为什么这个脚本不适用于Chrome?

[英]Why doesn't this script work in Chrome?

这是我前段时间使用的旧脚本。 现在我注意到,当我添加到我的个人网站https://andreaconsole.altervista.org时 ,它仍然适用于IE,但不适用于Chrome。 另一方面,它作为一个片段。 网站管理员的Chrome工具不会显示任何错误:您能看到原因吗?

 var speed = 30; // lower number for faster var flakes = 60; // number of flakes var flake_image = "https://andreaconsole.altervista.org/immagini/snowstorm/snow.gif"; // location of snowflake graphic var xmasstartday = 8; var xmasstartmonth = 10; var xmasstopday = 8; var xmasstopmonth = 0; //check if we are on xmas time var datenow = new Date(); var monthnow = datenow.getMonth(); var daynow = datenow.getDate(); if (!(((monthnow == xmasstartmonth) && (daynow >= xmasstartday)) || ((monthnow == xmasstopmonth) && (daynow <= xmasstopday)))) { throw new Error('This is not an error. This is just to abort javascript'); } /***************************\\ *Winter Drifting Snow Effect* *(c) 2006 mf2fm web-design* * http://www.mf2fm.com/rv * * DON'T EDIT BELOW THIS BOX * \\***************************/ /* prelevato ed illustrato su Web-Link.it ******************************************/ var swide, shigh; var dx = new Array(); var xp = new Array(); var yp = new Array(); var am = new Array(); var sty = new Array(); window.onload = function() { if (document.getElementById) { var k, f, b; b = document.createElement("div"); b.style.position = "absolute"; b.setAttribute("id", "bod"); document.body.appendChild(b); set_scroll(); set_width(); for (var i = 0; i < flakes; i++) { dx[i] = 0; am[i] = Math.random() * 20; xp[i] = am[i] + Math.random() * (swide - 2 * am[i] - 25); yp[i] = Math.random() * shigh; sty[i] = 0.75 + 1.25 * Math.random(); f = document.createElement("div"); f.style.position = "absolute"; f.setAttribute("id", "flk" + i); f.style.zIndex = i; f.style.top = yp[i] + "px"; f.style.left = xp[i] + "px"; k = document.createElement("img"); k.src = flake_image; f.appendChild(k); b.appendChild(f); } setInterval("winter_snow()", speed); window.onresize = set_width; window.onscroll = set_scroll; } } function set_width() { if (document.documentElement && document.documentElement.clientWidth) { swide = document.documentElement.clientWidth; shigh = document.documentElement.clientHeight; } else if (typeof(self.innerHeight) == "number") { swide = self.innerWidth; shigh = self.innerHeight; } else if (document.body.clientWidth) { swide = document.body.clientWidth; shigh = document.body.clientHeight; } else { swide = 800; shigh = 600 } } function set_scroll() { var sleft, sdown; if (typeof(self.pageYOffset) == "number") { sdown = self.pageYOffset; sleft = self.pageXOffset; } else if (document.body.scrollTop || document.body.scrollLeft) { sdown = document.body.scrollTop; sleft = document.body.scrollLeft; } else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) { sleft = document.documentElement.scrollLeft; sdown = document.documentElement.scrollTop; } else { sdown = 0; sleft = 0; } document.getElementById("bod").style.top = sdown + "px"; document.getElementById("bod").style.left = sleft + "px"; } function winter_snow() { for (var i = 0; i < flakes; i++) { yp[i] += sty[i]; if (yp[i] > shigh - 30) { xp[i] = am[i] + Math.random() * (swide - 2 * am[i] - 25); yp[i] = 0; sty[i] = 0.75 + 1.25 * Math.random(); } dx[i] += 0.02 + Math.random() / 10; document.getElementById("flk" + i).style.top = yp[i] + "px"; document.getElementById("flk" + i).style.left = (xp[i] + am[i] * Math.sin(dx[i])) + "px"; } } 

PS:编辑不断向我询问更多细节,但我没有更多细节可以添加。 我应该简单地添加随机文字让他开心吗?

在Chrome 62中,雪花的高度和宽度均为零。

添加以下行以显式设置它们,可能就在下面

f.style.width = "25px";
f.style.height = "25px";

所以你的onload函数变成:

window.onload = function() {
    if (document.getElementById) {
        var k, f, b;
        b = document.createElement("div");
        b.style.position = "absolute";
        b.setAttribute("id", "bod");
        document.body.appendChild(b);
        set_scroll();
        set_width();
        for (var i = 0; i < flakes; i++) {
            dx[i] = 0;
            am[i] = Math.random() * 20;
            xp[i] = am[i] + Math.random() * (swide - 2 * am[i] - 25);
            yp[i] = Math.random() * shigh;
            sty[i] = 0.75 + 1.25 * Math.random();
            f = document.createElement("div");
            f.style.position = "absolute";
            f.setAttribute("id", "flk" + i);
            f.style.zIndex = i;
            f.style.top = yp[i] + "px";
            f.style.left = xp[i] + "px";

            // Explicitly set height and width
            f.style.width = "25px";
            f.style.height = "25px";

            k = document.createElement("img");
            k.src = flake_image;
            f.appendChild(k);
            b.appendChild(f);
        }
        setInterval("winter_snow()", speed);
        window.onresize = set_width;
        window.onscroll = set_scroll;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM