Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

JavaScript мышь

JavaScript мышь

Доброго времени суток дорогие друзья, поехали! Мы можем пользоваться колесиком мыши для разных целей. Для скролинга, масштабирования, выборки и т.п. Событие отвечающее за прокрутку колесика мышки называется wheel.

Рассмотрим пример:

document.addEventListener('wheel',function(event){
   console.log('Мы прокрутили колесико');
});

здесь как только мы покрутили колесико нам в консоль сразу же полетели сообщения.

Событие wheel чем то похоже на скролл. Так как с помощью колесика мыши мы также можем скролить. Но на этом их сходство заканчивается.

При одном повороте колесика происходит событие и если мы посмотрим что возвращает свойства позиций event, то увидим следующую картину:

document.addEventListener('wheel',function(event){
    event = event || window.event;
    var y = event.deltaY || event.detail || event.wheelDelta;
   console.log(y);
});

здесь нам возвращается определенная величина в консоль(у меня 100). Это величина является относительным смещением. К примеру при скролинге вниз она прибавляется к текущей позиции скрола, а вверх вычитается из нее. То есть в результате прокрутки колесика вниз(на себя) у нас в консоль выводится положительное число, а вверх(от себя) отрицательное. Но повторюсь само число не меняется оно фиксированное.

С этим мы разобрались! Теперь применим полученные знания на практике.

Сделаем возможность масштабирования картинки с помощью колесика мыши, то есть приблизить и отдалить.

Пример:

<img src="fon1.jpg" alt="" style="transform:scale(1)">
<script>
    document.addEventListener('wheel',function(event){
    event = event || window.event;
    var y = event.deltaY || event.detail || event.wheelDelta,val=0.1,min = 0,max=0;
    if(y > 0){
         min = document.querySelector('img').style.transform.match(/[\d\.]{1,}/)[0];
        document.querySelector('img').style.transform = "scale("+(parseFloat(min) - val)+")";
        console.log('-');
    }
    if(y < 0){
        max = document.querySelector('img').style.transform.match(/[\d\.]{1,}/)[0];
        document.querySelector('img').style.transform = "scale("+(parseFloat(max) + val)+")";
        console.log('+');
    }
});

смотрим что у нас здесь получилось. У нас есть некая картинка у которой задан масштаб 1:1(transform:scale(1)). При прокрутке колесика мыши мы используем фиксированное смещение для определения одного из действий приближение или отдаление. В нашем случае если мы крутим колесико вниз, то есть фиксированная величина положительна у нас происходит отдаление, а если крутим вверх, фиксированная величина отрицательна и нас происходит приближение. Сам процесс приближения и отдаления происходит за счет простых вычислительных действий. При отдалении у нас из текущего значения масштаба вычисляется 0.1, при приближении прибавляется. И в результате всех действий используя колесико мыши мы теперь можем приближать и отдалять нашу картинку.

Это далеко не все что мы можем делать с помощью колесика мыши! Дальше включайте свое воображение на полную и вперед.

Вот в принципе и все что я хотел вам рассказать. На этом я с вами прощаюсь.

Желаю успехов и удачи! Пока.

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm