【问题标题】:Using jquery to modify css when in mobile view (>720px)在移动视图中使用jquery修改css(> 720px)
【发布时间】:2016-03-01 23:12:38
【问题描述】:

在我的 codepen 项目网站的第 2 页上,我有一个 jquery 事件,当视图宽度大于 720 像素时,它会向右打开一个小简介幻灯片。

当宽度小于 720 像素时,我试图让“点击向右滑动”的东西消失。但是,在页面初始加载时,会显示简介,并且单击该区域似乎不起作用。此外,当我使浏览器尽可能小时,“单击以滑动”会随着简介一起消失,但当我调整到全屏时不会回来。我在这里做错了什么?

注意我现在知道如何使用媒体查询来解决这个问题,但我想看看我是否可以在我的 jQuery 脚本中实现它,而无需在 css 中进行更改。

建议?

codepen project from freecodecamp

jquery:

$(window).resize(function() {
    var width = $(window).width();
    if (width < 720) {
        $("#flip").hide();
    }
    else 
    {
        $(".lead").hide(function(){
$("#flip").click(function(){
  $(".lead").toggle('slide','right',500);
 });
    }); 
    }
});

【问题讨论】:

    标签: jquery css media-queries


    【解决方案1】:

    试试这个。

    // Your responsive logic
    var myResize = function(){
        var width = $(window).width();
        if (width < 720) {
           $("#flip").hide();
        }else{
           $(".lead").hide();
           $("#flip").show();
        }
    };
    // Execute it every resize
    $(window).resize(myResize);
    $(myResize); // Execute it on ready as well
    // Keep the click event handlers outside so they get defined once
    $("#flip").click(function(){
        var width = $(window).width();
        if (width > 720) {
            $(".lead").toggle('slide','right',500);
        }
    });
    

    【讨论】:

    • 这太完美了!看起来我走在正确的道路上,但我没有涵盖我的代码中的一些关键点..看起来是另一件事。至少很高兴知道我走在正确的道路上。非常感谢!
    • 别担心!你拥有几乎所有重要的部分
    【解决方案2】:

    你可以使用:

    <script>
       if (window.matchMedia("(min-width: 720px)").matches) {
       /*  Code to execute */
      } else {
       /*  Code to execute */
      }
    </script>
    

    您可以参考这个tutorial

    【讨论】:

    • 这只执行一次,而不是每次调整大小。此外,您链接到的教程是法语的……对于 S.O. 来说并不是最好的
    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多