【问题标题】:Override JQuery function with CSS in responsive design在响应式设计中使用 CSS 覆盖 JQuery 函数
【发布时间】:2012-09-14 18:14:43
【问题描述】:

我在我的网站上遇到了一个小障碍。在移动版本(480px 版本,按钮隐藏,我想一直显示 cmets。它是一种响应式设计,因此在调整大小时它是相同的页面。我该怎么做?

$(document).ready(function(){
  $('#comments-container').addClass('mobile-hide');

   $('#show-comments').click(function()
   {
      $('#comments-container').filter(':not(:animated)').slideToggle();
   });
});

.mobile-hide 就是 display: none;。当我将内容切换为显示然后隐藏并将浏览器大小调整为 >480px 时,内容仍然隐藏。我尝试为 >480px 样式表设置.mobile-hide { display: block; },但它不起作用。

【问题讨论】:

    标签: jquery css responsive-design


    【解决方案1】:

    您是否考虑过在 CSS 中使用媒体查询来实现这一点?听起来您不需要为此使用JS,但我有点不清楚。例如:

    #comment-button {display:block;}
    
    @media only screen and (max-device-width: 480px) {
      #comment-button {display:none;}
    }
    

    要监听浏览器宽度,您可以设置一个刻度事件(使用 setInterval 每 x 秒发生一次)或使用调整大小事件:

    $(window).on('resize', function(ev) {
        if($(window).width() > 480)
            $('html').removeClass('mobile-device').addClass('desktop-device');
        else
            $('html').removeClass('desktop-device').addClass('mobile-device');
    });
    
    html.mobile-device .toggle-button {display:none;}
    

    【讨论】:

    • 这正是我现在正在做的事情。它不起作用,因为 CSS 在开始时只加载一次,而 JQuery 函数会不断切换 div。
    • 酷,这就是我要找的活动。通过一些调整,它应该可以达到我想要的效果。谢谢!
    • 不用担心 - 我的意思是制作 css 选择器 "html.mobile-device .toggle-button {display:none;}" - 将类放在 body 或 html 元素上的好处是页面上的所有元素都可以使用它
    猜你喜欢
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多