物件定位與 fadeUp動畫,會先移到錯誤的位置,再彈回去正確位置
這是我的js
var eles = Array.prototype.slice.call(document.querySelectorAll('.animated'));
document.addEventListener('scroll', animatedFadeInUp);
animatedFadeInUp();
function animatedFadeInUp() {
eles = eles.filter(function(ele) {
var rect = getRect(ele);
if (rect.isVisible) {
ele.classList.add('slideUp');
return false;
}
return true;
});
if (eles.length <= 0) document.removeEventListener('scroll', animatedFadeInUp);
}
function getRect(ele) {
var inHeight = window.innerHeight;
var rect = ele.getBoundingClientRect();
rect.isVisible = rect.top - inHeight < 0;
// rect.isBottom = rect.bottom - inHeight <= 0;
return rect;
}
@keyframes slideUp {
from {
opacity: 0;
-webkit-transform: translate3d(0, 20%, 0);
transform: translate3d(0, 20%, 0);
}
to {
opacity: 1;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
}
如果物件沒有定位(position),則不會被影響
但是假設有定位,他會先移動到一個很怪的角度,之後才會變回去該有的位置
因為我的動畫有 transform,
我定位的時候也是用transform 50%
就像是:
position: absolute;
left:50%;
top:300px;
transform: translate(-50%,0);
-webkit-transform: translate(-50%,0);
這樣我要怎麼讓他原本就是正確的位置?即便 slideUp
?不會先到一個很怪的位置,動畫結束後再彈回去原本我定位的位置?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
這我已經解決了~關閉