2014-12-13 2 views
0

Я хочу связать изображение с CSS на Javascript, но мой код не работает.Ссылка на изображения с CSS на Javascript

CSS:

.backImage { 

    background-image: url("img/level1.jpg"); 
    background-repeat: repeat-y; 

} 

Javascript Код:

var x1 = 450; 
var y1 = 40; 
var speed1 = 5; 
var angle1 = 90; 
var mod1 = 1;   

var tmp= $("<div>").addClass('backImage'); 
var src = tmp.css('background-image').match(/[^"][^"]+/g)[1]; 

console.log(src); 

var back = new Image(); 
    back.src = src; 

function drawBackground() { 

    x1 += (speed1 * mod1) * Math.cos(Math.PI/180 * angle1); 
    y1 += (speed1 * mod1) * Math.sin(Math.PI/180 * angle1); 

    context.save(); 
    context.translate(x1, y1); 
    context.rotate(Math.PI/180 * angle1); 
    context.drawImage(back, -(back.width/2), -(back.height/2)); 
    context.restore(); 

} 
+0

Что вы имеете в виду под "ссылка?" Вы пытались переместить вызов 'context.drawImage (...)' в обработчик onload изображения? Зачем вам это нужно? Похоже, [проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+0

Вы имеете в виду это (только что обновленный код) –

+0

«но мой код не работает» - что конкретно не работает? вы не можете получить имя файла? вы не можете назначить его back.src? что? – Deryck

ответ

1

Я предполагаю, что вы хотите, чтобы извлечь изображение из источника CSS background-image и нарисовать его на холсте. Вот как это делается.

var tmp = $("<div>").addClass('backImage'); 
 
var src = tmp.css('background-image').match(/[^"][^"]+/g)[1]; 
 
var canvas = document.getElementById('canvas') 
 
var context = canvas.getContext('2d'); 
 

 
console.log(src); 
 

 
var back = new Image(); 
 
back.src = src; 
 
back.onload = drawBackground; 
 

 
function drawBackground() { 
 
    canvas.width = back.width; 
 
    canvas.height = back.height; 
 
    context.drawImage(back, 0, 0); 
 
}
.backImage { 
 
    background-image: url("http://placehold.it/200/200"); 
 
    background-repeat: repeat-y; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<canvas id="canvas"></canvas>

+0

Фон не появляется, вот скрип, который я сделал: http://jsfiddle.net/jesse_meth/xp8echja/ –

+0

Но на скрипке у меня уже есть javascript, я не должен этого использовать. –

+0

@ TheGoodGuy - я не понимаю. Что вы ожидаете от загрузки в качестве фона? –

Смежные вопросы