質問

私が達成したいこと:

カーソルが画像(マウスオーバー)の上にあり、画像がクリックされたとき(マウスダウンクリック)ときに画像スワップを最初に発生させます。

例:

緑の矢の画像があります。マウスの上にある場合、黄色の矢印の画像と交換され、クリックすると茶色の矢印の画像が交換されます(ただし、クリックが保持されている限り)。デフォルトの緑の矢印は常に復元されます。

<img src="green-default.png" />
<img src="yellow-over.png" />
<img src="brown-mousedownclick.png" />

私が試したこと:

マウスオーバーイベントで動作するjQuery画像スワップを適用しました。

https://github.com/tszming/jquery-swapimage

<script type="text/javascript"> 
jQuery.swapImage(".swapImage"); 
</script>

<img src="green-default.png" class="swapImage {src: 'yellow-over.png'}" />

どんなアドバイスも攻撃されます。

受け入れられたソリューション

Senadのソリューション(以下)は、jQueryの代わりにCSSの使用を伴いました。リンク要素には、交換される画像の寸法のブロックになるようにスタイルを整えるクラスが与えられます。 3つの画像は、リンク要素のデフォルト、ホバー、アクティブ状態に背景画像として適用されます。 Senadのソリューションとデモコードを以下に示します。

役に立ちましたか?

解決

CSSと一緒に行きます

CSS

a.your_link_button_class { 
   background: url('green-default.png') no-repeat;
   height: 20px;
   width: 20px;
   display: block;
}
a.your_link_button_class:HOVER {
   background: url('yellow-over.png') no-repeat;
}
a.your_link_button_class:ACTIVE {
   background: url('brown-mousedownclick.png') no-repeat;
}

HTML

<a class="your_link_button_class" href="#nothing"></a>

ポインターカーソルが必要な場合は、CSSを介して追加することもできます cursor: pointer;

これは、クラス「your_link_button_class」とのすべてのリンクに対応します

リンクアクションを防ぐためのjQueryで

$(document).ready(function() { $('a.your_link_button_class').click( function() { return false; }); });

他のヒント

一緒に行きます jQueryを使用した画像のプリロード 最初に結合します hovermousedown あなたに img 要素とSRC属性を正しい画像に変更します。

私は使うだろう hover それは処理するので mouseout としても mouseover.

使用しているので mousedown 私も使用します mouseup IMGを変更します。

アップデート

jqueryを使用する必要はありません hover 効果、CSSでそれを行うことができます。その後 mousedownmouseup CSSクラスを変更して、目的の効果を実現します。

マウスオーバー/アウトにバインドし、ムーズダウン/アップ状態を保存するため、マウスバットンがまだダウンしている間、マウスアウトイベントは茶色のアイコンを削除しません。次に、マウスバットンが押されているか、マウスがアイコンの上にあるかどうかを呼び出して外観にします。ない場合は、デフォルトの画像を設定します。

$('#img').mouseover(function() {
    $(this).data('over',true);
    updateImage($(this));
}).mousedown(function() {
    $(this).data('down',true);
    updateImage($(this));
}).mouseup(function() {
    $(this).data('down',false);
    updateImage($(this));
}).mouseout(function() {
    $(this).data('over'false);
    updateImage($(this));
});

function updateImage(elem) {
    if (elem.data('down')) {
        elem.attr('src','brown.png');
    } else if (elem.data('over')) {
        elem.attr('src','yellow.png');
    } else {
        elem.attr('src','green.png');
    }
}

使用できます hover メソッドとともに mousedownmouseup イベント、そして単に変更します src 画像の属性を適切に:

$("#yourImageId").hover(function() {
    $(this).attr("src", "yellow-over.png");
}, function() {
    $(this).attr("src", "green-default.png");
}).mousedown(function() {
    $(this).attr("src", "brown-mousedownclick.png");
}).mouseup(function() {
    $(this).attr("src", "green-default.png");
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top