23.列表动画

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>

    <style>

        li{

            border:1px dashed #999999;

            margin:5px;

            line-height:35px;

            padding-left:5px;

            font-size:12px;

            width:100%;

        }

        .v-enter,

        .v-leave-to{

            opacity:0;

            transform:translateY(80px);

        }

        .v-enter-active,

        .v-leave-active{

            transition:all 0.6s ease;

        }

        .v-move{

            transition:all 0.6s ease;

        }

        .v-leave-active{

            position:absolute;

        }

        li:hover{

            background:pink;

            transition:all 0.4s ease;

        }

    </style>

</head>

<body>

<div id="app">

    <div>

        <label>

            id:

            <input type="text" v-model="id">

        </label>

        <label>

            name:

            <input type="text" v-model="name">

        </label>

        <input type="button" value="添加" @click="add">

    </div>

    <div>

        <!--在实现列表过渡的时候,如果需要过渡的元素,是v-for循环渲染出来的,不能用transition包裹,需要使用transitionGroup-->

        <!--如果要为v-for循环创建的元素设置动画,必须为每一个元素设置:key属性-->

        <!--给transition-group添加appear属性,实现页面刚展示出来的时候的效果-->

        <transition-group appear tag="ul">

            <li v-for="(item,i) in list" :key="item.id">

                {{item.id}}--{{item.name}}

                <input type="button" value="删除" @click="del(i)">

            </li>

        </transition-group>

    </div>

</div>

<script>

    var vm=new Vue({

        el:"#app",

        data:{

            id:"",

            name:"",

            list:[

                {id:1,name:"赵高"},

                {id:2,name:"秦桧"},

                {id:3,name:"严嵩"},

                {id:4,name:"魏忠贤"}

            ]

        },

        methods:{

            add(){

                this.list.push({id:this.id,name:this.name});

                this.id="";

                this.name="";

            },

            del(i){

                this.list.splice(i,1);

            }

        }

    })

</script>

</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • data:{ flag:false, id:'', name:'', list:[ {id:1,name:"赵高"...
    不会改变阅读 543评论 0 0
  • Vue 重点 :is="'login'" 组件名称login是一个字符串 需要加上''因为:绑定的属性不加''的话...
    d7cc326f5e9c阅读 330评论 0 0
  • W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的...
    青春前行阅读 1,433评论 0 5
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,505评论 0 13
  • 踏着清晨的第一丝寒风,在规定时间内我赶到了单位。2019,我在此迎新。 今天轮到我和楠值班,我们都是拖家带口的,楠...
    素馨若霞阅读 1,474评论 32 62