Nuxt的路由动画效果案例


Posted in Javascript onNovember 06, 2020

路由的动画效果,也叫作页面的更换效果。Nuxt.js提动两种方法为路由提动动画效果,一种是全局的,一种是针对单独页面制作。

全局路由动画

全局动画默认使用page进行设置,例如现在我们为每个页面都设置一个进入和退出时的渐隐渐现的效果。我们可以先在根目录的assets/css下建立一个main.css文件。

/assets/css/main.css

.page-enter-active,.page-leave-active{
 transition: opacity 2s;
}
.page-enter,.page-leave-active{
 opacity: 0;
}

然后在nuxt.config.js里加入一个全局的css文件就可以了。

module.exports = {
 /*
 ** Headers of the page
 */
 head: {
 title: 'delnuxt',
 meta: [
  { charset: 'utf-8' },
  { name: 'viewport', content: 'width=device-width, initial-scale=1' },
  { hid: 'description', name: 'description', content: 'Nuxt.js project' }
 ],
 link: [
  { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
 ],
 },
 css:['~assets/css/normailze.css','~assets/css/main.css'],
 /*
 ** Customize the progress bar color
 */
 loading: { color: '#3B8070' },
 /*
 ** Build configuration
 */
 build: {
 /*
 ** Run ESLint on save
 */
 extend (config, { isDev, isClient }) {
  if (isDev && isClient) {
  config.module.rules.push({
   enforce: 'pre',
   test: /\.(js|vue)$/,
   loader: 'eslint-loader',
   exclude: /(node_modules)/
  })
  }
 }
 }
}

这时候在页面切换的时候就会有2秒钟的动画效果了,但是你会发现一些页面时没有效果,这是因为你没有使用<nuxt-link>组件来制作跳转链接。你需要进更改。

比如改成如下:

<nuxt-link :to="{name:'news',params:{newsId:3306}}">NEWS</nuxt-link>

改过之后你就会看到有动画效果了。

单独设置页面动效

想给一个页面单独设置特殊的效果时,我们只要在css里改变默认的page,然后在页面组件的配置中加入transition字段即可。例如,我们想给about页面加入一个字体放大然后缩小的效果,其它页面没有这个效果。

在全局样式assets/main.css中添加以下内容。

.test-enter-active,.test-leave-active{
 transition: all 2s;
 font-size: 12px;
}
.test-enter,.test-leave-active{
 opacity: 0;
 font-size: 40px;
}

然后在about/index.vue组件中设置

<script>
export default {
 transition:'test'
}
</script>

补充知识:vue-ssr框架nuxt填坑

Nuxt.js 1.0.0 初始化与依赖包安装

vue init nuxt/started

npm install

npm run dev

npm run dev 报错

> nuxt-temp@1.0.0 dev E:\MaYunProject\nuxt-temp
> nuxt

E:\MaYunProject\nuxt-temp\node_modules\nuxt\dist\nuxt.js:79
async function promiseFinally(fn, finalFn) {
  ^^^^^^^^

SyntaxError: Unexpected token function
 at createScript (vm.js:56:10)
 at Object.runInThisContext (vm.js:97:10)
 at Module._compile (module.js:542:28)
 at Object.Module._extensions..js (module.js:579:10)
 at Module.load (module.js:487:32)
 at tryModuleLoad (module.js:446:12)
 at Function.Module._load (module.js:438:3)
 at Module.require (module.js:497:17)
 at require (internal/module.js:20:19)
 at Object.<anonymous> (E:\MaYunProject\nuxt-temp\node_modules\nuxt\index.js:17:20)

npm ERR! Windows_NT 10.0.14393
npm ERR! argv "G:\\node\\node.exe" "G:\\node\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev"
npm ERR! node v6.11.4
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! nuxt-temp@1.0.0 dev: `nuxt`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nuxt-temp@1.0.0 dev script 'nuxt'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the nuxt-temp package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!  nuxt
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!  npm bugs nuxt-temp
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!  npm owner ls nuxt-temp
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!  E:\MaYunProject\nuxt-temp\npm-debug.log

解决错误

将node 升级到 node8.12.0

升级到nuxt-edge Nuxt.js 2.0

1、运行 npm run dev报错

ERROR Failed to compile with 1 errors
  Module build failed (from ./node_modules/eslint-loader/index.js):
  TypeError: Cannot read property 'eslint' of undefined
   at Object.module.exports (.../node_modules/eslint-loader/index.js:148:18)

  You may use special comments to disable some warnings.
  Use // eslint-disable-next-line to ignore the next line.
  Use /* eslint-disable */ to ignore all warnings in a file.

2、修正错误:编辑nuxt.conf.js文件并将其更改为

- module.exports = {
  + export default {
   // ...
   build: {
    /*
    ** Run ESLint on save
    */
   - extend (config, { isDev, isClient }) {
   -  if (isDev && isClient) {
   + extend (config, { isDev }) {
   +  if (isDev && process.client) {
     config.module.rules.push({
     enforce: 'pre',
     test: /\.(js|vue)$/,
     loader: 'eslint-loader',
     exclude: /(node_modules)/
     })
    }
    }
   }
  }

3、 重启服务,打开浏览器并访问:http://localhost:3000/。

以上这篇Nuxt的路由动画效果案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
(function($){...})(jQuery)的意思
Jul 22 Javascript
jQuery学习笔记之jQuery的DOM操作
Dec 22 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
Jan 15 Javascript
JavaScript中setAttribute用法介绍
Jul 20 Javascript
jquery中each方法示例和常用选择器
Jul 08 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
Jun 01 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
基于vue的换肤功能的示例代码
Oct 10 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
JavaScript数组特性与实践应用深入详解
Dec 30 Javascript
微信小程序中target和currentTarget的区别小结
Nov 06 #Javascript
vue router-link 默认a标签去除下划线的实现
Nov 06 #Javascript
微信小程序调用后台service教程详解
Nov 06 #Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 #Javascript
在nuxt中使用路由重定向的实例
Nov 06 #Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
Nov 06 #Javascript
Nuxt的路由配置和参数传递方式
Nov 06 #Javascript
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
php use和include区别总结
2019/10/13 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
Vuex的actions属性的具体使用
2019/04/14 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
python实现在windows下操作word的方法
2015/04/28 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
消防安全检查制度
2014/02/04 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
中秋联欢会主持词
2015/07/04 职场文书
保护地球的宣传语
2015/07/13 职场文书
百年校庆感言
2015/08/01 职场文书
家长会感言
2015/08/01 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
Win11更新失败并提示0xc1900101
2022/04/19 数码科技