Blame view

src/views/error-page/404.vue 4.32 KB
任超 committed
1
<template>
田浩浩 committed
2
  <div>
田浩浩 committed
3
    <img src="./404.png" alt="">
任超 committed
4 5 6 7 8 9 10 11
  </div>
</template>

<script>

export default {
  name: 'Page404',
  computed: {
任超 committed
12
    message () {
任超 committed
13 14 15
      return 'The webmaster said that you can not enter this page...'
    }
  },
任超 committed
16 17
  methods: {
    nextTo () {
任超 committed
18
      this.$router.push({
任超 committed
19 20 21
        path: this.redirect || '/',
        query: this.otherQuery
      })
任超 committed
22 23 24 25 26 27
    },
  }
}
</script>

<style lang="scss" scoped>
任超 committed
28 29
.wscn-http404-container {
  transform: translate(-50%, -50%);
任超 committed
30 31 32 33
  position: absolute;
  top: 40%;
  left: 50%;
}
任超 committed
34

任超 committed
35 36
.wscn-http404 {
  position: relative;
田浩浩 committed
37
  width: 100%;
任超 committed
38 39
  padding: 0 50px;
  overflow: hidden;
任超 committed
40

任超 committed
41 42 43
  .pic-404 {
    position: relative;
    float: left;
田浩浩 committed
44
    width: 100%;
任超 committed
45
    overflow: hidden;
任超 committed
46

任超 committed
47 48 49
    &__parent {
      width: 100%;
    }
任超 committed
50

任超 committed
51 52
    &__child {
      position: absolute;
任超 committed
53

任超 committed
54 55 56 57 58 59 60 61 62 63 64
      &.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;
      }
任超 committed
65

任超 committed
66 67 68 69 70 71 72 73 74 75 76
      &.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;
      }
任超 committed
77

任超 committed
78 79 80 81 82 83 84 85 86 87 88
      &.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;
      }
任超 committed
89

任超 committed
90 91 92 93 94 95
      @keyframes cloudLeft {
        0% {
          top: 17px;
          left: 220px;
          opacity: 0;
        }
任超 committed
96

任超 committed
97 98 99 100 101
        20% {
          top: 33px;
          left: 188px;
          opacity: 1;
        }
任超 committed
102

任超 committed
103 104 105 106 107
        80% {
          top: 81px;
          left: 92px;
          opacity: 1;
        }
任超 committed
108

任超 committed
109 110 111 112 113 114
        100% {
          top: 97px;
          left: 60px;
          opacity: 0;
        }
      }
任超 committed
115

任超 committed
116 117 118 119 120 121
      @keyframes cloudMid {
        0% {
          top: 10px;
          left: 420px;
          opacity: 0;
        }
任超 committed
122

任超 committed
123 124 125 126 127
        20% {
          top: 40px;
          left: 360px;
          opacity: 1;
        }
任超 committed
128

任超 committed
129 130 131 132 133
        70% {
          top: 130px;
          left: 180px;
          opacity: 1;
        }
任超 committed
134

任超 committed
135 136 137 138 139 140
        100% {
          top: 160px;
          left: 120px;
          opacity: 0;
        }
      }
任超 committed
141

任超 committed
142 143 144 145 146 147
      @keyframes cloudRight {
        0% {
          top: 100px;
          left: 500px;
          opacity: 0;
        }
任超 committed
148

任超 committed
149 150 151 152 153
        20% {
          top: 120px;
          left: 460px;
          opacity: 1;
        }
任超 committed
154

任超 committed
155 156 157 158 159
        80% {
          top: 180px;
          left: 340px;
          opacity: 1;
        }
任超 committed
160

任超 committed
161 162 163 164 165 166 167 168
        100% {
          top: 200px;
          left: 300px;
          opacity: 0;
        }
      }
    }
  }
任超 committed
169

任超 committed
170 171 172 173 174 175
  .bullshit {
    position: relative;
    float: left;
    width: 300px;
    padding: 30px 0;
    overflow: hidden;
任超 committed
176

任超 committed
177 178 179 180 181 182 183 184 185 186 187
    &__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;
    }
任超 committed
188

任超 committed
189 190 191 192 193 194 195 196 197 198 199 200
    &__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;
    }
任超 committed
201

任超 committed
202 203 204 205 206 207 208 209 210 211 212
    &__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;
    }
任超 committed
213

任超 committed
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
    &__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;
    }
任超 committed
232

任超 committed
233 234 235 236 237
    @keyframes slideUp {
      0% {
        transform: translateY(60px);
        opacity: 0;
      }
任超 committed
238

任超 committed
239 240 241 242 243 244 245 246
      100% {
        transform: translateY(0);
        opacity: 1;
      }
    }
  }
}
</style>