【发布时间】:2020-04-04 22:28:58
【问题描述】:
我有一个高度和宽度为 100% 的页面,一个固定大小的 img 容器和一个每秒变化的 img。 Img 在其容器内垂直和水平居中。
问题是当你向下滚动半只猫时,当img发生变化时,滚动开始上下跳跃。
有人可以解释这种行为吗? 我有一个 codepen 来说明这个问题。
html:
<div class="to-change-container">
<img class="to-change"></img>
</div>
<div class="height-stratcher"></div>
css:
html, body {
height: 100%;
margin: 0;
}
body {
overflow: auto;
}
.to-change-container {
height: 300px;
width:300px;
display: flex;
justify-content: center;
align-items: center;
}
.height-stratcher {
height: 1000px;
}
.to-change {
max-height: 100%;
max-width: 100%;
}
js:
picLinks = [
'https://www.meme-arsenal.com/memes/43cdd26dcc65986fac314bcab0d4d2be.jpg',
'https://pngriver.com/wp-content/uploads/2018/04/Download-Red-Cat-PNG.png',
'https://www.meme-arsenal.com/memes/d5054013f48d02a72a054bae89a15992.jpg'
]
setInterval(()=> {
let element = document.getElementsByClassName('to-change')[0];
element.src = picLinks[Math.floor(Math.random()*10) % 3];
}, 1000);
UPD
设置overflow: hidden 似乎可以解决原始代码笔中显示的问题。在图片breaks it again之前添加更改文本。
此外,图像似乎不会影响图像容器的尺寸。
有没有办法在不裁剪和分层的情况下将图像放入容器中?
【问题讨论】:
-
我无法使用您的 codepen 重现此问题。既不是在 chrome 中,也不是在 Edge 中。你能澄清一下到底发生了什么,或者发布一个 gif 图像吗?
-
注意右边的滚动条gif。您需要先向下滚动一点才能看到滚动条跳跃。