vue-router定義ページ(コンポーネント)間のフェード効果ページ遷移を達成するには? <transition name="fade"></transition>
とVue.jsページ遷移フェード効果とvue-router
答えて
ラップ<router-view></router-view>
及びこれらのスタイルを追加します。
.fade-enter-active, .fade-leave-active {
transition-property: opacity;
transition-duration: .25s;
}
.fade-enter-active {
transition-delay: .25s;
}
.fade-enter, .fade-leave-active {
opacity: 0
}
詳細な回答
例えば、あなたはVUE-CLIを使用してアプリケーションを作成したと仮定:
vue init webpack fadetransition
cd fadetransition
npm install
のインストールルータ:
npm i vue-router
あなたはVUE-CLIを使ってアプリを開発していない場合は、VUEルータに標準的な方法を追加することを確認してください:https://unpkg.com/vue-router/dist/vue-router.js CLIが作成した
:
<script src="/path/to/vue.js"></script>
<script src="/path/to/vue-router.js"></script>
あなたは例えばを使用することができますがバックボーンアプリケーションを使用して、コンポーネントを追加することができます。
1)を作成し、ページ・コンポーネントヴューで
、成分(UI要素)を入れ子にすることができます。アプリ内のページは、そのページの他のコンポーネントのルートと見なされる通常のVueコンポーネントで作成できます。
src/
に移動し、pages/
ディレクトリを作成します。これらのページルートコンポーネント(個々のページ)はこのディレクトリに置かれ、実際のページで使用される他のコンポーネントは既製のcomponents/
ディレクトリに置くことができます。
src/pages/Page1.vue
とsrc/pages/Page2.vue
という名前のファイルに2つのページを作成します。その内容は、(それぞれ編集ページ番号)となります。
<template>
<h1>Page 1</h1>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
編集生成src/main.js
追加に必要な輸入品をルーティング2)セットアップ:
import VueRouter from 'vue-router'
import Page1 from './pages/Page1'
import Page2 from './pages/Page2'
グローバルルータの使用を追加します。
Vue.use(VueRouter)
は、ルータの設定を追加します。
const router = new VueRouter({
routes: [
{ path: '/page1', component: Page1 },
{ path: '/page2', component: Page2 },
{ path: '/', redirect: '/page1' }
]
})
最後のルートはちょうど/page1
に初期パス/
をリダイレクトします。アプリの開始を編集します。
new Vue({
router,
el: '#app',
render: h => h(App)
})
全体src/main.js
例が答えの終わりです。ルーティングは、今では設定されている
3)は、ルータのビューを追加し、ページコンポーネントは、ルータに応じてレンダリングされるだけの場所がありません。これは<router-view></router-view>
をテンプレートのどこかに置くことによって行われ、src/App.vue
の<template>
タグに入れたいと思うでしょう。
src/App.vue
の例全体が答えの最後です。
4)例えば、<transition name="fade">
要素でページコンポーネント
ラップの間<router-view></router-view>
をフェードトランジション効果を追加します。
<template>
<div id="app">
<transition name="fade">
<router-view></router-view>
</transition>
</div>
</template>
Vueが、ここで仕事をする。それが作成し、適切なCSSを挿入しますエフェクトの持続時間を通して指定された名前で始まるクラス(例:.fade-enter-active
)。 App.vueのセクションで効果を定義しましょう:
<style>
.fade-enter-active, .fade-leave-active {
transition-property: opacity;
transition-duration: .25s;
}
.fade-enter-active {
transition-delay: .25s;
}
.fade-enter, .fade-leave-active {
opacity: 0
}
</style>
これはそれです。今すぐアプリを実行するとします。 npm run dev
とすると、自動的にPage 1がフェードイン効果で表示されます。 URLを/ page2に書き換えると、フェードアウトとフェードインのエフェクトが付いたページが切り替わります。
詳細については、routingおよびtransitionsに関するドキュメントをご覧ください。
5)オプション:ページへのリンクを追加します。
あなたは例えば、<router-link>
コンポーネントで特定のページへのリンクを追加することができます。
<router-link to="/page1">Page 1</router-link>
<router-link to="/page2">Page 2</router-link>
これは、自動的にハイパーリンクに彼らがアクティブになっている場合でrouter-link-active
クラスを提供しますが、あなたがしている場合は、カスタムクラスを指定することができます例えば、ブートストラップ:
<router-link class="nav-link" active-class="active" to="/page1">Page 1</router-link>
<router-link class="nav-link" active-class="active" to="/page2">Page 2</router-link>
参照
のsrc/main.jsのためのファイル:
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App'
import Page1 from './pages/Page1'
import Page2 from './pages/Page2'
Vue.use(VueRouter)
const router = new VueRouter({
routes: [
{ path: '/page1', component: Page1 },
{ path: '/page2', component: Page2 },
{ path: '/', redirect: '/page1' }
]
})
/* eslint-disable no-new */
new Vue({
router,
el: '#app',
render: h => h(App)
})
のsrc/App.vue:
<template>
<div id="app">
<router-link class="nav-link" active-class="active" to="/page1">Page 1</router-link>
<router-link class="nav-link" active-class="active" to="/page2">Page 2</router-link>
<transition name="fade">
<router-view></router-view>
</transition>
</div>
</template>
<script>
export default {
name: 'app'
}
</script>
<style>
.fade-enter-active, .fade-leave-active {
transition-property: opacity;
transition-duration: .25s;
}
.fade-enter-active {
transition-delay: .25s;
}
.fade-enter, .fade-leave-active {
opacity: 0
}
</style>
のsrc /ページ/ページ1。 vue:
<template>
<h1>Page 1</h1>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
のsrc /ページ/ Page2.vue:徹底した
<template>
<h1>Page 2</h1>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
- 1. Safariでページ遷移効果?
- 2. 遷移効果とインテント
- 3. ワンフォーム遷移効果
- 4. CSS遷移フェード要素
- 5. テーブル行の遷移効果
- 6. 遷移のスクロール効果
- 7. OpenGL画面遷移効果?
- 8. Vue.js 2ページとvue-routerによる要素の遷移
- 9. CSS遷移がホバーでフェードします
- 10. ロード時のdivへのフェード遷移
- 11. scrollToページ遷移効果を遅らせる
- 12. アンドロイドでのアクティビティ間の遷移効果
- 13. フラッシュメッセージのフェード効果
- 14. ページ遷移アニメーション
- 15. データ変更時のVue.jsの遷移
- 16. UWPページ遷移アニメーション
- 17. CSSのページ遷移
- 18. uipageviewcontrollerの遷移ページ
- 19. Androidライブ壁紙フェード効果
- 20. レイアウト間のフェード効果
- 21. リンクの色にフェード効果
- 22. LinearLayoutフェード効果の内容
- 23. Mootools 1.4.3背景フェード効果
- 24. 同じ画像にフェードとケーンズ効果
- 25. このページ遷移効果はどのように達成できますか?
- 26. Vue.js遷移および遷移グループのアニメーションが機能しない
- 27. ブートストラップ/ jQueryフェード不透明遷移が動作しない
- 28. libGDX - 画面間の単純なフェード遷移?
- 29. 高度なWebページ遷移
- 30. HTML5 - フリップブックのページ遷移
くそー、フェードクラスをありがとう! –
もし私がそれを許せば、私は+ 1を2度持っていました。ありがとう! –
各ページに使用するトランジションを指定する方法はありますか?たとえば、ユーザーがナビゲートしているページに基づいてページを上下に移動しようとしています。 –