要实现长页面滑动到指定位置触发动画效果(亲测有效)
2023-12-15 13:31:12
?1.添加触发动画的元素:在你的 HTML 文件中,将需要触发动画的元素添加相应的类名<div class="animation">
? ? ? <p>安全工矿 智能工矿 安全工矿 智能工矿</p>
? ? </div>
给一个 <div>
元素添加 .
animation 类名
表示滚动到该元素时触发淡入动画效果:
<template>
<!-- 品牌管理 -->
<div class="app-page">
<div class="first">
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
<h1>111</h1><br />
</div>
<!-- 需要触发动画的位置 -->
<div class="animation">
<p>安全工矿 智能工矿 安全工矿 智能工矿</p>
</div>
<div class="other">
<p>其他</p>
</div>
</div>
</template>
js:编写 JavaScript 逻辑:在 JavaScript 中,我们需要监听滚动事件,并判断滚动位置是否达到触发动画的条件。一旦条件满足,我们为元素添加触发动画的类名
<script lang="ts" setup>
// 监听窗口滚动事件
window.addEventListener('scroll', function () {
// 获取元素的位置信息
let element: any = document.querySelector('.animation');
let position = element.getBoundingClientRect();
// 判断元素是否进入视窗
if (position.top <= window.innerHeight) {
// 添加触发动画的类名
element.classList.add('animation');
}
});
</script>
使用 CSS3 的 @keyframes
规则来创建自定义的动画效果
<style lang="scss" scoped>
.app-page {
width: 100%;
overflow: auto;
.first {
width: 100%;
}
.animation {
width: 100%;
font-weight: 700;
animation: fadeInAnimation 2s ease-out 0s backwards;
}
}
@keyframes fadeInAnimation {
0% {
transform: translate(-100px);
opacity: 0;
}
50% {
transform: translate();
opacity: 0.5;
}
100% {
transform: translate(0);
}
}
</style>
?
文章来源:https://blog.csdn.net/xiaoming4965/article/details/135012706
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!