Vue转场动画(仿微信)

在这里插入图片描述

  1. 需要动态绑定 transitionname
  <div>
  	<transition :name="transitionName">
	  <router-view></router-view>
  	</transition>
  </div>
  1. 我这里通过记录路由的方式,来判断前进或后退
export default {
  data () {
    return {
      transitionName: '',
      routes: []
    }
  },
  watch: {
    '$route' (to) {
      const routes = [...this.routes]
      if (routes.length === 0) {
        // 首次进入
        to.name && routes.push(to.name)
      } else {
        if (routes.indexOf(to.name) !== -1) {
          // 存在,后退
          this.transitionName = 'slide-right'
          routes.splice(routes.indexOf(to.name) + 1, 100)
        } else {
          // 前进
          this.transitionName = 'slide-left'
          routes.push(to.name)
        }
      }
      this.routes = routes
    }
  }
}
  1. CSS样式
.slide-left-enter {
  transform: translateX(100%);
}
.slide-left-leave-active {
  transform: translateX(-20%);
  z-index: -1;
}
.slide-left-enter-active {
  z-index: 2;
}
.slide-right-enter {
  transform: translateX(-20%);
}
.slide-right-leave-active {
  transform: translateX(100%);
  z-index: 2;
}
.slide-left-enter-active,
.slide-left-leave-active,
.slide-right-enter-active,
.slide-right-leave-active {
  width: 100vw;
  height: 100vh;
  background-color: #fff;
  position: absolute;
  top: 0;
  box-shadow: 0 0 4px 4px rgba(0, 0, 0, .08);
  will-change: transform;
  transition: transform .35s;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为了实现Vue+Element UI仿微信at联系人的功能,可以按照以下步骤进行: 1. 首先安装Vue和Element UI,可以使用npm进行安装。 2. 在Vue中使用Element UI的组件,可以在需要使用的组件中引入,例如: ```javascript import { Input, Autocomplete } from 'element-ui'; export default { components: { 'el-input': Input, 'el-autocomplete': Autocomplete } } ``` 3. 在页面中使用Autocomplete组件实现at联系人的功能,例如: ```html <el-autocomplete v-model="inputValue" :fetch-suggestions="querySearchAsync" placeholder="请输入内容" @select="handleSelect"> <template slot-scope="{ item }"> <div class="name">{{ item.value }}</div> </template> </el-autocomplete> ``` 在data中定义inputValue,querySearchAsync方法用于异步获取联系人列表,handleSelect方法用于选择联系人后的回调。 4. 根据微信的UI样式,可以自定义Element UI的样式,例如: ```css .el-autocomplete .el-input__inner { padding-left: 30px; } .el-autocomplete .el-input__suffix { font-size: 16px; color: #999; left: 10px; } .el-autocomplete .el-autocomplete-suggestion__list { margin-top: 0; border-radius: 0; box-shadow: none; border: 1px solid #dcdfe6; } .el-autocomplete .el-autocomplete-suggestion__item { padding: 10px 20px; font-size: 14px; color: #333; } .el-autocomplete .el-autocomplete-suggestion__item:hover { background-color: #f5f7fa; } ``` 5. 最后,根据微信的UI布局,可以使用Element UI的Tabs组件实现左侧联系人列表和右侧消息窗口的切换,例如: ```html <el-tabs v-model="activeTab"> <el-tab-pane label="联系人列表" name="contact-list"> <!-- 联系人列表 --> </el-tab-pane> <el-tab-pane label="消息窗口" name="message-window"> <!-- 消息窗口 --> </el-tab-pane> </el-tabs> ``` 在data中定义activeTab,用于控制Tabs的切换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZionHH

落魄前端,在线炒粉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值