あなたが何を探しているのか完全にはわかりません。
JavaScriptがまったくなくてもできるのではないかと思います。X軸に沿って反転したい場合は、アニメーションを使用しますか?
ホバーで画像を反転
JSFiddle:Image Flip on:hover
このデモでは、画像のHTMLをラッパー<div>
に配置する必要がありました。そうしないと、:hover
とのscale()
変更がファンキーな方法で互いに競合するためです。ラッパーを削除するとわかります<div>
。
HTML
<div class="flippy">
<img src="http://lorempixel.com/200/200/"/>
</div>
CSS:
.flippy>img {
/**/-moz-transform:scale(1,1);-webkit-transform:scale(1,1);
transform:scale(1,1);
/**/-webkit-transition:all 600ms ease;-webkit-transition:all 600ms ease;
transition:all 600ms ease; }
.flippy:hover>img {
/**/-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);
transform:scale(-1,1); }
JavaScriptで制御する必要がある場合は:hover
、のような別のクラスに置き換えるのは簡単.flipped
です。その後、JSで好きなように実行して、フリップ状態のオンとオフをアクティブにします。
//追跡。
属性の画像を反転(クリックベースのデモ)
jsFiddle:属性の画像反転
このデモでは、isにflipped
属性が設定されていると画像が反転します。
JavaScript:
// Toggles the 'flipped' attribute on the <img> tag.
$('.flippy').click(function(){
if ($(this).attr('flipped'))
$(this).removeAttr('flipped');
else $(this).attr('flipped','flipped');
});
CSS:
/* vendor-prefixes have been removed in this example */
/* We just change the scale based on the flipped attribute */
.flippy {
transform:scale(1,1);
transition:all 600ms ease; }
.flippy[flipped] {
transform:scale(-1,1); }
HTML: <img class="flippy" src="http://lorempixel.com/200/200/"/>
-ご覧<div>
のとおり、:hoverの競合は問題ではなくなったため、この例のラッパーは不要になりました。
//追跡。