我正在使用一些javascript来使图像看起来被裁剪。我基本上找到高度超过400像素的图像,找到超过400像素的像素数,将其分割,并在顶部和底部形成负边距。然后我将图像包装在一个div中,该div充当一个框架,图像位于框架后面
由于某种原因,脚本偶尔会运行。有时,它会正确裁剪高度超过400像素的所有.featured-image img
图像(主页上只有一个特色图像,需要裁剪)。其他时候,脚本不会检测到任何此类图像,因此不会进行裁剪。
我在$(document).ready()
调用中运行脚本,所以我不确定是什么原因造成了竞争条件。
链接
网站: http://new.technoheads.org/(刷新几次,看看我的意思)
脚本: http://new.technoheads.org/wp-content/themes/Technoheads-Theme/js/app.js (有问题的行是13-20)
答案 0 :(得分:2)
您正在检查图像的height
属性,这些属性不一定存在于文档就绪状态(文档就绪并不意味着图像已加载)。在$(window).load()
或$('img').load()
函数中绑定该函数。
示例:
$(".featured-image img").load(function() {
var $e = $(this);
if ( $e.height < 400 ) return;
var overflow = featuredHeight - $e.height();
var top = overflow / 2;
var bottom = overflow / 2;
if ( overflow % 2 == 1 ) top++;
$e.css({
"margin-top": top + "px",
"margin-bottom": bottom + "px"
});
});