Vue.js 2.0 を使用して背景ビデオ ログイン ページを実装する方法

亚连
リリース: 2018-06-11 16:12:04
オリジナル
4088 人が閲覧しました

この記事では、クールな背景ビデオを備えたログイン ページを実装する方法について説明します。ブラウザ ウィンドウは自由に拡大でき、背景ビデオと前景ログイン コンポーネントの両方を常にウィンドウいっぱいに表示できます。前景コンポーネントは常に中央に配置され、ビデオのコンテンツは常に最大の保持率を実現し、最高の視覚効果を実現します

この記事では、クールな背景ビデオを備えたログイン ページを実装する方法について説明します。ブラウザ ウィンドウは自由に拡大できます。背景ビデオと前景ログイン コンポーネントの両方を完全に調整できます。背景ビデオは常にウィンドウを埋め、前景コンポーネントは常に中央に配置され、ビデオのコンテンツが常に最大限に保持されるため、最高の結果が得られます。映像効果。 Vue.js 2.0 ファミリ バケットに基づいています。具体的な効果を以下の図に示します。

最終的な効果を確認するには、記事の最後にアクセスしてください。

1. 背景ビデオWebページの既存の実装方法

海外に優れたWebサイト「Coverr」があり、フロントエンド開発者がクールな背景ビデオを構築するのに役立つ完全なチュートリアルとビデオリソースを提供しています。ホームページの Web サイト効果の例は次のとおりです:

チュートリアルは次のとおりです:

写真と私の実践から、次の意見が導き出されます:

  • このチュートリアルでは jQuery を使用します。 Vue.js を使用したいので、jQuery を完全に置き換えることができます。

  • このチュートリアルの CSS と JavaScript コードは冗長すぎます。

  • サンプルを直接実行すると、効果が良くないことがわかります。ブラウザ ウィンドウを自由に拡大すると、背景ビデオが完全に適応できず、「黒いエッジやその他の欠陥が表示され」、期待どおりの効果が得られません。

2. 完璧な背景ビデオ Web ページをデザインします

まず、スキャフォールディング ツール vue-cli に基づいて、vue-loader を使用してプロジェクトを作成します。構築が完了したら、「.vue」ファイルを作成します。対応するディレクトリは、ログイン ページのテンプレート ファイルとして使用されます。詳細については繰り返しません。このセクションの内容は .vue ファイルに限定されています。

2.1 HTML テンプレート

ニーズに基づいて、Coverr が提供する HTML テンプレートを少し変更しました。結果は次のとおりです:

<template>
 <p class="homepage-hero-module">
 <p class="video-container">
 <p :style="fixStyle" class="filter"></p>
 <video :style="fixStyle" 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>
 <p class="poster hidden" v-if="!vedioCanPlay">
 <img :style="fixStyle" src="PATH_TO_JPEG" alt="">
 </p>
 </p>
 </p>
</template>
ログイン後にコピー

テンプレートでは、フィルター クラスの p タグが背景のレイヤーです。マスクを通過できるビデオ マスク ビデオの明るさ、暗さ、色温度を制御します。

video タグは標準の HTML5 タグで、2 つの形式のビデオと画像プレースホルダーを提供します。背景ビデオはロード後に自動的に再生されます。

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>
ログイン後にコピー

ほとんどのスタイルはプロジェクトによってグローバルに変更されているため、このテンプレート専用のスタイルがここにあります。残りは 3 つだけです。簡単な説明は次のとおりです:

  • コンテナ p はブラウザ ウィンドウを覆います

  • マスク p はビデオの上に配置され、マスクとして機能します。

2.3 JavaScript コード

<script>
 export default {
 name: &#39;login&#39;,
 data() {
 return {
 vedioCanPlay: false,
 fixStyle: &#39;&#39;
 }
 },
 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 + &#39;px&#39;,
  width: windowWidth + &#39;px&#39;,
  &#39;margin-bottom&#39;: (windowHeight - videoHeight) / 2 + &#39;px&#39;,
  &#39;margin-left&#39;: &#39;initial&#39;
  }
 } else {
  videoHeight = windowHeight
  videoWidth = videoHeight / 0.5625
  this.fixStyle = {
  height: windowHeight + &#39;px&#39;,
  width: windowHeight / 0.5625 + &#39;px&#39;,
  &#39;margin-left&#39;: (windowWidth - videoWidth) / 2 + &#39;px&#39;,
  &#39;margin-bottom&#39;: &#39;initial&#39;
  }
 }
 }
 window.onresize()
 }
 }
</script>
ログイン後にコピー

上記のコードの最も重要な部分は、ウィンドウ オブジェクトの onresize イベントの監視です。ウィンドウ サイズが変更されると、プログラムはビデオとマスク ドームのサイズを同時に変更し、ビデオの最も狭い辺が常にブラウザ ウィンドウを満たすようにし、長い辺は左右で均等に切り取られます。

これにより、ビデオの中心は常にブラウザの中央に配置され、ブラウザウィンドウが任意に拡張された場合でも、ビデオのコンテンツは常に最大限に保持されます。最高の視界が得られます。

最終的な効果は次のとおりです:

上記は私が皆さんのためにまとめたものであり、将来的に皆さんのお役に立つことを願っています。

関連記事:

JS/jQueryで消えるか表示される前に数秒間のDIV遅延を実装する方法

jQueryでダイアログボックスの時間指定非表示を実装する方法

ネイティブjsを使用して地方自治体と自治体レベル3連携

以上がVue.js 2.0 を使用して背景ビデオ ログイン ページを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!