プラグインを使わずに画像のズーム機能を作ってみよう


jqueryを使って、画像のズーム機能を実装します。

プラグインは不要!
↓以下が実際のソースサンプルです。

▼JavaScript

$(function () {

    $(window).mousemove(function (e) {


        if (e.pageX > $("#base").offset().left && e.pageX <= $("#base").offset().left + $("#base").width() && e.pageY >= $("#base").offset().top && e.pageY <= $("#base").offset().top + $("#base").height()) {

            var posX = e.pageX;
            var posY = e.pageY;

            if (e.pageX <= $("#base").offset().left + 16) {
                posX = $("#base").offset().left;
            } else if (e.pageX >= $("#base").offset().left + $("#base").width() - 16) {
                posX = $("#base").offset().left + $("#base").width() - 32;
            } else {
                posX -= 16;
            }

            // span要素が#base内に収まるよう調整(縦位置)
            if (e.pageY <= $("#base").offset().top + 10.75) {
                posY = $("#base").offset().top;
            } else if (e.pageY >= $("#base").offset().top + $("#base").height() - 10.75) {
                posY = $("#base").offset().top + $("#base").height() - 21.5;
            } else {
                posY -= 10.75;
            }
            $("span").css({
                "top": posY,
                "left": posX
            });
            $("span").show();
            $("#zoom img").css("top", ($("#base").offset().top - posY) * 20);
            $("#zoom img").css("left", ($("#base").offset().left - posX) * 20);

        } else {
            $("span").hide();
        }

    });
});

▼CSS