发布时间:2021-03-22 09:44:59编辑:admin阅读(3724)
如果用户输入错误的网址没有提示,界面也不会有任何变化,用户体验非常不友好,所以需要设置错误提示
设置404页面需要在配置路由文件index.js中设置,其中 '*' 代表的就是404页面
// 404 page must be placed at the end !!!{ path: '*', component: () => import('@/views/Layout/components/404'), },
views/Layout/components/404.vue
<template> <div> <div> <div> <img src="@/assets/404_images/404.png" alt="404"> <img class="pic-404__child left" src="@/assets/404_images/404_cloud.png" alt="404"> <img class="pic-404__child mid" src="@/assets/404_images/404_cloud.png" alt="404"> <img class="pic-404__child right" src="@/assets/404_images/404_cloud.png" alt="404"> </div> <div> <div>OOPS!</div> <div>All rights reserved <a style="color:#20a0ff" href="https://wallstreetcn.com" target="_blank">wallstreetcn</a> </div> <div>{{ message }}</div> <div>Please check that the URL you entered is correct, or click the button below to return to the homepage.</div> <a href="">Back to home</a> </div> </div> </div> </template> <script> export default { name: 'Page404', computed: { message() { return 'The webmaster said that you can not enter this page...' } } } </script> <style scoped> .wscn-http404-container{ transform: translate(-50%,-50%); position: absolute; top: 40%; left: 50%; } .wscn-http404 { position: relative; width: 1200px; padding: 0 50px; overflow: hidden; .pic-404 { position: relative; float: left; width: 600px; overflow: hidden; &__parent { width: 100%; } &__child { position: absolute; &.left { width: 80px; top: 17px; left: 220px; opacity: 0; animation-name: cloudLeft; animation-duration: 2s; animation-timing-function: linear; animation-fill-mode: forwards; animation-delay: 1s; } &.mid { width: 46px; top: 10px; left: 420px; opacity: 0; animation-name: cloudMid; animation-duration: 2s; animation-timing-function: linear; animation-fill-mode: forwards; animation-delay: 1.2s; } &.right { width: 62px; top: 100px; left: 500px; opacity: 0; animation-name: cloudRight; animation-duration: 2s; animation-timing-function: linear; animation-fill-mode: forwards; animation-delay: 1s; } @keyframes cloudLeft { 0% { top: 17px; left: 220px; opacity: 0; } 20% { top: 33px; left: 188px; opacity: 1; } 80% { top: 81px; left: 92px; opacity: 1; } 100% { top: 97px; left: 60px; opacity: 0; } } @keyframes cloudMid { 0% { top: 10px; left: 420px; opacity: 0; } 20% { top: 40px; left: 360px; opacity: 1; } 70% { top: 130px; left: 180px; opacity: 1; } 100% { top: 160px; left: 120px; opacity: 0; } } @keyframes cloudRight { 0% { top: 100px; left: 500px; opacity: 0; } 20% { top: 120px; left: 460px; opacity: 1; } 80% { top: 180px; left: 340px; opacity: 1; } 100% { top: 200px; left: 300px; opacity: 0; } } } } .bullshit { position: relative; float: left; width: 300px; padding: 30px 0; overflow: hidden; &__oops { font-size: 32px; font-weight: bold; line-height: 40px; color: #1482f0; opacity: 0; margin-bottom: 20px; animation-name: slideUp; animation-duration: 0.5s; animation-fill-mode: forwards; } &__headline { font-size: 20px; line-height: 24px; color: #222; font-weight: bold; opacity: 0; margin-bottom: 10px; animation-name: slideUp; animation-duration: 0.5s; animation-delay: 0.1s; animation-fill-mode: forwards; } &__info { font-size: 13px; line-height: 21px; color: grey; opacity: 0; margin-bottom: 30px; animation-name: slideUp; animation-duration: 0.5s; animation-delay: 0.2s; animation-fill-mode: forwards; } &__return-home { display: block; float: left; width: 110px; height: 36px; background: #1482f0; border-radius: 100px; text-align: center; color: #ffffff; opacity: 0; font-size: 14px; line-height: 36px; cursor: pointer; animation-name: slideUp; animation-duration: 0.5s; animation-delay: 0.3s; animation-fill-mode: forwards; } @keyframes slideUp { 0% { transform: translateY(60px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } } } </style>
进入src/assets,创建目录404_images,里面放2张图片,图片下载地址:
https://github.com/PanJiaChen/vue-element-admin/tree/master/src/assets/404_images
访问404页面,效果如下:
本文参考链接:
https://blog.csdn.net/weixin_39168052/article/details/81326805
上一篇: vue 使用scss
下一篇: vue meta设置页面
47743
46233
37108
34625
29227
25884
24743
19861
19414
17906
5713°
6312°
5832°
5885°
6981°
5827°
5842°
6358°
6313°
7670°