繁体   English   中英

在除桌面之外的所有断点中运行 jquery

[英]Run jquery in all breakpoints except desktop

我只有最少的代码知识,我正在努力实现一些目标。 我只希望它适用于较小的设备——基本上小于桌面尺寸。 这是我的代码

$('.menu-button').click(function() {
  var clicks = $(this).data('clicks');
  if (clicks) {
     $("body").css("overflow", "auto");
  } else {
     $("body").css("overflow", "hidden");
  }
  $(this).data("clicks", !clicks);
});

 $('.nav-background, .nav__link, .primary-button').click(function() {
  $( ".menu-button" ).click();

});

有一千种方法可以做到这一点,因为你似乎没有使用任何给你“断点”和“小于桌面”的 css 框架是非常不精确的,我将向你展示一种使用 css 和 javascript 的方法

例如,在您的 html 中只有一个具有特定 id 的空元素

<div id="resolution_check"></div>

在您的 css 中,您定义了一个媒体查询和断点,并在宽度较小时将此元素设置为不显示。 例如

@media only screen and (max-width: 760px) {
  #resolution_check { display: none; }
}

在您的 javascript 中,您现在可以检查此元素是否设置为不显示,如果是,则用户分辨率小于 761px

var small_screen = $('#resolution_check').css('display')=='none';

下面将遵循您的代码,您可以在其中检查上面的 var,例如:

$('.menu-button').click(function() {
   if(!small_screen){ // if NOT small screen return
     return false; 
   }
 ...

此外,在调整大小事件时,您需要再次设置 small_screen,因为宽度已更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM