小编Suf*_*ick的帖子

如何防止背景图像闪烁变化

我正在通过javascript将一个重复的背景图像从画布应用到div:

var img_canvas = document.createElement('canvas');

img_canvas.width = 16;

img_canvas.height = 16;

img_canvas.getContext('2d').drawImage(canvas, 0, 0, 16, 16);

var img = img_canvas.toDataURL("image/png");

document.querySelector('#div').style.backgroundImage = 'url(' + img + ')';
Run Code Online (Sandbox Code Playgroud)

我必须经常更新它.问题是它在变化时闪烁,它似乎不会发生在Chrome中,但它在Firefox和Safari中确实很糟糕.有可能阻止这个吗?我认为它不会发生,因为它是一个dataurl,因此不需要下载.

解:

// create a new Image object
var img_tag = new Image();

// when preload is complete, apply the image to the div
img_tag.onload = function() {

    document.querySelector('#div').style.backgroundImage = 'url(' + img + ')';
}

// setting 'src' actually starts the preload
img_tag.src = img;
Run Code Online (Sandbox Code Playgroud)

html javascript css image

19
推荐指数
3
解决办法
2万
查看次数

是!0和!1优于1和0?

我注意到Closure Compiler将true和false(或1和0)编译为!0和!1.这对我来说没有意义,因为它的字符数是1和0的两倍.这是有原因的吗?有什么好处吗?

谢谢.

javascript

7
推荐指数
1
解决办法
185
查看次数

是什么导致了 Safari 中这种缓慢/延迟的音频播放?

var audio = new Audio('data:audio/wav;base64,UklGRoABAABXQVZFZm10IBAAAAABAAEAiBUAAIgVAAABAAgAZGF0YVwBAACHlqa1xNLg7vv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Tk1LSklHRkVEQ0JBQD8+Pj08PDs6Ojk5OTg4ODg3Nzc3Nzc3Nzc3Nzc3Nzg4ODg5OTk6Ojs7Ozw8PT4+P0BAQUJCQ0RFRUZHSElJSktMTU5OT1BRUlNUVVVWV1hZWltcXV1eX2BhYmNkZGVmZ2hpaWprbG1ubm9wcXFyc3R0dXZ3d3h5eXp6e3x8fX1+f3+AgIGBgoKCg4OEhISFhYWGhoaHh4eHh4iIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHhoaGhYWFhISEg4OCgoGBgIA=');

setInterval(function() {
    audio.play();
}, 50);
Run Code Online (Sandbox Code Playgroud)

此代码在 Chrome 和 Firefox 中正常工作,但在 Safari 中,每个声音之间的延迟超过一秒。我不知道为什么会这样,据我所知,没有兼容性问题。我想在我正在制作的游戏中以精确的时间和相当快的延迟播放声音,我怎样才能让它工作?

javascript browser safari audio

3
推荐指数
1
解决办法
3144
查看次数

标签 统计

javascript ×3

audio ×1

browser ×1

css ×1

html ×1

image ×1

safari ×1