返回顶部
首页 > 资讯 > 前端开发 > node.js >如何实现基于Vue.js 2.0自适应背景视频登录页面
  • 798
分享到

如何实现基于Vue.js 2.0自适应背景视频登录页面

2024-04-02 19:04:59 798人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关如何实现基于vue.js 2.0自适应背景视频登录页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果: 1. 背景视频 Web

这篇文章将为大家详细讲解有关如何实现基于vue.js 2.0自适应背景视频登录页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

效果:

如何实现基于Vue.js 2.0自适应背景视频登录页面 

1. 背景视频 Web 页面的既有实现方式

国外有一个很好的网站 「Coverr」 ,提供了完善的教程和视频资源,帮助前端开发者构建酷炫的背景视频主页,网站效果示例如下图所示:

如何实现基于Vue.js 2.0自适应背景视频登录页面 

教程如下所示:

如何实现基于Vue.js 2.0自适应背景视频登录页面 

从图中以及我的实践可以得出以下观点:

  • 该教程使用了 Jquery 。由于我们想要使用 Vue.js,则 jQuery 可被完全替代掉。

  • 该教程的 CSSjavascript 代码均过于冗余。

  • 直接运行示例,发现效果并不好,浏览器窗口随意拉伸时,背景视频并不能完美适配「会出现黑边等瑕疵」,效果未达到预期。

2. 设计完美的背景视频 Web 页面

首先基于脚手架工具 vue-cli 来创建一个使用 vue-loader 的项目,构建完毕后,在相应目录下创建「.vue」文件,作为登录页面的模板文件,具体细节不再赘述。本节内容仅局限于该.vue文件。

2.1 HTML 模板

基于需求,对 Coverr 提供的 html 模板进行了细微修改,结果如下:

<template>
 <div class="homepage-hero-module">
 <div class="video-container">
 <div : class="filter"></div>
 <video : autoplay loop class="fillWidth" v-on:canplay="canplay">
 <source src="PATH_TO_MP4" type="video/mp4"/>
 浏览器不支持 video 标签,建议升级浏览器。
 <source src="PATH_TO_WEBM" type="video/webm"/>
 浏览器不支持 video 标签,建议升级浏览器。
 </video>
 <div class="poster hidden" v-if="!vediocanPlay">
 <img : src="PATH_TO_JPEG" alt="">
 </div>
 </div>
 </div>
</template>

模板中, filter 类的 div 标签是一层背景视频的蒙版,可以通过蒙版控制视频的亮暗以及色温等。

video 标签为标准的 HTML5 标签,提供两种格式的视频以及一张图片占位符,背景视频在加载完毕后即自动播放。

Coverr 提供的原始模板,直接调试,页面只显示图片,而无法播放视频,通过使用 Vue.js 的 v-if 指令解决了该问题。

2.2 CSS

对原始模板 CSS 代码进行了大幅精简,修改后的 CSS 代码如下所示:

<style scoped>
 .homepage-hero-module,
 .video-container {
 position: relative;
 height: 100vh;
 overflow: hidden;
 }
 .video-container .poster img,
 .video-container video {
 z-index: 0;
 position: absolute;
 }
 .video-container .filter {
 z-index: 1;
 position: absolute;
 background: rgba(0, 0, 0, 0.4);
 }
</style>

由于大多数样式均被项目全局修改了,所以在此专用于此模板的样式只剩下三条,简要说明如下:

  • 容器 div 铺满浏览器窗口

  • 蒙版 div 位于视频的上方,以起到蒙版的作用。

2.3 JavaScript 代码

<script>
 export default {
 name: 'login',
 data() {
 return {
 vedioCanPlay: false,
 fixStyle: ''
 }
 },
 methods: {
 canplay() {
 this.vedioCanPlay = true
 }
 },
 mounted: function() {
 window.onresize = () => {
 const windowWidth = document.body.clientWidth
 const windowHeight = document.body.clientHeight
 const windowAspectRatio = windowHeight / windowWidth
 let videoWidth
 let videoHeight
 if (windowAspectRatio < 0.5625) {
  videoWidth = windowWidth
  videoHeight = videoWidth * 0.5625
  this.fixStyle = {
  height: windowWidth * 0.5625 + 'px',
  width: windowWidth + 'px',
  'margin-bottom': (windowHeight - videoHeight) / 2 + 'px',
  'margin-left': 'initial'
  }
 } else {
  videoHeight = windowHeight
  videoWidth = videoHeight / 0.5625
  this.fixStyle = {
  height: windowHeight + 'px',
  width: windowHeight / 0.5625 + 'px',
  'margin-left': (windowWidth - videoWidth) / 2 + 'px',
  'margin-bottom': 'initial'
  }
 }
 }
 window.onresize()
 }
 }
</script>

以上代码中最重要的部分是对 window 对象的 onresize 事件的监听。当窗口大小更改时,程序同步修改 video 及蒙版 dom 的尺寸,使得视频的最窄的边始终撑满浏览器的窗口,而长的边左右两边被均匀地裁减。

这样操作,可以使得视频不会被拉伸,视频中心始终位于浏览器的中心,并且在随意拉伸浏览器窗口时,视频的内容始终得到最大限度的保留,并且可以得到最好的视觉效果。

最终效果如下所示:

如何实现基于Vue.js 2.0自适应背景视频登录页面

关于“如何实现基于Vue.js 2.0自适应背景视频登录页面”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何实现基于Vue.js 2.0自适应背景视频登录页面

本文链接: https://lsjlt.com/news/77053.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何实现基于Vue.js 2.0自适应背景视频登录页面
    这篇文章将为大家详细讲解有关如何实现基于Vue.js 2.0自适应背景视频登录页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果: 1. 背景视频 Web ...
    99+
    2024-04-02
  • 基于layui如何实现登录页面
    本篇内容主要讲解“基于layui如何实现登录页面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于layui如何实现登录页面”吧!首先给看下效果图吧!html、js<!DOCTYPE&nb...
    99+
    2023-06-21
  • 如何用CSS实现背景图片自适应?
    这篇文章将为大家详细讲解有关如何用CSS实现背景图片自适应?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现背景图片自适应的CSS方法 总述 在网页设计中,适应性背景图片至关重要,它可以确保图像在不同设...
    99+
    2024-04-02
  • css如何实现背景图片自适应全屏
    本文小编为大家详细介绍“css如何实现背景图片自适应全屏”,内容详细,步骤清晰,细节处理妥当,希望这篇“css如何实现背景图片自适应全屏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。css设置背景图片的方法:可以...
    99+
    2023-07-04
  • html5如何实现视频自动横过来自适应页面且点击播放功能
    这篇文章将为大家详细讲解有关html5如何实现视频自动横过来自适应页面且点击播放功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言在长屏手机里,横过来的视频高度充满,宽度自适应后居中;在短屏手机里,横...
    99+
    2023-06-09
  • 基于SpringMVC如何实现网页登录拦截
    基于SpringMVC如何实现网页登录拦截,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.简介SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filte...
    99+
    2023-06-22
  • 如何实现基于react+webpack的多页面应用
    这篇文章给大家分享的是有关如何实现基于react+webpack的多页面应用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。项目目录介绍:打包后文件目录:打包成cli如果你厌烦了新...
    99+
    2024-04-02
  • 如何实现HTML5页面音视频在微信和app下自动播放
    这篇文章将为大家详细讲解有关如何实现HTML5页面音视频在微信和app下自动播放,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。纯H5页面在手机端中是无法实现自动播放,移动...
    99+
    2024-04-02
  • web前端开发中如何实现背景虚化但内容清晰且自适应
    小编给大家分享一下web前端开发中如何实现背景虚化但内容清晰且自适应,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先看效果:以下为具体实现:<!DOCTYP...
    99+
    2023-06-09
  • 如何实现背景图片自适应浏览器分辨率大小并自动拉伸全屏代码
    这篇文章主要介绍“如何实现背景图片自适应浏览器分辨率大小并自动拉伸全屏代码”,在日常操作中,相信很多人在如何实现背景图片自适应浏览器分辨率大小并自动拉伸全屏代码问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作