私は簡単な Web クイズを開発しており、javascript を使用して、ユーザーが特定のレベルまたはスコアに到達したときに「ゲーム デッキ」をさまよう小さな画像 (1UP) を表示する効果を作成したいと考えています。ユーザーは時間内にクリックするだけで追加のライフを得ることができます。
このような効果を達成するための Jquery プラグインまたは JavaScript スニペットを知っていますか?
私は簡単な Web クイズを開発しており、javascript を使用して、ユーザーが特定のレベルまたはスコアに到達したときに「ゲーム デッキ」をさまよう小さな画像 (1UP) を表示する効果を作成したいと考えています。ユーザーは時間内にクリックするだけで追加のライフを得ることができます。
このような効果を達成するための Jquery プラグインまたは JavaScript スニペットを知っていますか?
実際、これを行うのは驚くほど簡単です。
img = document.createElement('img');
img.src = "myimage.png";
img.style.position = "absolute";
img.style.left = "50px";
img.style.top = "50px";
img.style.width = "50px"; // Make these match the image...
img.style.height = "50px"; // ...or leave them off
(明らかに、必要な座標とサイズを使用してください。)
他のものの上に表示されることを確認したい場合があります。
img.style.zIndex = 100; // Or whatever
document.body.appendChild(img);
を使用してwindow.setInterval
(または、setTimeout
やりたい方法に応じて)style.left
と のstyle.top
設定を変更して移動します。を使用Math.random
して、0 から 1 の間のランダムな浮動小数点数を取得し、それを乗算して実行しMath.floor
、座標を変更するための整数を取得できます。
これは 50,50 で画像を作成し、10 秒間 5 分の 1 秒ごとに (非常にぎくしゃくしたランダムな方法で; 私はそれを気の利いたように見せるために時間をかけませんでした) それをアニメーション化してから、それを削除します:
function createWanderingDiv() {
var img, left, top, counter, interval;
img = document.createElement('img');
img.src = "myimage.png";
left = 200;
top = 200;
img.style.position = "absolute";
img.style.left = left + "px";
img.style.top = top + "px";
img.style.width = "200px"; // Make these match the image...
img.style.height = "200px"; // ...or leave them out.
img.style.zIndex = 100; // Or whatever
document.body.appendChild(img);
counter = 50;
interval = 200; // ms
window.setTimeout(wanderAround, interval);
function wanderAround() {
--counter;
if (counter < 0)
{
// Done; remove it
document.body.removeChild(img);
}
else
{
// Animate a bit more
left += Math.floor(Math.random() * 20) - 10;
if (left < 0)
{
left = 0;
}
top += Math.floor(Math.random() * 10) - 5;
if (top < 0)
{
top = 0;
}
img.style.left = left + "px";
img.style.top = top + "px";
// Re-trigger ourselves
window.setTimeout(wanderAround, interval);
}
}
}
setTimeout
( [上記のように] を使用するよりも、反復ごとに再スケジュールすることを好みsetInterval
ますが、それは完全にあなたの呼び出しです。 を使用する場合はsetInterval
、間隔ハンドルを覚えておいてください。setInterval
window.clearTimeout
上記は生の DOM/JavaScript です。jQuery には、もう少し単純にするためのヘルパーがいくつか用意されていますが、ご覧のとおり、なくても非常に簡単です。