【问题标题】:if div does not contain this class then execute following如果 div 不包含此类,则执行以下操作
【发布时间】:2015-06-18 21:50:08
【问题描述】:

目前,我有一些 div 调整大小函数可用于不同的页面宽度查询。这些工作正常,但是我想在条件语句中为不同的窗口宽度包装所有这些函数。基本上,如果 div 不包含扩展的类 pod,我只希望这些函数调整 div“portfoliopod”的大小。请在下面查看我的代码和一个现场示例

http://mrliger.com/index2.php

您可以在实时示例中看到,由于在展开之前,portfoliopod 的高度与图像的高度相同,因此图像被剪裁

 if ($( '.portfoliopod' ).not( ".podexpanded" )) {




 $(window).resize(function() {
        if ($(window).width() >= 1025) {

var cw = $(".portfoliocontainer").width()/4;
$('.portfoliopod').height(cw);

        } 
    });

$(window).resize(function() {
        if ($(window).width() <= 1024) {

var cw = $(".portfoliocontainer").width()/3;
$('.portfoliopod').height(cw);

        } 
    });

$(window).resize(function() {
        if ($(window).width() <= 767) {

var cw = $(".portfoliocontainer").width()/2;
$('.portfoliopod').height(cw);

        } 
    });

$(window).resize(function() {
        if ($(window).width() <= 400) {

var cw = $(".portfoliocontainer").width();
$('.portfoliopod').height(cw);

        } 
    });

} 

【问题讨论】:

  • 您应该仔细研究一下针对不同宽度/高度屏幕使用 CSS 媒体查询。它可能会让你的生活更轻松。
  • 您的 if 语句将始终被触发,因为选择器将返回一个 jquery 对象,而不是 falsenullundefined

标签: javascript jquery html css


【解决方案1】:

你可以使用这个选择器:

$(".portfoliopod:not(.podexpanded)")

它将选择所有具有类portfoliopod 的元素,但只选择那些不具有类podexpanded 的元素。

【讨论】:

  • 嗯,我已经在上面描述中给出的链接上实现了它,但没有乐趣......我的逻辑可能在这里错了吗?
【解决方案2】:

首先,您不需要多个resize 处理程序。将它们包含在同一个中。

其次,使用:not()选择器

  $(window).resize(function() {
         if ($(window).width() >= 1025) {
             var cw = $(".portfoliocontainer").width() / 4;
             $('.portfoliopod:not(.podexpanded)').height(cw);
         }
         if ($(window).width() <= 1024) {
             var cw = $(".portfoliocontainer").width() / 3;
             $('.portfoliopod:not(.podexpanded)').height(cw);
         }
         if ($(window).width() <= 767) {
             var cw = $(".portfoliocontainer").width() / 2;
             $('.portfoliopod:not(.podexpanded)').height(cw);
         }
         if ($(window).width() <= 400) {
             var cw = $(".portfoliocontainer").width();
             $('.portfoliopod:not(.podexpanded)').height(cw);
         }
     });

【讨论】:

  • 仍然没有做我想做的事。根据我对上一个答案的评论,您认为我的逻辑在这里可能是错误的吗?
  • @BenLiger,没有更多上下文,很难说。你能提供一个fiddle.net 和更多的 HTML 吗?
  • @BenLiger,对不起,仍然不清楚。这是你想要的吗? jsfiddle.net/z8gLdxoh/5
  • @BenLiger,为什么任何答案中的代码都不起作用?该代码只会在没有类 podexpanded 的情况下调整 div 的大小。当你尝试它时发生了什么?
  • AmmarCSE,在重新排列背景图像后,我让它工作了,但是当投资组合容器的 div 高度达到某些窗口宽度时,它现在出现了一个小问题。它出现的宽度是从 1025 到 1041 和 768 到 784。如果您将浏览器窗口的大小调整到实时页面上的上述高度,您会明白我的意思:mrliger.com/index2.php
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 2013-01-19
  • 2021-10-27
  • 2021-02-10
  • 2011-06-17
  • 1970-01-01
相关资源
最近更新 更多