這是我的第一個html5項目,獲得它的要點,需要一些幫助。我使用jQuery UI滑塊向畫布發送不透明度值,它的工作原理非常好......但是當滑塊處於關閉位置且值爲零時,我無法完全關閉圖像。這裏是什麼,我試圖做一個小提琴:http://jsfiddle.net/N6wZZ/2/html5從畫布中刪除
這裏是我的JS:
$("#slider").slider({
animate: true,
range: "min",
value: 0,
min: 0,
max: 0.9,
step: .01,
create: function (event, ui) {
var opacityValue = '0.0';
canvasFunction(opacityValue);
},
slide: function (event, ui) {
$('#hiddenField').attr('value', ui.value);
$("#slider-result").html(ui.value);
var opacityValue = $('#hiddenField').val();
if (opacityValue == 0) {
var opacityValue = 0;
var workAroundVar = 300;
var workAroundVarTwo = 0;
canvasFunction(opacityValue, workAroundVar, workAroundVarTwo);
}
else {
var workAroundVar = 0;
var workAroundVarTwo = 300;
canvasFunction(opacityValue, workAroundVar, workAroundVarTwo);
}
}
});
function canvasFunction(opacityValue, workAroundVar, workAroundVarTwo){
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var img1 = loadImage('http://moosepic.com/test2.png', main);
var img2 = loadImage('http://moosepic.com/test.png', main);
var imagesLoaded = 0;
function main() {
imagesLoaded += 1;
if (imagesLoaded == 2) {
// composite now
ctx.drawImage(img1, 0, 0, 300, 300);
ctx.globalAlpha = opacityValue;
ctx.drawImage(img2, workAroundVar, workAroundVar, workAroundVarTwo, workAroundVarTwo);
}
}
function loadImage(src, onload) {
var img = new Image();
img.onload = onload;
img.src = src;
return img;
}
}
,你可以看到我做了一堆的解決方法來關閉第二圖像或只是把它從畫布上敲下來。任何幫助都是極好的。
當您第一次繪製畫布時,workAroundVar 1和2設置爲什麼?我看到它們是空白的。 –
這是因爲您的代碼的整體邏輯錯誤。每次滑塊移動時不要加載圖像,加載一次,然後重新繪製畫布。擺脫您的解決方法變量。他們也錯了。 – akonsu
@akonsu但加載圖像重繪權? –