切换路由时添加切换效果,使用label重写单选按钮

先看效果图:

红色按钮是用label重写的 单选按钮;

切换路由时有移动效果的代码:

<template>
  <div id="app">
    <transition> // Vue 提供了 transition 的封装组件
         <router-view/>
     </transition>
      <div id="nav">
      <router-link to="/">首页</router-link> 
      <router-link to="/about">关于</router-link>
      <router-link to="/setting">设置</router-link>
    </div>
  </div>
</template>

<style lang="scss">
.v-enter{ // v-enter:定义进入过渡的开始状态。元素被插入之前生效,在元素被插入之后的下一帧移除 
  transition: all .5s ease;
  transform: translateX(100%);
}
.v-leave-to{ // v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态
  transition: all .5s ease;
  opacity: 0;
  transform: translateX(-100%);
  position:absolute;
}
.v-leave-active,.v-enter-active{ // v-enter-active:定义进入过渡生效时的状态
                                // v-leave-active:定义离开过渡生效时的状态
   transition: all .5s ease;
}
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  overflow-x: hidden;margin:0;
}
body{margin:0;}
#nav {
  padding: 30px;
  position:fixed;
  bottom:0;
  width:100%;
  background:skyblue;
  margin:0!important;
  display: flex;
  justify-content: space-around;
  a {
    font-weight: bold;
    color: #2c3e50;
    font-size:30px;
    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>

以v- 开头的几个类名 v-enter 等是transition自带的;

重写单选按钮的html代码:

<input type="checkbox" name="sex" id="male" />
     <label for="male"> </label>
     <input type="radio" name="sex" id="male1" />
     <label for="male1"> </label>

css代码:

 .home{
    font-size:30px;
  }
  #male{
    display:none;
  }
  label {
 display: inline-block;
 width: 50px;
 height: 50px;
 border: 1px solid #333;
 border-radius: 50%;
 position: relative;
}
label:before{
  content:'';
  display: inline-block;
  height:30px;
  width:30px;
  border-radius:50%;
  border: 1px solid #333;
  position: absolute;
  top:50%;
  left:50%;
  margin:-16px 0 0 -16px;
}
input:checked+label:before{
 background:red;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值