【发布时间】:2021-05-14 13:05:45
【问题描述】:
我正在使用我在 JavaScript 中创建的图像的 animate 方法滑入.slider-wrapper,它确实会滑动,但它会跳回到在 animate 方法之前为它设置的第一个位置,这不是我想要的,我希望图像动画并保持在新位置,而不是回到它来自的第一个位置,
我应该对这种方法进行哪些修改?
document.addEventListener('DOMContentLoaded', function (event) {
let sliderWrapper = document.getElementsByClassName('slider-wrapper')[0];
let sliderWrapperWidth = sliderWrapper.offsetWidth;
class Image {
sliderWrapper = document.getElementsByClassName('slider-wrapper')[0];
constructor(_src) {
this.src = _src;
this.width = window.getComputedStyle(sliderWrapper).width;
this.appear()
}
}
Image.prototype.appear = function () {
let img = document.createElement('img');
img.setAttribute("src", this.src);
img.style.width = this.width;
img.classList.add('img');
sliderWrapper.appendChild(img);
img.style.left = `${sliderWrapperWidth}px`;
img.onload = function() {
sliderWrapper.style.height = `${img.height}px`;
}
img.animate({left: 0}, 800);
}
let instance = new Image(`https://via.placeholder.com/150`);
});
*{
padding: 0;
margin: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.slider-wrapper{
position: relative;
max-width: 150px;
margin: 70px auto;
border: 2px solid #ff0000;
box-sizing: content-box;
}
img{
position: absolute;
display: block;
}
<div class="slider-wrapper">
</div>
【问题讨论】:
标签: javascript class animation methods