【问题标题】:Media Query for JSJS的媒体查询
【发布时间】:2019-09-14 20:41:13
【问题描述】:

我正在尝试为此脚本设置媒体查询,但没有成功。谁能指出我正确的方向?

<script>

var mq = window.matchMedia( "(min-width: 1024px)" );

if (mq.matches) {
   $(".number-<?php echo $counter; ?>").hover(function () {
     $(".section-<?php echo $section; ?> #hover-button-<?php echo $counter; ?>").stop().slideToggle();
     return false;
 });
}
else {

}
 </script>

【问题讨论】:

标签: javascript jquery wordpress


【解决方案1】:

尝试matchMediaonchange事件

var mq = window.matchMedia("(min-width: 1024px)");

function mediaChange() {
  console.log(mq.matches)
  
  if (mq.matches) {
    $(".number-1").hover(function() {
      $(".section-1 #hover-button-1").stop().slideToggle();
      return false;
    });
  } else {
    $(".number-1").off('mouseenter mouseleave')
  }
  
}
mediaChange();

mq.onchange = mediaChange;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="number-1">
  hover me
</div>

<div class="section-1">
  <div id="hover-button-1">
    toggle
  </div>
</div>

注意:Full Page模式下查看演示(运行按钮右侧)

【讨论】:

  • 在事件处理程序中检查匹配更有意义
  • @charlietfl 好收获
【解决方案2】:

这似乎使用最大宽度而不是最小宽度来工作

<script>

var mq = window.matchMedia( "(max-width: 1024px)" );

if (mq.matches) {

}

else {

   $(".number-<?php echo $counter; ?>").hover(function () {
     $(".section-<?php echo $section; ?> #hover-button-<?php echo $counter; ?>").stop().slideToggle();
     return false;
    });

}
 </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 2014-03-11
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 2014-06-16
    相关资源
    最近更新 更多