Отображение другого изображения в зависимости от направления изменения размера

У меня два изображения. Я пытаюсь отобразить его, когда размер браузера изменяется слева, а другой, когда он изменяется вправо.

    function adjustDirection() {
        var last_pos_x = window.screenX;

        if ( last_pos_x < window.screenX) {
            document.getElementById("logo").style.backgroundImage = "url('logoRight.png')";
        } else if (last_pos_x > window.screenX) {
            document.getElementById("logo").style.backgroundImage = "url('logoLeft.png')";
        }
    }
    window.onresize = adjustDirection;

Однако кажется, что моя функция только начинает работать, если last_pos_x объявляется вне функции, что явно неверно, потому что оно будет хранить только window.screenX от загрузки.

Любая помощь будет принята с благодарностью

2
задан 20 февр. '15 в 8:23
источник поделиться
1 ответ

Самое простое решение - использовать jQuery. Сохраните значение posX в DOM и извлеките его

HTML

<div id="aaa" data-posx="0"></div>

Javascript

function adjustDirection() {
        var last_pos_x = $("#id").attr("data-posx");
        $("#id").attr("data-posx",window.screenX);
        if ( last_pos_x < window.screenX) {
            document.getElementById("logo").style.backgroundImage = "url('logoRight.png')";
        } else if (last_pos_x > window.screenX) {
            document.getElementById("logo").style.backgroundImage = "url('logoLeft.png')";
        }
    }
    window.onresize = adjustDirection;

Новый код с помощью js:

function adjustDirection() {
    var last_pos_x = window.screenX;
    return function() {
        if (last_pos_x < window.screenX) {
            document.getElementById("logo").style.backgroundImage = "url('logoRight.png')";
        } else if (last_pos_x > window.screenX) {
            document.getElementById("logo").style.backgroundImage = "url('logoLeft.png')";
        }
        last_pos_x = window.screenX;
    }
};
var z = adjustDirection();
window.onresize = z;
1
ответ дан 20 февр. '15 в 8:44
источник

Другие вопросы по меткам или Задайте вопрос