【发布时间】:2018-05-30 09:18:03
【问题描述】:
我想在 div 内制作一个图像以在悬停时向下滚动。这部分正在发挥作用。
另外,如果图像更长,我需要让它滚动更长的时间,因此我试图在过渡中使用 calc,但它不起作用。
这是我的代码:
.preview {
position: relative;
width: 75%;
height: 90vh;
overflow: hidden;
border: 1px solid red;
background-color: transparent;
}
.previewimg {
width: 100%;
height: 100%;
top: 0;
background-image: url(https://www.n2odesigns.com/wp-
content/uploads/Projema-Website-Preview-2016.jpg);
background-repeat: no-repeat;
background-size: 100% auto;
background-position-y: 0;
transition: all calc(0.02s * height) ease-in-out;
}
.previewimg:hover {
background-position-y: 100%;
height: 100%;
transition: all calc(0.02s * height) ease-in-out;
}
<div class="preview">
<div class="previewimg"></div>
</div>
如果有其他更好的方法,我也可以使用它。
【问题讨论】:
-
你不能在过渡时期做这样的事情。你可以试试JS
-
谢谢@TemaniAfif,但是还有其他的转换方式吗?我知道用 js 可以,但想用 css 试试。
-
我不认为您可以使用 CSS 动态获取元素的高度并将其转换为与
calc一起使用的值:这比样式更编程,这不是 CSS 的目的 -
我以为你不想使用 JS ...
-
检查我的最后一句话,谢谢 Temani。
标签: css hover css-transitions css-animations transition