Ceci est mon premier projet html5, obtenir l'essentiel de celui-ci, besoin d'un peu d'aide. J'ai utilisé un curseur d'interface utilisateur jquery pour envoyer une valeur d'opacité au canevas et cela fonctionne plutôt bien ... mais je n'arrive pas à désactiver complètement l'image lorsque le curseur est en position d'arrêt avec la valeur zéro. Voici un violon de ce que je suis en train de faire: http://jsfiddle.net/N6wZZ/2/html5 enlever de la toile
Voici mes 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;
}
}
comme vous pouvez le voir, je l'ai fait un tas de solutions de contournement pour désactiver la deuxième image ou tout simplement assommez-le de la toile. Toute aide serait géniale.
Lorsque vous dessinez la zone de dessin la première fois, à quoi sont définies workAroundVar 1 et 2? Je les vois vides. –
cela se produit parce que la logique globale de votre code est erronée. ne chargez pas les images à chaque fois que le curseur se déplace, chargez-les une seule fois, puis redessinez simplement la toile. se débarrasser de vos variables de contournement. ils ont tort aussi. – akonsu
@akonsu Mais le chargement de l'image est retracé à droite? –