Слайдер "До" и "После"

Данный слайдер накладывает две фотографии друг на друга и заменяет их движением мыши.

Ранее уже была заметка с похожим слайдером: splitpic.js

Отличаются они тем, что этот скрипт работает по клику мышки, а не по ее движению, как splitpic.js

Пример:

Функцию animateTo("значение") (о ней ниже) можно использовать для перемещения ползунка в нужное место и использовать на кнопках или в тексте. Например:

Когда мы лазали зимой в горах, нам хотелось лета (на лето нужно кликнуть)

HTML:

Стрелочки сделаны шрифтом Font Awesome

CSS:

JS:

  • Подключаем jQuery (если не подключено ранее)
  • Подключаем jQuery UI для вашей версии jQuery с взаимодействием Draggable или полную. Для jQuery 1.7+ можно использовать эту.
  • Подключаем приведенный ниже код

Если нет желания использовать jQuery UI, который обеспечивает перетаскивание ползунка мышкой, можно его не подключать. В этом случае слайдер будет меняться только по клику на нем мышки. Для этого нужно удалить код:

Для перемещения ползунка в нужное место используется функция animateTo("значение")

Смотрите также:

Добавить комментарий:

Ваш комментарий отправлен!

Комментарии:

  • Toster:

    поправил немного код, чтобы работал если на странице несколько слайдеров

    (function($) {
    $('.sl-container').each(function() {
    var $container = $(this),
    $dragMe = $container.find('.dragme'),
    $viewAfter = $container.find('.view-after');

    $dragMe.draggable({
    containment: "parent",
    drag: function() {
    $viewAfter.css({
    width: parseFloat($(this).css('left')) + 5
    });
    }
    });

    $container.on("click", function(event) {
    var eventLeft = event.pageX - $container.offset().left - 15;
    animateTo(eventLeft, $dragMe, $viewAfter);
    });

    animateTo("50%", $dragMe, $viewAfter);

    function animateTo(_left, $dragMe, $viewAfter) {
    $dragMe.animate({
    left: _left
    }, 'slow', 'linear');
    $viewAfter.animate({
    width: _left
    }, 'slow', 'linear');
    }
    });
    })(jQuery);

    и чтобы размеры изображений подгонялись под блок

    function adjustImageWidth() {
    (function($) {
    $('.sl-container').each(function() {
    var $viewBefore = $(this);
    var width = $viewBefore.width();
    var height = $('.view-before').height();
    $viewBefore.find('.view-before img').css('width', width);
    $viewBefore.find('.view-after img').css('width', width);
    $('.sl-container').css('height', height);
    });
    })(jQuery);
    }

    Ответить
  • Kirа:

    "Подключаем jQuery"
    Это как сделать?
    И вообще куда коды вставлять в какое место. Можно поподробнее

    Ответить
    • Alexander:

      Никак не соберусь написать помощь по установке...
      Подключается как и любой скрипт, а как остальное я даже не знаю как в 2х словах написать..
      Напишите в ТГ или ВК, попробую подсказать.

      Ответить
      • Kirа:

        Да хотя бы на примере пустого сайта.
        Скачать то то (такие то файлы)
        положить в папки такие то
        в файле таком то прописать то то
        в файл таком то прописать то то
        А лучше просто архивчик пустого сайта с одной страницей и этим скриптом

        Ответить
  • Шайлтан вор:

    Класно, спасибо сворую на совй веб сайт

    Ответить
  • Олег:

    А как сделать, чтобы ползунок работал и в мобильной версии? Это возможно?

    Ответить
    • Alexander:

      Смотрите jQuery UI Draggable

      Ответить
      • Олег:

        Погуглил) Мало что понял)

        Ответить
  • Ростислав:

    С помощью какой команды нужно включить jQuery?

    Ответить
  • Kiso:

    Как добавить два и больше таких слайдера на 1 страницу ? и что бы при этом каждый слайдер работал независимо от других, сейчас если добавить 2 таких на 1 страницу то при смещении одного смещается и другой

    Ответить
    • Nick:

      Добавить 2 скрипта, 2 html блока с разными названиями и в скриптах соответственно

      Ответить