编写一个登录页面,使用 Tab 栏实现“账号登录”和“二维码登录”这两种方式的切换,并通过 transition 组件结合 anim ate.css实现切换时的动画效果。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Tab切换</title>

    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>

    <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">

    <style>

      #content{

        width: 400px;;

        margin: 60px auto;

      }

      .title{

        height: 50px;

        border-bottom: 1px solid #e1e7ec;

        text-align: center;

      }

      #content a{

        text-decoration: none;

        color: black;

        font-size: 16px;

        background: #f1f1f1;

        padding: 5px 10px;

        margin: 0 10px;

        border-radius: 5px;

      }

      .form-input{

        height: 46px;

        line-height: 46px;

        margin-top: 10px;;

      }

      input{

        box-sizing: border-box;

        padding: 0 25px;

        background: #eef3f5;

        border-radius: 8px;

        width: 100%;

        height: 100%;

        border: 0;

        outline: 0;

        font-size: 14px;

      }

      #content .active{

        background-color: #09f;

        color: #fff;

      }

      .primary-button{

        background: linear-gradient(325deg,#4aa4ff,#1058fa);

        width: 100%;

        height: 42px;

        border-radius: 23px;

        border: 0;

        outline: none;

        color: #fff;

        letter-spacing: 10px;

        font-weight: 500;

        font-size: 16px;

        cursor: pointer;

        margin-top: 30px;

      }

      .pic{

        width: 200px;

        height: 200px;

        margin: 0 auto;

      }

      .pic img{

        width: 100%;

        height: 100%;

      }

    </style>

  </head>

<body>

  <!-- 定义登录组件 -->

  <template id="example1">

   <div>

    <!-- 唯一的根容器 -->

    <div class="form-input">

      <input type="text" name="user" placeholder="请输入手机号/邮箱" class="form-input" >

    </div>

    <div class="form-input">

        <input type="password" name="psd" placeholder="请输入密码" class="form-input" >

    </div>

    <button type="button" class="primary-button"><span>登录</span></button>

   </div>

  </template>

  <!-- 定义注册组件 -->

  <template id="example2">

    <div class="pic">

      <img src="images/code.jpg">

    </div>

  </template>

  <div id="content">

    <div class="title">

      <a href="javascript:;" @click="compontentName = 'example1',cur=0" :class="{active:cur == 0}">账号登录</a>

      <a href="javascript:;" @click="compontentName = 'example2',cur=1" :class="{active:cur == 1}">二维码登录</a>

    </div>

    <transition enter-active-class="animated bounceInDown">

      <component :is="compontentName"></component>

    </transition>

  </div>

<script>

  Vue.component('example1',{template:'#example1'})

  Vue.component('example2',{template:'#example2'})

  var vm = new Vue({

    el: '#content',

    data: {

      compontentName :'example1',

      cur:0

      }

  });

</script>

</body>

</html>

运行结果:

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Werfgf

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值