我正在尝试使用 masonry 和 animoscroll.js 复制鼓室演示。唯一的区别是我使用的是带有图像的 div 卡,而不仅仅是图像。
这是工作鼓膜演示http://jsfiddle.net/Sfmv9/19/light/
这是我的代码:http ://codepen.io/anon/pen/CotJv 。
无论出于何种原因,这在codepen中都有效,但我在本地机器上遇到了以下问题。
卡片在滚动时没有动画
有时,卡片会彼此重叠加载(我猜这意味着 imagesLoaded 无法正常工作)
我收到:
'类型错误:无法读取 null imagesloaded.js 的属性'长度''
这是我在过去两个月中发布的关于此问题的第三个问题,但仍然无法弄清楚为什么会出现此错误以及如何解决它。我再次发布此信息(提供更具体的信息),看看是否有人可以提供帮助。
错误似乎出现在 imagesloaded.js 中的此函数中
// turn element or nodeList into an array
function makeArray( obj ) {
var ary = [];
if ( isArray( obj ) ) {
// use object if already an array
ary = obj;
} else if ( typeof obj.length === 'number' ) {
// convert nodeList to array
for ( var i=0, len = obj.length; i < len; i++ ) {
ary.push( obj[i] );
}
} else {
// array of single index
ary.push( obj );
}
return ary;
}
根据我之前帖子中某人的建议,我尝试更改obj.length == 'number'
为:
if ( obj && typeof obj.length === 'number' )
在许多其他尝试的解决方案中,我还尝试将我的容器类更改为 AnimOnScroll.js 中的容器 ID,但错误仍然存在。因为我对 js 有点不放心,所以我无法追踪 AnimOnScroll、ImagesLoaded 和 Masonry 是如何相互连接的,所以我不知道问题实际上是在 ImagesLoaded.js 还是在 AnimOnScroll.js 中。
最让我困惑的是为什么这可以在 codepen 中工作,但不能在我的本地机器上工作。
如果有帮助,这里是我之前问题的链接。