javascript - 如果一个 div 的高度与另一个 div 的高度相等,请执行某项操作 - 在循环中?

标签 javascript jquery html css

我有多个 div,它们都循环输出相同的内容。所以基本上我的页面上有 6 个包含图像的 div,这些图像有一个悬停显示第二个图像。

除非 .first-image.last-image 的高度相等,否则我希望最后一张图片是 display: none;

6 个不同的 div 中的每一个都包含所有不同高度的图像,因此我需要对每个图像进行单独“判断”。所以我猜是在循环中。

我把这个 Demo 放在一起了尝试展示我想要实现的目标,但我还没有完全理解我想要的。 - 当您将鼠标悬停在第二个和第三个 div 上时,悬停不应显示。

$('.product-img-loop').each(function () {
   var firstImg = $('.first-image').height();
   var lastImg = $('.last-image');

   if (firstImg == lastImg.height()) {
     $('.last-image').css('display', 'block');
   } else {
     $('.last-image').css('display', 'none');
   }
});

如有任何帮助,我们将不胜感激。

最佳答案

不可能隐藏 .hidden 框,因为它有一个 !important 覆盖它:

    .reveal .hidden {
        display: block !important;
        visibility: visible !important;
    }

红色框将永远显示,因为 !important 属性删除了所有以前的样式。 要解决它,只需删除重要属性并进行测试即可。

另一个问题是循环仅在加载页面时执行,当您悬停图像时不执行它。正因如此,成就十分艰辛。也许如果您尝试更好地解释,我们可以用最简单的方式转换您的代码。

编辑

正如我们在评论中讨论的那样,这里是一个工作示例:

http://jsfiddle.net/ak88Lh02/2/

    $('.image').on('mouseover', function() {
        var reveal = $(this).find('.reveal');
        var hide = $(this).find('.hide');

        if(reveal.height() == hide.height())  {
            hide.show()
        }
    }).on('mouseout', function() {
        var hide = $(this).find('.hide');
        hide.hide();
    });

关于javascript - 如果一个 div 的高度与另一个 div 的高度相等,请执行某项操作 - 在循环中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963090/

相关文章:

javascript - 如何在浏览器窗口调整大小时自动调整 iframe 内容大小?

html - 返回页面时突出显示的包装链接

html - div 内的中心列表

javascript - chrome.extension 有时在后台 js 中未定义

javascript - 在 Canvas 上水平移动对象

javascript - 检查工作日编号时出现弃用警告

javascript - 组合两个新的 jQuery 函数

使用 jQuery $.ajax 的 Javascript 范围查询

javascript - 首次登录/导航后,Angular 6 样式无法正确加载

jquery - Highslide JS 字幕(桌面左侧面板)和(移动底部)