在官网的开发中 ,PC上需要加一些动画让网页更加的炫酷
常见的就是 将出现的视图内容向上加载过渡动画
将没有动画的“盒子”开发完后加上myanimation 类名就可以。logobox类名是自己的样式类名
<div :class="Animate1 ? 'logobox myanimation' : 'logobox'" ref="logobox">
你的盒子的内容
</div>
myanimation可以设置为公共的class,这样可以只要加上该样式,都能够有上移过渡显示效果
.myanimation{
animation: load 0.51s linear;
transform:translateY(0px);
opacity: 1;
}
@keyframes load {
0% {
opacity: 0;
transform:translateY(80px)
}
100% {
opacity: 1;
transform:translateY(0px)
}
}
utils.js文件
判断当前视口内容是否出现
export const isElementNotInViewport = function(el) {
if (el) {
let rect = el.getBoundingClientRect();
return (
rect.top >=
(window.innerHeight || document.documentElement.clientHeight)
// || rect.bottom <= 0
);
}
};
引用刚才的文件 import { isElementNotInViewport } from "@/utils/utils.js";
监听滚动事件,将div挂载的ref信息传参到isElementNotInViewport函数
data(){
return {
Animate1: false
}
},
mounted() {
// 监听滚动事件
window.addEventListener("scroll", this.scrollToTop);
},
beforeRouteLeave(to, form, next) {
// 离开路由移除滚动事件
window.removeEventListener('scroll',this.scrollToTop);
next();
},
methods: {
// 滚动事件
scrollToTop() {
this.Animate1=!isElementNotInViewport(this.$refs.logobox)
},
}