javascript - 如果图像宽度小于X,则添加类

标签 javascript jquery image

正如标题所示,我希望有一点 jQuery - 如果图像小于定义的宽度,它会为某个元素添加一个类。对我来说,这似乎很简单,但由于某种原因它不起作用。

$(document).ready(function() {
    var image = $('.work-each img');
        if (image.width() < 500) {
            $('.work-text').addClass('work-text-small');
        }
});

如果每个 .work-each 下找到的图像小于 500 像素,则应该向元素“work-text”添加一个类“work-text-small”。

HTML 示例(针对每个)

<div class="work-each">
   <div>
      <img src=""/>
      <div class="work-text">
         <p>Title</p>
         <p>Text</p>
      </div>
   </div>
</div>
<div class="work-each">
   <div>
      <img src=""/>
      <div class="work-text">
         <p>Title</p>
         <p>Text</p>
      </div>
   </div>
</div>
<div class="work-each">
   <div>
      <img src=""/>
      <div class="work-text">
         <p>Title</p>
         <p>Text</p>
      </div>
   </div>
</div>

谢谢,

最佳答案

使用 load 代替,当 DOM 准备好时,仅定义 img 标签,但图像尚未加载。它的大小是在满载时确定的

$(window).load(function () {
    var image = $('.work-each img');
    if (image.width() < 500) {
        $('.work-text').addClass('work-text-small');
    }
});

但是,正如 @rdck 指出的,如果有更多带有 class=".work-each img" 的图像,代码将不起作用,因此在这种情况下,您需要遍历每个图像并应用该类

$(window).load(function () {
    var image = $('.work-each img');
    image.each(function () {
        var that = $(this);
        if (that.width() < 500) {
            that.next('div.work-text').addClass('work-text-small');
        }
    })

});

关于javascript - 如果图像宽度小于X,则添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14305299/

相关文章:

javascript - 在不同的 html 页面上用另一个 div 替换一个 div

javascript - 将鼠标悬停在 JavaScript 列表项上时如何创建暂停或延迟?

javascript - 如何使用 jquery 验证来验证可用性?

html - 图标:使用 HTML 还是 CSS?

html - 显示在一行中的列表中的图像

javascript - 如果 id 匹配则删除标签但保留文本

javascript - 如何将具有不同输入名称的选定复选框添加在一起

Javascript CORS JSON/JSONP 请求

jquery - 如何使用 'mixitup'插件自定义多重过滤?

java - 在检索图像时已为此响应调用 getOutputStream()