私はキャンバスを持っています。私はズームインボタンが押されるまでそれをズームし、ズームアウトボタンが押されるまでそれをズームアウトしなければなりません。私はそれを動作させることができましたが、それは遅れて動作します。ボタンを放してもズームインまたはズームアウトを続けます。これはこれまで私が試したことです。私を助けてください。ライブサイトでHereを確認することができます。Jqueryのズームインとズームアウトは、スムースではなくジャークで動作します
<script language="javascript">
var timeout, clicker = $('#zoomin'),
clicker2 = $('#zoomout');
clicker.mousedown(function() {
timeout = setInterval(function() {
var wd = $("#canvas").width();
var ht = $("#canvas").height();
wd = parseInt(wd) + 250;
ht = parseInt(ht) + 250;
$("#canvas").animate({
width: wd,
height: ht
});
var ctx = canvas.getContext("2d");
ctx.drawImage(backgroundImage, 0, 0, wd - 1, ht - 1);
ctx.drawImage(outlineImage, 0, 0, wd - 1, ht - 1);
redraw();
}, 500);
return false;
});
clicker2.mousedown(function() {
timeout = setInterval(function() {
var wd = $("#canvas").width();
var ht = $("#canvas").height();
wd = parseInt(wd) - 250;
ht = parseInt(ht) - 250;
if (wd < 500) {
return false;
}
$("#canvas").animate({
width: wd,
height: ht
});
var ctx = canvas.getContext("2d");
ctx.drawImage(backgroundImage, 0, 0, wd - 1, ht - 1);
ctx.drawImage(outlineImage, 0, 0, wd - 1, ht - 1);
redraw();
}, 500);
return false;
});
$(document).mouseup(function() {
clearInterval(timeout);
return false;
});
$("#zoomout").mousedown(function() {
var wd = $("#canvas").width();
var ht = $("#canvas").height();
wd = parseInt(wd) - 250;
ht = parseInt(ht) - 250;
if (wd < 500) {
return false;
}
$("#canvas").animate({
width: wd,
height: ht
});
var ctx = canvas.getContext("2d");
ctx.drawImage(backgroundImage, 0, 0, wd - 1, ht - 1);
ctx.drawImage(outlineImage, 0, 0, wd - 1, ht - 1);
redraw();
console.log(wd + ":" + ht);
});
$("#zoomin").click(function() {
var wd = $("#canvas").width();
var ht = $("#canvas").height();
wd = parseInt(wd) + 250;
ht = parseInt(ht) + 250;
$("#canvas").animate({
width: wd,
height: ht
});
var ctx = canvas.getContext("2d");
ctx.drawImage(backgroundImage, 0, 0, wd - 1, ht - 1);
ctx.drawImage(outlineImage, 0, 0, wd - 1, ht - 1);
redraw();
console.log(wd + ":" + ht);
});
$("#zoomout").click(function() {
var wd = $("#canvas").width();
var ht = $("#canvas").height();
wd = parseInt(wd) - 250;
ht = parseInt(ht) - 250;
if (wd < 500) {
return false;
}
$("#canvas").animate({
width: wd,
height: ht
});
var ctx = canvas.getContext("2d");
ctx.drawImage(backgroundImage, 0, 0, wd - 1, ht - 1);
ctx.drawImage(outlineImage, 0, 0, wd - 1, ht - 1);
redraw();
console.log(wd + ":" + ht);
});
</script>
クロームで私にとってうまくいきます!あなたのブラウザは何ですか? –
あなたは間違った場所でcleartimeoutをしています。 – Jai
私はfirefox .. –