Cannot read properties of undefined (reading 'offsetWidth') at img.onload
时间: 2023-08-25 15:15:47 浏览: 185
这个错误是因为在代码中引用的元素的属性offsetWidth未定义。根据提供的引用内容 [1,这个错误可能发生在以下代码段中:
```
oItems.forEach((item, index) => {
//...
item.style.left = minIndex * item.offsetWidth + 'px'
//...
})
```
这段代码中,计算了一个元素的left位置,但是在这之前并没有确保该元素的图像已经完全加载。解决这个问题的方法是在设置left位置之前,确保图像已经加载完成。一个简单的方法是使用img元素的onload事件来监听图像加载完成的事件,然后再设置left位置。例如,可以修改代码如下:
```
oItems.forEach((item, index) => {
//...
item.querySelector('img').onload = () => {
item.style.left = minIndex * item.offsetWidth + 'px'
item.style.top = oArr[minIndex + 'px'
oArr[minIndex += item.offsetHeight
}
//...
})
```
这样,当图像加载完成后再设置left位置,就不会出现"Cannot read properties of undefined (reading 'offsetWidth')"的错误了。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [JS中一些经常遇到的错误](https://blog.csdn.net/ITjun666/article/details/127433632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]
阅读全文