返回
原生JS实现翻页动画效果
前端
2024-02-05 04:35:23
大家好,我是隐冬,今天用原生js给大家写一个翻页的效果。
首先完成页面的静态布局。html里面很简单,只有一个ul标签和一个button按钮。ul中的li是通过js动态生成的。
js先获取页面中的ul标签,然后循环生成10个li标签,每个li标签的内容是1到10的数字。
const ul = document.querySelector('ul');
for (let i = 1; i <= 10; i++) {
const li = document.createElement('li');
li.innerText = i;
ul.appendChild(li);
}
接下来是重点,如何实现翻页效果。
我们先给ul标签添加一个class="flip-container",然后在CSS中定义这个class的样式。
.flip-container {
width: 200px;
height: 200px;
overflow: hidden;
perspective: 1000px;
}
这个样式的作用是设置ul标签的宽度和高度,并隐藏溢出内容。perspective属性设置透视效果,使元素看起来有3D效果。
接下来,我们给li标签添加一个class="flip-item",并在CSS中定义这个class的样式。
.flip-item {
width: 100px;
height: 100px;
position: absolute;
backface-visibility: hidden;
transform-style: preserve-3d;
transition: transform 1s;
}
这个样式的作用是设置li标签的宽度和高度,并将其定位为绝对定位。backface-visibility属性隐藏元素的背面,使元素看起来只有一面。transform-style属性设置元素的变换样式,preserve-3d属性使元素在变换时保持3D效果。transition属性设置元素的过渡效果,transform 1s表示元素在1秒内完成变换。
最后,我们给button按钮添加一个事件监听器,当按钮被点击时,触发翻页效果。
const btn = document.querySelector('button');
btn.addEventListener('click', () => {
ul.classList.toggle('flip');
});
这个代码的作用是给ul标签添加一个class="flip",这个class在CSS中定义了翻页动画效果。
这就是如何使用纯JavaScript实现翻页动画效果。希望对大家有所帮助。