在移动设备上的CSS或JavaScript中平滑地设置动画高度,可以使用CSS的transition
属性和JavaScript的requestAnimationFrame
方法。以下是一个简单的示例:
.box {
width: 100px;
height: 100px;
background-color: red;
transition: height 0.5s ease-in-out;
}
.box.expanded {
height: 200px;
}
const box = document.querySelector('.box');
function animateHeight() {
const currentHeight = parseFloat(getComputedStyle(box).height);
const targetHeight = box.classList.contains('expanded') ? 100 : 200;
if (currentHeight === targetHeight) {
return;
}
const startTime = performance.now();
const duration = 500;
function updateHeight() {
const now = performance.now();
const progress = Math.min((now - startTime) / duration, 1);
const newHeight = currentHeight + (targetHeight - currentHeight) * progress;
box.style.height = `${newHeight}px`;
if (progress < 1) {
requestAnimationFrame(updateHeight);
}
}
requestAnimationFrame(updateHeight);
}
box.addEventListener('click', () => {
box.classList.toggle('expanded');
animateHeight();
});
在这个示例中,我们首先使用CSS设置了一个盒子的高度,并添加了一个transition
属性,用于平滑地设置动画高度。然后,我们使用JavaScript监听盒子的点击事件,并在点击时切换盒子的高度。最后,我们使用requestAnimationFrame
方法来实现动画效果。
这个示例可以在移动设备上平滑地设置动画高度,并且可以在多种浏览器和设备上运行。
领取专属 10元无门槛券
手把手带您无忧上云