これは私の最初のhtml5プロジェクトであり、その要点を理解するには、少し助けが必要です。jquery UIスライダーを使用して不透明度の値をキャンバスに送信しましたが、非常にうまく機能します...しかし、スライダーがオフの位置にあり、値がゼロの場合、画像を完全にオフにすることはできません。これが私がやろうとしていることのフィドルです:http://jsfiddle.net/N6wZZ/2/
これが私の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;
}
}
ご覧のとおり、2番目の画像をオフにするか、キャンバスからノックアウトするための一連の回避策を作成しました。どんな助けでも素晴らしいでしょう。