JS:マウスストーカーを作る×コメディ

コント:せーかくについて行く!? MBTI診断

※コードは下部へ

ねー、MBTI、タイプ何?

あーウチENFPの運動家だった でも、これって当たりすぎてて、つまらん説ない?

それなー「あなたの性格は〜」とか、 それ分かってるしーって。 詳し過ぎて途中で読むんめんどくなるわ

なー。でも、これやってみん? バ先の先輩が教えてくれたんだけどさ。切り口がチルって

へー、そうなん。 まMBTIも一周回ってるかんね。

とりま、やってみん?

ええやん。やろー

簡易版てのがあるわー。ちょ待って ICRO

えー、タイプ名は?

野球界のレジェンド

え?

気質、  信じた道を行く。間違った事をやり続けてしまう事もある。でも、そうやってしか本当の自分に出会えない。

えー何?エモじゃん 笑

意識、 仕事でしょ?そんなのうまくいく訳ないでしょ?自己肯定感?気持ち悪くないですか?全てに疑問符を付けて手ごたえを感じるようにします。

え?大丈夫そ?

まあでも確かにウチらって痩せたいとかSNSのフォロワー増やしたいとか、みんな色んな願い抱えてんじゃん?

うん

なかなか思う様にはならんけどさー、いいコスメ見つけたら「Yeah!」てなるじゃん? そういう事言われてる気するくない?

あー、それな過ぎるわ

なー でも、これってさー、ずばりイチローよね 笑

性格ってかさ、もう人じゃんね

もう一度チャレンジしますか?だって

ガチャ?!笑 サイト、大丈夫そ?

ま、やって損ないし、、やるっしょ   あ、変わったー、STJS

ん? 何タイプ?

カリスマ経営者

え?

意識、  今日が人生最後の日なら何をやるか

えー?

戦術、  いくら稼いでも墓場まで持ってはいけない。持っていけるのは大切な思い出だけです

‥‥‥

アイデンティティ、  黒のタートルネック

あーそれ、スティーブ・ジョブズよね

え?Appleの?ヤバー笑

クイズ?偉人? 分かりやすいけどさー  性格診断ではなくない?

あーね。 全然ウチじゃなくてウケる ちょやってみ?

あーうん。え  ROLD

ん?

タイプ、 カリスマホスト

え?

気質、 「明けない夜はない」と待ってる時間があるなら、東へ走る

え?

戦術、  自分か、自分以外か。

あー、それ ローランドよね

ヤバみざわ

もっかいやろ

えー?

これで終われんしょ?  あー違うの出た、NIKE

え、スニーカー?

タイプ、 勝利の女神

え?

戦術、 指揮官は後ろに下がっててください。お守りします

‥‥

意識、 ラプチャーと戦い前哨基地をまず解放

あー、それガンガールRPGだわ 笑

それな。身を挺して守ってくれるNIKKEマジてぇてぇ

指揮官室にシャワー借りに来るのエモい

指揮官にも休養が必要です、って言ってくれんのチル

モダニアと面談してぇー

人間じゃないのに人間守る、 NIKKE健気でー

かわいい!

でも、これやっぱスベってない?

なー、ヤバー もう次でラストにしよ  ん?MSTK

何タイプ?

かわいいストーカー?

えっ、かわいい??

気質、 PCのマウスにつきまといます

コード解説編

あーマウスストーカーじゃん

戦術、  JSでマウス位置を取得。少しズレた位置に移動させます

HTML

< div id=”stArea”>
< div id=”stlkr”><img src=”img/home/mouse.png” width=”50″ height=”auto”></div>
<h1 id=”col_title”>Mouse Stalker</h1>
</div>

まずマウスストーカーのエリアをid=“stArea”として指定します。もちろん任意のネーミングで構いません。さらにストーカーさせる要素をid=”stlkr”として指定します。サンプルではネズミの画像を使っています。

CSS

/* マウスストーカー */
#stlkr{
position: absolute;
top:100px;
transition: 0.3s;
transition-timing-function: ease-out;
}

/* ストーカーの範囲 */
#stArea{
width: 100%;
height: 1000px;
position: relative;
background: linear-gradient(-45deg, #d4f2fb, #f0d9fd, #ecdcfb, #fcd7f2, #eaf9ff),#eedefb; }

ストーカー要素には position: absoluteに。ぬるっとした動きをつけるために  transition: 0.3s、 transition-timing-function: ease-outにしてあります。topは初期位置の指示です。

JavaScript

const stalker = “#stlkr”; // マウスストーカー要素
const StalkerArea = “#stArea”; // マウスストーカーが動く場所を指定

// 変数を宣言
const stkrSize = parseInt($(stalker).css(“width”).replace(/px/, “”));
const stkrPosX = parseInt($(stalker).css(“left”).replace(/px/, “”));
const stkrPosY = parseInt($(stalker).css(“top”).replace(/px/, “”));
const cssPosAjust = stkrPosX + (stkrSize / 2);
let stkrFix = false;
let scale = 1;
let scroll = 0;

// 追従する処理
$(StalkerArea).hover(function(){
$(StalkerArea).mousemove(function(e){
if(stkrFix == false){
let x = e.clientX – cssPosAjust;
let y = e.clientY + scroll – cssPosAjust;
$(stalker).css({
“transform”: “translate(” + x + “px,” + y + “px) scale(” + scale + “)”,
});
}
});
}, function(){
$(stalker).css({
“transform”: “”
});
});

// 追従後の処理
$(mouseTarget).hover(function(){
stkrFix = true;
scale = 2;
let _width = parseInt($(this).css(“width”).replace(/px/,””));
let _top = $(this).position().top;
let _left = $(this).position().left;
let x = _left – stkrPosX – (stkrSize / 2) + (_width / 2);
let y = _top – stkrPosX;
$(stalker).css({
“transform”: “translate(” + x + “px,” + y + “px) scale(” + scale + “)”,
});
}, function(){
stkrFix = false;
scale = 1;
});

$(window).scroll(function(){
scroll = $(window).scrollTop();
});

JavaScriptでは、動かしたいエリア上にマウスが乗っている場合、ストーカー要素のCSSをtransformさせる設定を行います。追従させる際と追従前後のscaleを変化させていきます。最後にscrollの動きをscrollTopと規定してフィニッシュです。

MBTIを2で割ってITになったてか 簡易版だからバグなんかな?

課金せんと正しく出ない的な?

あ、詳細版あったー えーっと、 「セルフィーを撮ってください」

人相? 笑

あー

どしたん?

ミニミーになった

それSNOWだわ

マジかー  可愛くなったから、ま、いいけど

結局か 笑

Share Me !

TOP