我正在尝试将此示例http://tympanus.net/codrops/2013/07/02/loading-effects-for-grid-items-with-css-animations/comment-page-3/#comments与我自己的网站集成。
基本上我正在尝试使用anonOnScroll.js来使用masonry.js(我自己也在使用它)来让我的图像淡入。
<script src="AnimOnScroll.js"></script>
<script>
new AnimOnScroll( document.getElementById( '.container' ), {
minDuration : 0.4,
maxDuration : 0.7,
viewportFactor : 0.2
} );
</script>
在Chrome控制台中,我收到以下错误。
Uncaught TypeError: Cannot read property 'length' of nul imageLoaded.js
这是为imageLoaded.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;
}
我的css结构是这样的:
<div class="container">
<div class="grid_4"></div>
<div class="grid_4"></div>
<div class="grid_4"><div>
</div>
不确定该去哪里,我是否需要将'number'更改为我班级的名字?很遗失,任何帮助将不胜感激
答案 0 :(得分:0)
(没关系,我刚刚意识到makeArray
是库代码,仍然留下这个错误解释的答案)
问题在于:
if ( typeof obj.length === 'number' )
如果obj
为null
,则obj.length
会引发此异常。
修复将是:
if ( obj && typeof obj.length === 'number' )