画像のプリロード

JavaScript


(function () {
    function preloadImages(images) {
        var objects = [];

        if (Array.prototype.forEach) {
            images.forEach(function (image) {
                var imgObj = new Image();
                imgObj.src = image;
                objects.push(imgObj);
            });
        }
    }

    preloadImages([
        "/images/btn_kv_start.png",
    ]);
}());

IE判定

JavaScript


// Old IE判定
(function () {
    var html;

    if (document.all && !window.atob) {
        // IE9 or older
        html = document.getElementsByTagName("html")[0];
        ajl.util.addClass(html, "browser-oldie");
    } else if (document.all) {
        // IE10
        html = document.getElementsByTagName("html")[0];
        ajl.util.addClass(html, "browser-ie10");
    }
}());

個別に収集したjQuery Objectを結合する

個別に収集した2つのjQueryオブジェクトに対して同一の操作をしたい時などに。


JavaScript


var $thumbnails = $flipsnapRoot.find(".thumbnails a");
var $pointer = $flipsnapRoot.find(".pointer a");
$.fn.add.call($thumbnails, $pointer).on("click", function (e) {
    console.log("prevent default.");
    e.preventDefault();
});

jQuery 2.xのロード

IE8はサポート対象外とした案件でJQuery 2.xを利用する際、IE8以下でエラーが出ることにモヤモヤして考えたコード。条件分岐コメントよりマシな気はするが…。


JavaScript


(function (w, d) {
    var jQuery = d.createElement("script"),
        script = d.getElementsByTagName("script")[0],
        uaString = w.navigator.userAgent.toLowerCase();

    if (uaString.indexOf("trident") && d.documentMode > 8) {
        jQuery.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js";
        script.parentNode.insertBefore(jQuery. script);
    }
}(window, document));