CSS jquery

スマフォやタブレットでタップした時の動作を制御する!

PCページと違い、スマフォやタブレットではマウスを使わないため、 マウスオーバーの概念が存在しません。
ですが、タップした時の挙動を制御することは可能です。    

 

 

jQueryで指定

jQueryにはタップした時のイベントが用意されています。
それが、「touchstart」と「touchend」です。 ■サンプル ・タップした時にボタンを差し替える例

$(function(){ //タップ開始時 $(‘img.btn’).on({ touchstart: function () { var newImg = $(this).attr(‘src’).replace(‘.jpg’,’_ac.jpg’); $(this).attr(‘src’,newImg); } }); //タップ終了時 $(‘.img.btn’).on({ touchend: function () { var newImg = $(this).attr(‘src’).replace(‘_ac.jpg’,’.jpg’); $(this).attr(‘src’,newImg); } }); });

 

 

cssで指定

PCと同様に擬似クラスタの「active」で指定可能です。 上記のサンプルと同様なものをCSSで実現するなら…

a.btn { display: block; width: 200px; height: 50px; background: url(../img/hoge.jpg) left top no-repeat; } a.btn:active { background: url(../img/hoge_ac.jpg) left top no-repeat; }

このようになります。    

 

 

タップ時の薄黒い背景を消す

実際に試してみるとわかりますが、iPhoneではタップ時に、 リンクエリアを薄黒い背景が出てくると思います。 それがあるとせっかくタップ時の挙動を設定しても残念なので、 この背景も消してしまいます。

.btn { -webkit-tap-highlight-color: transparent; }

これで一通り完了です。 実際これを実装する場合、リンクするボタンに設定してもすぐ切り替わってしまうので、 あまり効果がないと思いますが、リンク以外でタップする時の動作を指定したい場合は、 色々なバリエーションが使えると思います。

アクトゼロではただいま「Webデザイナー」の採用活動を行っています。

2013/08/20~2013/09/02 の期間限定となっております。
新卒・中途は問いませんので、ぜひぜひお気軽にご連絡ください。