yuheijotaki.com

スマホでタップ時に画像差し替え

PC版でよく使うロールオーバー時に画像差し替えjsをスマホでのタップ版でつくってみる。

HTMLは共通でimg要素にbtnクラスを

<!-- html -->
<a href="#"><img src="./image/btn.png" class="btn"></a>

JS側はhoverイベントだった箇所をtouchstartとtouchendに

// js
function touchImage(){
	var preLoad = new Object();
	$('img.btn').not("[src*='_on.']").each(function(){
		var imgSrc = this.src;
		var fType = imgSrc.substring(imgSrc.lastIndexOf('.'));
		var imgName = imgSrc.substr(0, imgSrc.lastIndexOf('.'));
		var imgOver = imgName + '_on' + fType;
		preLoad[this.src] = new Image();
		preLoad[this.src].src = imgOver;
		$(this).bind('touchstart', function() {this.src = imgOver;});
		$(this).bind('touchend', function() {this.src = imgSrc;});
	});
}
$(document).ready(touchImage);

スマホなのであんま画像使わんかもしれんですが