初めてhtml5を使用して、このjquery uiスライダーを取得して、このhtml5キャンバスの不透明度に正しい値を送信しようとしました。いくつかのグーグルといじりの後、私はそれをここで動作させています: http://jsfiddle.net/y54Es/25/使用すると、スライダーが移動するまで画像が表示されないことがわかります。それは私が関数を持っている順序に関係していることを知っています.とにかくそれを機能させることはできません.これが私のコードです.JS:
$("#slider").slider({
animate: true,
range: "min",
value: 0.5,
min: 0,
max: 0.9,
step: .01,
slide: function (event, ui) {
$('#hiddenField').attr('value', ui.value);
$("#slider-result").html(ui.value);
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var valueVar = $('#hiddenField').val();
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);
if (valueVar == 0) {
} else {
ctx.globalAlpha = valueVar;
ctx.drawImage(img2, 0, 0, 300, 300);
}
}
}
function loadImage(src, onload) {
var img = new Image();
img.onload = onload;
img.src = src;
return img;
}
}
});
スライダーが完全に左にあるときに2番目の画像を完全にキャンセルする方法についてのヘルプは素晴らしいでしょう...そして、最初の画像をキャンバスのオンロードにロードするのを手伝ってくれる人がいれば、それも素晴らしいでしょう.