本文最后更新于 458 天前,其中的信息可能已经有所发展或是发生改变。
vue视频背景在app中导入html
<div class="box">
<video autoplay loop muted="" preload>
<source src="../src/components/xgPlayer/8c22afd58dec4d1fbb09b8603986a54e.mp4">
</video>
</div>
导入css
#app{
/*其他*/
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
video {
z-index: -9999;
width: 100%;
position: absolute;
top: 0;
left: 0;
}
.m-content-display {
display: flex;
flex-direction: column;
min-height: 100%;
}
.m-router-view {
flex: 1;
}
}
新建一个特效组件在app导入
<template>
<div id="panel">
</div>
</template>
<script>
export default {
methods: {
mouseMove(e) {
/*这里获取元素节点*/
let oPanel = document.getElementById("panel");
let oSpan = document.createElement(`span`);
/*浏览器兼容*/
e = e || window.Event;
// let x = e.clientX;
// let y = e.clientY;
/*获取相关参数*/
oSpan.style.left = e.clientX + `px`;
oSpan.style.top = e.clientY - 50 + `px`;
/*设定随机数存储在size中*/
let size = Math.random() * 20;
/*给节点赋值参数数值*/
oSpan.style.width = 5 + size + `px`;
oSpan.style.height = 5 + size + `px`;
/*在body中添加span标签*/
oPanel.appendChild(oSpan);
/*设置定时器 间隔时间为2000毫秒*/
setTimeout(() => {
/*清除ospan节点*/
oSpan.remove();
}, 1000);
},
},
mounted() {
/*这里是给整个页面添加了一个鼠标移动的监听事件 e为事件对象*/
document.addEventListener(`mousemove`, this.mouseMove);
},
beforeDestroy() {
document.removeEventListener(`mousemove`, this.mouseMove);
},
};
</script>
<style lang='less'>
#panel {
// height: 100vh;
width: 100%;
// display: flex;
// align-items: center;
// justify-content: center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
span {
width: 10px;
height: 10px;
background: #55b9f3;
border-radius: 50%;
position: absolute;
box-shadow: 5px 5px 15px #489dcf, -5px -5px 15px #62d5ff;
animation: blow 4s linear infinite;
-webkit-animation: blow 4s linear infinite;
}
}
/*这里是定义里一个动画效果*/
@keyframes blow {
0% {
transform: translate(-50%, -50%);
/*这里是定义初始透明度为1*/
opacity: 1;
/*
这里是初始滤镜效果
给图像应用色相旋转。"angle"一值设定图像会被调整的色环角度值。
值为0deg,则图像无变化。若值未设置,默认值是0deg。
该值虽然没有最大值,超过360deg的值相当于又绕一圈。
*/
filter: hue-rotate(0deg);
/*这里是浏览器兼容*/
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
}
100% {
/*
2D转化
这里是从自身向上平移
*/
transform: translate(-50%, -1000%);
/*这里是定义结束时透明度为0*/
opacity: 0;
/*
这里是结束滤镜效果
给图像应用色相旋转。"angle"一值设定图像会被调整的色环角度值。
值为0deg,则图像无变化。若值未设置,默认值是0deg。
该值虽然没有最大值,超过360deg的值相当于又绕一圈。
*/
filter: hue-rotate(720deg);
/*这里是浏览器兼容*/
-webkit-transform: translate(-50%, -1000%);
-moz-transform: translate(-50%, -1000%);
-ms-transform: translate(-50%, -1000%);
-o-transform: translate(-50%, -1000%);
-webkit-filter: hue-rotate(720deg);
}
}
</style>
完成视频动态背景
好厉害苏神