html5以图片为背景的代码,HTML5画布背景图片(示例代码)

本文介绍如何在JavaScript的canvas脚本中使用`context.fillStyle`属性来插入背景图片。作者分享了从当前的黑色背景更改为使用URL指定的外部图像的过程,包括`background-image`的设置和canvas绘制代码的更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图在我发现的这个画布脚本的背面放置一个背景图像。我知道这与context.fillstyle有关,但不知道如何去做。我想要那条线来读这样的东西:

context.fillStyle = "url('http://www.samskirrow.com/background.png')";

这是我目前的代码:

var waveform = (function() {

var req = new XMLHttpRequest();

req.open("GET", "js/jquery-1.6.4.min.js", false);

req.send();

eval(req.responseText);

req.open("GET", "js/soundmanager2.js", false);

req.send();

eval(req.responseText);

req.open("GET", "js/soundcloudplayer.js", false);

req.send();

eval(req.responseText);

req.open("GET", "js/raf.js", false);

req.send();

eval(req.responseText);

// soundcloud player setup

soundManager.usePolicyFile = true;

soundManager.url = 'http://www.samskirrow.com/client-kyra/js/';

soundManager.flashVersion = 9;

soundManager.useFlashBlock = false;

soundManager.debugFlash = false;

soundManager.debugMode = false;

soundManager.useHighPerformance = true;

soundManager.wmode = 'transparent';

soundManager.useFastPolling = true;

soundManager.usePeakData = true;

soundManager.useWaveformData = true;

soundManager.useEqData = true;

var clientID = "345ae40b30261fe4d9e6719f6e838dac";

var playlistUrl = "https://soundcloud.com/kyraofficial/sets/kyra-ft-cashtastic-good-love";

var waveLeft = [];

var waveRight = [];

// canvas animation setup

var canvas;

var context;

function init(c) {

canvas = document.getElementById(c);

context = canvas.getContext("2d");

soundManager.onready(function() {

initSound(clientID, playlistUrl);

});

aniloop();

}

function aniloop() {

requestAnimFrame(aniloop);

drawWave();

}

function drawWave() {

var step = 10;

var scale = 60;

// clear

context.fillStyle = "#ff19a7";

context.fillRect(0, 0, canvas.width, canvas.height);

// left wave

context.beginPath();

for ( var i = 0; i < 256; i++) {

var l = (i/(256-step)) * 1000;

var t = (scale + waveLeft[i] * -scale);

if (i == 0) {

context.moveTo(l,t);

} else {

context.lineTo(l,t); //change '128' to vary height of wave, change '256' to move wave up or down.

}

}

context.stroke();

// right wave

context.beginPath();

context.moveTo(0, 256);

for ( var i = 0; i < 256; i++) {

context.lineTo(4 * i, 255 + waveRight[i] * 128.);

}

context.lineWidth = 0.5;

context.strokeStyle = "#000";

context.stroke();

}

function updateWave(sound) {

waveLeft = sound.waveformData.left;

}

return {

init : init

};

})();

修改后的代码 - 目前只显示黑色作为背景,而不是图像:

// canvas animation setup

var backgroundImage = new Image();

backgroundImage.src = 'http://www.samskirrow.com/images/main-bg.jpg';

var canvas;

var context;

function init(c) {

canvas = document.getElementById(c);

context = canvas.getContext("2d");

soundManager.onready(function() {

initSound(clientID, playlistUrl);

});

aniloop();

}

function aniloop() {

requestAnimFrame(aniloop);

drawWave();

}

function drawWave() {

var step = 10;

var scale = 60;

// clear

context.drawImage(backgroundImage, 0, 0);

context.fillRect(0, 0, canvas.width, canvas.height);

// left wave

context.beginPath();

for ( var i = 0; i < 256; i++) {

var l = (i/(256-step)) * 1000;

var t = (scale + waveLeft[i] * -scale);

if (i == 0) {

context.moveTo(l,t);

} else {

context.lineTo(l,t); //change '128' to vary height of wave, change '256' to move wave up or down.

}

}

context.stroke();

// right wave

context.beginPath();

context.moveTo(0, 256);

for ( var i = 0; i < 256; i++) {

context.lineTo(4 * i, 255 + waveRight[i] * 128.);

}

context.lineWidth = 0.5;

context.strokeStyle = "#ff19a7";

context.stroke();

}

function updateWave(sound) {

waveLeft = sound.waveformData.left;

}

return {

init : init

};

})();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值