Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

昨日のマウスストーカー、ちょっと修正しました。

 どうも!LSSです!!

 

昨日の記事、

little-strange.hatenablog.com

ですが、公開後に「実はAndroidスマホで動作しない」事が判明し、先ほどAndroidでも動作するように修正しました。

 

公開前に、PCとiPhoneで動作確認はしていたのですが、まさかiPhoneで動作してAndroidで動作しない」とは^^;
iPhoneのほうがなにかにつけてウルサイ、と思い込んでいますw

 

何故動作しないか、については心当たりがあったので、修正はさくっとでき、コード・コード解説も修正済です。

 

 

ちなみに変更点

コード

<style>
#stalker{
 position:absolute;
 pointer-events: none;
 transition:linear 0.1s;
}
</style>
<div id="stalker">^^) _旦~~</div>
<p>
<script>
stkx=0;stky=0;
pntx=0;pnty=0;
stks=10;//速度調整
document.addEventListener('mousemove',mv,false);
document.addEventListener('touchmove',mvt,false);
timer=setInterval(function(){
 stkx=(stkx*stks+pntx)/(stks+1);
 stky=(stky*stks+pnty)/(stks+1);
 stalker.style.left=stkx+'px';
 stalker.style.top=stky+'px';
},100);
function mv(e){
 pntx=e.pageX-50;
 pnty=e.pageY-20;
}
function mvt(e){
 pntx=e.touches[0].pageX-50;
 pnty=e.touches[0].pageY-20;
}
</script>
</p>

 

赤太字青太字部分を挿入しました。
※分かりにくいですがコード中ほどに一文字だけtを追加した箇所があります。

 

 

要するに、「.touches[0]」をサボってました^^;

だいぶ前の記事に

little-strange.hatenablog.com

スマホはマルチタッチの概念があるから云々」と書いていたのを
また忘れていましたw

(逆に、これがあってもなくても動作するiPhoneの寛大なところを見つけてしまいましたね。)

 

PCのマウスイベントにはさすがに「touch?なんじゃそりゃ」となるでしょうから、関数を2つに分けて対処しました。

これで「PC・iPhoneAndroid」いずれであっても動作する事になります^^

 

 

あとがき

「ありきたりなマウスストーカー」に2記事ついやす結果になってしまいました^^;

コードはなるべく簡略化したいものの、やはり「手を抜いてはいけない部分」というのはありますね。

 

「iPhneはAndroidより(こうしたコードの動作には)うるさい」という思い込みが主要な敗因でした。

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^