69
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

クソアプリ2Advent Calendar 2019

Day 11

2020年はねずみ年!画面にねずみが侵略してくるブックマークレットを作った!

Last updated at Posted at 2019-12-10

クソアプリ2カレンダー11日目担当、@issy_s16です!
自称ほっこり箸休め担当、よろしくお願いします!

🧀 ねずみが侵略!ブックマークレット

Image from Gyazo

今年ももう終わりますね、、2020年はねずみ年です。
ということで!今回は 画面にねずみが侵略してくるブックマークレット を作りました!

👾 遊び方

1️⃣ 以下の画像の参考にソースコードをURLとしてお気に入りに追加してください!

Image from Gyazo

bookmarklet.js
javascript:(function(a){var b=document.createElement("script");b.src="//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js";b.onload=function(){a(jQuery.noConflict(true))};document.body.appendChild(b)})(function(a){a("img").attr("src","https://bit.ly/3gWFv6g").hover(function(){var e=Math.floor(Math.random()*2);for(var c=0;c<=e;c++){a("body").after('<img src="https://bit.ly/3zWboTR" class="mouse" style="position: absolute; width:70px; top: -50px; left:-50px; z-index: 99999;">')}var f=a(this).offset();var b=a(this).height();var d=a(this).width();a(".mouse").each(function(g,k){var j=f.top+Math.floor(Math.random()*b);var h=f.left+Math.floor(Math.random()*d);a(k).animate({top:j,left:h},Math.random()*800+200,"swing")})})});
2️⃣ 好きなサイトを開いた状態で、お気に入り登録したブックマークレットを開いてください!
3️⃣ すると、画面上のimgタグが全てチーズに置き換わりますので、チーズにマウスオーバーすることでねずみ(マウス)がわらわら追っかけてきます!

ねずみだけにマウスオーバーっていうただのオヤジギャグです。

📑 圧縮してないソースコード

bookmarklet.js
(function(func) {
    var scr = document.createElement("script");
    scr.src = "//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js";
    scr.onload = function() {
        func(jQuery.noConflict(true));
    };
    document.body.appendChild(scr);
})(function($) {
    $('img')
        .attr('src', 'https://bit.ly/3gWFv6g')
        .hover(function(){
            var rand = Math.floor( Math.random()*2);
            for (var i = 0; i<=rand; i++) {
                $('body').after('<img src="https://bit.ly/3zWboTR" class="mouse" style="position: absolute; width:70px; top: -50px; left:-50px; z-index: 99999;">');
            }

            var offset = $(this).offset();
            var height = $(this).height();
            var width = $(this).width();

            $('.mouse').each(function(i, elm){
                var top = offset.top + Math.floor( Math.random()*height);
                var left = offset.left + Math.floor( Math.random()*width);
                $(elm).animate({top: top, left: left}, Math.random()*800+200, 'swing');
            })
        });
});

💪 こだわった点

ねずみには1体ごとにそれぞれ違うアニメーションタイムで動くように設定してます!
また、アニメーションのeasingにswingを設定、対象のチーズの要素の大きさを取得した上でランダム配置、
そして、あえてイベントをストップせず残すことでわらわら感を演出しました!

👏 感想

アプリでもブックマークレットってそんなに使う機会は多くないですよね:thinking:
でもこんな風に簡単にJSを動かすことができるので、改めてブックマークレットの便利さ面白さを再認識する良い機会になりました!

プライベートでも仕事でも、使える技術は使って自動化していきたいものですね!

来年も良い年になりますように!

☺️ スペシャルサンクス

いつもありがとうございます いらすとやさん!

69
23
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
69
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?