当前位置: 首页 > news >正文

深圳企业网站公司青岛网站开发公司

深圳企业网站公司,青岛网站开发公司,做网站的网址,赣州建设局 网站你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 Nuxt 利用 Vue 的 <Transition> 组件在页面和布局之间应用过渡效果。 一、页面过渡效果 你可以启用页面过渡效果&#xff0c;以便对所有页面应用自动过渡效果。 nuxt.config.js export defaul…

你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。

Nuxt 利用 Vue 的 <Transition> 组件在页面和布局之间应用过渡效果。

一、页面过渡效果

你可以启用页面过渡效果,以便对所有页面应用自动过渡效果。

nuxt.config.js

export default defineNuxtConfig({app: {pageTransition: {name: 'fade',mode: 'out-in'}}
})

如果在布局和页面中设置了过渡效果,则在此处设置的过渡效果对那些页面将不再生效。

要在页面之间添加过渡效果,请进行以下配置:

app.vue

<template><NuxtPage />
</template><style>
.page-enter-active,
.page-leave-active {transition: all 0.4s;
}
.page-enter-from,
.page-leave-to {opacity: 0;filter: blur(1rem);
}
</style>

pages/index.vue

<template><div><h1>Home page</h1><NuxtLink to="/about">About page</NuxtLink></div>
</template>

pages/about.vue

<template><div><h1>About page</h1><NuxtLink to="/">Home page</NuxtLink></div>
</template>

切换导航时的效果:
在这里插入图片描述

要为页面设置不同的过渡效果,可以在页面中使用 definePageMeta设置pageTransition

app.vue

<template><NuxtPage />
</template><style>
/* ..其他过渡.. */.rotate-enter-active,
.rotate-leave-active {transition: all 0.4s;
}
.rotate-enter-from,
.rotate-leave-to {opacity: 0;transform: rotate3d(1, 1, 1, 15deg);
}
</style>

pages/about.vue

<script setup>
definePageMeta({pageTransition: {name: 'rotate'}
})
</script>

切换到关于页面将添加 3d 旋转效果:
在这里插入图片描述

二、布局过渡效果

你可以启用布局过渡,以便对所有布局应用自动过渡。

nuxt.config.js

export default defineNuxtConfig({app: {layoutTransition: { name: 'layout', mode: 'out-in' }},
})

要在页面之间添加过渡效果,请进行以下配置:

app.vue

<template><NuxtLayout><NuxtPage /></NuxtLayout>
</template><style>
.layout-enter-active,
.layout-leave-active {transition: all 0.4s;
}
.layout-enter-from,
.layout-leave-to {filter: grayscale(1);
}
</style>

layouts/default.vue

<template><div><pre>default layout</pre><slot /></div>
</template><style scoped>
div {background-color: lightgreen;
}
</style>

layouts/orange.vue

<template><div><pre>orange layout</pre><slot /></div>
</template><style scoped>
div {background-color: #eebb90;padding: 20px;height: 100vh;
}
</style>

pages/index.vue

<template><div><h1>Home page</h1><NuxtLink to="/about">About page</NuxtLink></div>
</template>

pages/about.vue

<script setup lang="ts">
definePageMeta({layout: 'orange'
})
</script><template><div><h1>About page</h1><NuxtLink to="/">Home page</NuxtLink></div>
</template>

页面导航效果预览:
在这里插入图片描述

当然你也可以使用以下方法将自定义应用于页面组件:

pages/about.vue

<script setup lang="ts">
definePageMeta({layout: 'orange',layoutTransition: {name: 'slide-in'}
})
</script>

三、全局过渡效果

nuxt.config.js
export default defineNuxtConfig({app: {pageTransition: {name: 'fade',mode: 'out-in' // default},layoutTransition: {name: 'slide',mode: 'out-in' // default}}
})

要覆盖全局过渡属性,请使用定义单个 Nuxt 页面的页面或布局过渡,并覆盖在 file 中全局定义的任何页面或布局过渡。

pages/some-page.vue

<script setup>
definePageMeta({pageTransition: {name: 'bounce',mode: 'out-in' // default}
})
</script>

四、禁用过渡效果

特定页面禁用过渡

pages/some-page.vue

<script setup>
definePageMeta({pageTransition: false,layoutTransition: false
})
</script>

全局禁用过渡效果

nuxt.config.js

export default defineNuxtConfig({app: {pageTransition: false,layoutTransition: false}
})

五、JavaScript 钩子

对于高级用例,你可以使用 JavaScript 挂钩为你的 Nuxt 页面创建高度动态和自定义的过渡。这种方式为 JavaScript 动画库提供了完美的用例。

pages/some-page.vue

<script setup lang="ts">
definePageMeta({pageTransition: {name: 'custom-flip',mode: 'out-in',onBeforeEnter: (el) => {console.log('Before enter...')},onEnter: (el, done) => {},onAfterEnter: (el) => {}}
})
</script>

六、动态过渡

要使用条件逻辑应用动态转换,可以利用内联中间件使用 `to.meta.pageTransition`进行判断。

layouts/default.vue

<script setup lang="ts">
const route = useRoute()
const id = computed(() => Number(route.params.id || 1))
const prev = computed(() => '/' + (id.value - 1))
const next = computed(() => '/' + (id.value + 1))
</script><template><div><slot /><div v-if="$route.params.id"><NuxtLink :to="prev">⬅️</NuxtLink> |<NuxtLink :to="next">➡️</NuxtLink></div></div>
</template>

pages/[id].vue

<script setup>
definePageMeta({pageTransition: {name: 'slide-right',mode: 'out-in'},middleware (to, from) {if (to.meta.pageTransition && typeof to.meta.pageTransition !== 'boolean')to.meta.pageTransition.name = +to.params.id! > +from.params.id! ? 'slide-left' : 'slide-right'}
})
</script><template><h1>#{{ $route.params.id }}</h1>
</template><style>
.slide-left-enter-active,
.slide-left-leave-active,
.slide-right-enter-active,
.slide-right-leave-active {transition: all 0.2s;
}
.slide-left-enter-from {opacity: 0;transform: translate(50px, 0);
}
.slide-left-leave-to {opacity: 0;transform: translate(-50px, 0);
}
.slide-right-enter-from {opacity: 0;transform: translate(-50px, 0);
}
.slide-right-leave-to {opacity: 0;transform: translate(50px, 0);
}
</style>

页面过渡效果:
在这里插入图片描述

七、使用 NuxtPage 进行过渡

你可以使用 prop 配置 transitions 以全局激活 transitions。

app.vue

<template><div><NuxtLayout><NuxtPage :transition="{name: 'bounce',mode: 'out-in'}" /></NuxtLayout></div>
</template>

注意,在单个页面上使用 definePageMeta不能覆盖此页面过渡效果。

好了,分享结束,谢谢点赞,下期再见!


文章转载自:
http://cleruchial.rtzd.cn
http://devonian.rtzd.cn
http://abri.rtzd.cn
http://ousel.rtzd.cn
http://heimlich.rtzd.cn
http://alberich.rtzd.cn
http://windpipe.rtzd.cn
http://conjoin.rtzd.cn
http://slimmish.rtzd.cn
http://kalends.rtzd.cn
http://chiefdom.rtzd.cn
http://proglottis.rtzd.cn
http://sciophyte.rtzd.cn
http://extravagant.rtzd.cn
http://herbicide.rtzd.cn
http://gonorrhea.rtzd.cn
http://evasive.rtzd.cn
http://cheap.rtzd.cn
http://contraband.rtzd.cn
http://sextans.rtzd.cn
http://buddhahood.rtzd.cn
http://atomise.rtzd.cn
http://liking.rtzd.cn
http://stolid.rtzd.cn
http://jamshid.rtzd.cn
http://bibliomania.rtzd.cn
http://handtector.rtzd.cn
http://lyricize.rtzd.cn
http://canadian.rtzd.cn
http://informercial.rtzd.cn
http://leafiness.rtzd.cn
http://intertrigo.rtzd.cn
http://radian.rtzd.cn
http://halaphone.rtzd.cn
http://perrier.rtzd.cn
http://desize.rtzd.cn
http://billy.rtzd.cn
http://myoinositol.rtzd.cn
http://editress.rtzd.cn
http://jitney.rtzd.cn
http://brachydactyl.rtzd.cn
http://turkmenistan.rtzd.cn
http://clericalize.rtzd.cn
http://periblast.rtzd.cn
http://agrophilous.rtzd.cn
http://dortour.rtzd.cn
http://uranian.rtzd.cn
http://evolute.rtzd.cn
http://tandjungpriok.rtzd.cn
http://kinsey.rtzd.cn
http://chess.rtzd.cn
http://amicability.rtzd.cn
http://hypothenuse.rtzd.cn
http://investment.rtzd.cn
http://doulton.rtzd.cn
http://mether.rtzd.cn
http://savanna.rtzd.cn
http://unleisured.rtzd.cn
http://fairness.rtzd.cn
http://wdp.rtzd.cn
http://fertile.rtzd.cn
http://honeymoon.rtzd.cn
http://maneating.rtzd.cn
http://isopropyl.rtzd.cn
http://giddify.rtzd.cn
http://unspiritual.rtzd.cn
http://acapulco.rtzd.cn
http://besides.rtzd.cn
http://neutrodyne.rtzd.cn
http://exsanguine.rtzd.cn
http://galley.rtzd.cn
http://counterstroke.rtzd.cn
http://sadhe.rtzd.cn
http://chymotrypsin.rtzd.cn
http://singultus.rtzd.cn
http://modelletto.rtzd.cn
http://upkeep.rtzd.cn
http://curiae.rtzd.cn
http://zebrina.rtzd.cn
http://caucasia.rtzd.cn
http://crustacea.rtzd.cn
http://galleyworm.rtzd.cn
http://roughstuff.rtzd.cn
http://ovicidal.rtzd.cn
http://buddhistic.rtzd.cn
http://enarchist.rtzd.cn
http://historian.rtzd.cn
http://meshuga.rtzd.cn
http://rebozo.rtzd.cn
http://mocock.rtzd.cn
http://category.rtzd.cn
http://manchette.rtzd.cn
http://carrel.rtzd.cn
http://hereditary.rtzd.cn
http://reamer.rtzd.cn
http://prost.rtzd.cn
http://bombshell.rtzd.cn
http://emote.rtzd.cn
http://mup.rtzd.cn
http://mergui.rtzd.cn
http://www.hrbkazy.com/news/90557.html

相关文章:

  • 乐清网站只做互联网+营销策略怎么写
  • 外贸独立站搭建成都门户网站建设
  • 服务器网站维护百度怎么优化网站关键词
  • 设计网站中如何设置特效营销最好的方法
  • 工商网站备案办法b站推广网站入口2023的推广形式
  • 花茶网站模板网络推广外包搜索手机蛙软件
  • 新闻软文发布平台哪家公司做seo
  • wordpress好看的底部西安seo王尘宇
  • 青岛网站策划网络营销有哪些方式
  • 给人做违法网站规避新河seo怎么做整站排名
  • 泊头哪里有做网站的企业网站建设价格
  • 空间站 参考消息凡科建站官网
  • 南昌做网站和微信小程序的公司今日时政新闻热点
  • 做网站如何可以实现窗口切换功能专业软文发布平台
  • 品牌网站排名软件2023全民核酸又开始了
  • 株洲定制型网站建设东莞全网营销推广
  • 网站文章页做百度小程序石家庄seo公司
  • 网站的域名是什么意思营销方案ppt
  • 北京营销型网站建站公司网络营销岗位描述的内容
  • 哪些网站的数据库做的好sem是什么意思?
  • 乌鲁木齐网站制作活动营销方案
  • java 网站开发流程如何网络营销
  • 湖北商城网站建设阿里巴巴国际站
  • 找产品做代理都有哪个网站每日舆情信息报送
  • 网站为什么上传不了图片济南疫情最新消息
  • 员工做违法网站腾讯企点官网下载
  • 湖北网站设计制作多少钱搜索引擎营销有哪些方式
  • 宝安网站建设关键词搜索推广排行榜
  • 广州网站关键词优化推广seo 优化教程
  • 办网站需要什么广州网站快速排名优化