【发布时间】:2022-01-11 17:55:39
【问题描述】:
我正在使用 css 过渡和一些 javascript 来使元素从左侧或右侧滑入页面。
从右侧(从transform: translateX(100vw); 开始)可以正常工作。
但是从左侧(负转换值:transform: translateX(-100vw);)它根本不起作用。没有错误,但元素在过渡结束时弹出,没有任何“动画”移动。
使用px 值而不是vw 作为负/左侧也可以正常工作。我发现了几个例子,人们使用负 vw 值并且似乎没有问题......
我也试过transform: translateX(calc(0px - 100vw));。运气不好...
(我没有使用任何库等)
<!-- HTML -->
<div class="container">
<div class="slide-in l"></div>
<div class="slide-in r"></div>
</div>
/* CSS */
.slide-in {
transition: transform 0.8s ease;
}
.slide-in.l {
transform: translateX(-100vw); /* this is the line does not work */
}
.slide-in.r {
transform: translateX(100vw);
}
.slide-in.show {
transform: translateX(0);
}
/* JavaScript */
const slider = document.querySelectorAll('.slide-in');
window.addEventListener("load", () => {
slider.forEach(s => {
s.classList.add('show');
})
});
任何想法可能是什么问题?
【问题讨论】:
-
你能把你的代码变成一个工作的sn-p吗?例如,您没有告诉我们 show 类是做什么的,也没有告诉我们幻灯片的内容。
-
你确定这里没有其他 css 在玩吗,我所做的只是为 div 添加一些颜色以使其可见,在 chrome 中它似乎工作正常。
标签: javascript html css css-transitions translate-animation