根据屏幕分辨率使用 jquery 添加 css 类名并删除 css 类名

Posted

技术标签:

【中文标题】根据屏幕分辨率使用 jquery 添加 css 类名并删除 css 类名【英文标题】:add css classname and remove css classname using jquery based on the screen resolution 【发布时间】:2022-01-14 21:06:22 【问题描述】:

我正在尝试使用 jquery 根据分辨率添加类名和删除类名。

这是我的 Jquery 代码。在移动模式下,我得到 totopDesk 在桌面模式下我得到 totop_tab 仅在平板电脑模式下我得到了正确的课程。我在这里做错了什么

function isMobile()
    if($(window).width() <= 575)
        return true;
    else 
       return false;
   
 
function isTab()
   if($(window).width() > 575 && $(window).width() <= 992)
      return true;
     else 
      return false;
    
  
 function isDesktop()
    if($(window).width() >= 992)
        return true;
         else 
        return false;
      
  

$(window).resize(function ()
  
     if (isMobile()) 
         goMobile()
    
   else if (isTab()) 
       goTablet()
      
    else 
       goDesktop();
      
  )

    function goDesktop()

    $("#go_btn").addClass("totopDesk");
    $("#go_btn").removeClass("totop_tab");  
    $("#go_btn").removeClass("totop_mob");

function goMobile() 
    $("#go_btn").addClass("totop_mob");
    $("#go_btn").removeClass("totopDesk");
    $("#go_btn").removeClass("totop_tab");

function goTablet() 
    $("#go_btn").addClass("totop_tab");
    $("#go_btn").removeClass("totop_mob");
    $("#go_btn").removeClass("totop");
    $("#go_btn").removeClass("totopDesk");  

没有使用@Media 查询的简单 Jquery 我遇到了这个问题

当我在检查元素 48em 类中处于平板电脑模式时,它被删除,只显示桌面 css

【问题讨论】:

为什么不用纯css @media @ProGu 我有一个问题,当我调整 Chrome 窗口的大小时,它没有按预期工作 您可以使用 Web API matchMedia - developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia 作为脚本中的断点 我试过你的代码,它在我身上运行良好。顺便说一句,你如何设置你的 if 子句你不需要 isDesktop() 函数。如果您要使用它,请注意 992 在平板电脑和台式机中都会返回 true(在这里不会引起问题,但仍然存在) 如何订阅媒体查询更改的示例在这里:developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/… const mediaQueryList = window.matchMedia("(max-width: 576px)"); mediaQueryList.addEventListener('change', handleIsMobile); 【参考方案1】:

根据您的图片,您的媒体查询位于 main.css 文件的第 23 行,其余代码从 main.css 文件的第 71 行开始。您需要在尝试更改的主要样式之后移动媒体查询。 CSS 从上到下读取并应用最底部的样式。由于您的媒体查询位于主要样式之前,因此未应用它。

【讨论】:

以上是关于根据屏幕分辨率使用 jquery 添加 css 类名并删除 css 类名的主要内容,如果未能解决你的问题,请参考以下文章

根据屏幕分辨率是使用不同的CSS

我们可以使用屏幕分辨率而不是视口来应用 CSS 吗?

如何根据值将 css 类添加到选择列表选项中 - 使用 jQuery

根据img大小而不是屏幕大小使用HTML5或CSS3加载不同的图像[重复]

Jquery 平移滑块 - 基于屏幕分辨率的图像宽度

Javascript检测屏幕分辨率,更改css,相应裁剪图像