Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отключение скрипта на разрешениях меньше 1200px (https://javascript.ru/forum/jquery/83424-otklyuchenie-skripta-na-razresheniyakh-menshe-1200px.html)

Kenym8k 04.12.2021 12:36

Отключение скрипта на разрешениях меньше 1200px
 
Нужна помощь. У меня есть скрипт, нужно, чтобы он выполнялся, только когда ширина окна меньше 1200px. Как это сделать?

<script>
    var hoverMouse = function ($el) {
        $el.each(function () {
    var $self = $(this);
    var hover = false;
    var offsetHoverMax = $self.attr("offset-hover-max") || 0.8;
    var offsetHoverMin = $self.attr("offset-hover-min") || 0.75;

    var attachEventsListener = function () {
      $(window).on("mousemove", function (e) {
        var hoverArea = hover ? offsetHoverMax : offsetHoverMin;

        var cursor = {
          x: e.clientX,
          y: e.clientY + $(window).scrollTop()
        };

        var width = $self.outerWidth();
        var height = $self.outerHeight();

        var offset = $self.offset();
        var elPos = {
          x: offset.left + width / 2,
          y: offset.top + height / 2
        };

        var x = cursor.x - elPos.x;
        var y = cursor.y - elPos.y;

        var dist = Math.sqrt(x * x + y * y);

        var mutHover = false;

        if (dist < width * hoverArea) {
          mutHover = true;
          if (!hover) {
            hover = true;
          }
          onHover(x, y);
        }

        if (!mutHover && hover) {
          onLeave();
          hover = false;
        }
      });
    };

    var onHover = function (x, y) {
      TweenMax.to($self, 0.4, {
        x: x * 0.8,
        y: y * 0.8,
        rotation: x * 0.05,
        ease: Power2.easeOut
      });
    };
    var onLeave = function () {
      TweenMax.to($self, 0.7, {
        x: 0,
        y: 0,
        scale: 1,
        rotation: 0,
        ease: Elastic.easeOut.config(1.2, 0.4)
      });
    };

    attachEventsListener();
  });
    };
hoverMouse($(".magnetic-button"));
</script>

рони 04.12.2021 13:06

Kenym8k,
https://developer.mozilla.org/ru/doc...dow/matchMedia

Kenym8k 04.12.2021 14:28

Цитата:

Сообщение от рони (Сообщение 542104)

Спасибо. Вот только я дизайнер и не особо шарю, не покажешь пример кода?

рони 04.12.2021 15:00

Kenym8k,
строка 70
if (window.matchMedia("(max-width: 1200px)").matches) hoverMouse($(".magnetic-button"));


или строка 10

$(window).on("mousemove", function (e) {  if(window.matchMedia("(min-width: 1200px)").matches) return;

Kenym8k 04.12.2021 16:50

Цитата:

Сообщение от рони (Сообщение 542106)
Kenym8k,
строка 70
if (window.matchMedia("(max-width: 1200px)").matches) hoverMouse($(".magnetic-button"));


или строка 10

$(window).on("mousemove", function (e) {  if(window.matchMedia("(min-width: 1200px)").matches) return;

Попробовал оба варианта, при первом скрипт перестает работать, при втором варианте скрипт отрабатывает как раньше. Есть бОльшая вероятность, что я делаю что-то не так ;(

рони 04.12.2021 16:59

Kenym8k,
других вариантов предложить не могу ...

Kenym8k 04.12.2021 17:15

Цитата:

Сообщение от рони (Сообщение 542115)
Kenym8k,
других вариантов предложить не могу ...

Во втором варианте поменял "min-width: 1200px" на "max-width: 1200px" и все заработало) Больше спасибо за помощь)

рони 04.12.2021 18:07

Kenym8k,
:)


Часовой пояс GMT +3, время: 21:18.