Vue过渡&循环切换&放大缩小动画

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue过渡与循环切换和放大缩小</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<style>
.box {
    margin-left: 150px;
}
.box01{
  width: 200px;
  height: 200px;
  background-color: red;
}
.box02{
  width: 200px;
  height: 200px;
  background-color: blue;
}
.div_transition_text{
    overflow: hidden;
    background-color: pink;
    height: 260px;
    width: 500px;
    text-align: center;
}
#animat{
    position:relative;
    animation:mymove 3s infinite;
    animation-direction:alternate;/*轮流反向播放动画。*/
    animation-timing-function: ease-in-out; /*动画的速度曲线*/
    -webkit-animation:mymove 3s infinite; /*Safari and Chrome*/
    -webkit-animation-direction:alternate;/*轮流反向播放动画。*/
    -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
}
@keyframes mymove{
    0%{
        transform: scale(1);  /*开始为原始大小*/
    }
    25%{
        transform: scale(1.2); /*放大1.1倍*/
    }
    50%{
        transform: scale(1);
    }
    75%{
        transform: scale(1.2);
    }
}
@-webkit-keyframes mymove{
    0%{
        transform: scale(1);
    }
    25%{
        transform: scale(1.2);
    }
    50%{
        transform: scale(1);
    }
    75%{
        transform: scale(1.2);
    }
}
.bounce-enter-active {
  animation: bounce-in 1s;
}
.bounce-leave-active {
  animation: bounce-in 1s reverse;
}
@keyframes bounce-in {
  0% {
    transform: scale(1.5);
  }
  50% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.5);
  }
}
.ready_btn {
    height: 35px;
    width: 100px;
    background: blue;
    text-align: center;
    line-height: 35px;
    margin-left: 200px;
    margin-top: 50px;
}
.fade-enter-active, .fade-leave-active {
    transition: opacity 1s
}
.fade-enter, .fade-leave-to {
    opacity: 0
}
</style>
</head>
<body>
<div id = "databinding">
    <div class="div_transition_text">
        <transition name = "fade">
            <div v-show = "show1" :style = "styleobj">111111111111111111111111</div>
        </transition>
        <transition name = "fade">
            <div v-show = "show2" :style = "styleobj">222222222222222222222222</div>
        </transition>
        <transition name = "fade">
            <div v-show = "show3" :style = "styleobj">333333333333333333333333</div>
        </transition>
        <transition name = "fade">
            <div v-show = "show4" :style = "styleobj">444444444444444444444444</div>
        </transition>
    </div>
    <div v-show=‘showDoctor‘ class=‘box box01‘></div>
    <div v-show=‘!showDoctor‘ class=‘box box02‘></div>
    <transition name="bounce">
        <div v-show="show" class="ready_btn" id="animat">我准备好了!</div>
    </transition>
</div>
<script type = "text/javascript">
new Vue({
    el: ‘#databinding‘,
    data: {
        myInterval: ‘‘,
        showDoctor: true,
        show: true,
        show1: false,
        show2: false,
        show3: false,
        show4: false,
        styleobj :{
            ‘fontSize‘:‘30px‘,
            ‘color‘:‘red‘,
            ‘margin-top‘: ‘20px‘,
            ‘margin-bottom‘: ‘20px‘
        }
    },
    created() {
        this.myInterval = setInterval(() => {
            this.showDoctor = !this.showDoctor;
        },1000);     // 利用Promise对象的特性,保证动画链式显示
        new Promise((resolve, reject) => {
            setTimeout(() => {
                this.show1 = true;
                resolve();
            }, 600);
        }).then(() => {
            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    this.show2 = true;
                    resolve();
                }, 600);
            }).then(() => {
                return new Promise((resolve, reject) => {
                    setTimeout(() => {
                        this.show3 = true;
                        resolve();
                    }, 600);
                }).then(() => {
                    return new Promise((resolve, reject) => {
                        setTimeout(() => {
                            this.show4 = true;
                        }, 600);
                    })
                })
            })
        });
    }
})
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/penghewen-cnblogs/p/11468508.html

时间: 2024-10-02 00:42:37

Vue过渡&循环切换&放大缩小动画的相关文章

keyframes 放大缩小动画

本次项目中动画放大缩小代码小结 .fix .phone{ -moz-animation: myfirst 1s infinite; -webkit-animation: myfirst 1s infinite; -o-animation: myfirst 1s infinite; animation: myfirst 1s infinite;} @keyframes myfirst{ 0% { transform: scale(.8); } 50% { transform: scale(1);

swift3.0 图片放大缩小动画效果

一. 内容说明 跟我之前这篇类似,只不过那篇是OC版本,这篇是Swift版本 OC版本链接地址 目的:通过kingfisher请求5张图片,展示出来.然后利用图片放大缩小管理类展示图片,多张图片可以滑动浏览 效果图如下,想看动态的效果图,请看上面链接中的OC版本效果图,跟这篇是一样的. 本demo,只加载本地图片的demo下载链接 ,需要加载网络图片的,需要下载Kingfisher 二.源码展示 0. 图片测试demo源码 [html] view plain copy import Founda

ui基础--放大缩小动画

首先我们用pod安装2个三方库: use_frameworks! target 'Love--动画' do pod 'pop', '~> 1.0.9' pod 'POP+MCAnimate', '~> 2.0' end 实现代码: #import "RootViewController.h" @interface RootViewController () @property (nonatomic, strong) UIImageView *myImageView; @pr

CSS3圆圈动画放大缩小循环动画效果

代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>CSS3圆圈动画放大缩小循环动画效果</title> <style> .dot { margin:150px auto; width:200px; height

IOS 开发笔记-基础 UI(3)按钮的使用(放大缩小、改变位置,首位式动画)和学习案例

UIKit框架提供了非常多的UI控件,但并不是每一个都很常用,有些控件可能1年内都用不上,有些控件天天用,比如UIButton.UILabel.UIImageView.UITableView等等,按钮控件是非常重要且比较基础的一个UI控件---UIButton,一般情况下,点击某个控件后,会做出相应反应的都是按钮,按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置. 案例: 功能分析 (1)左下角4个方向按钮,控制头像按钮的位置 (2)右下角分别是放大.缩小按钮,控制

ViewPager图片预览之图片的放大缩小,移动,切换(第三课)连载

第三课(第三步):支持以手指触控的任意点为中心开始缩放 关键部分是在缩放的时候不断进行边界检测,防止放大后缩小后出现白边: /** * 在缩放的时候进行边界控制范围位置控制 */ private void checkBorderAndCenterWhenScale() { // TODO Auto-generated method stub RectF rect = getMatrixRectF(); float deltaX = 0; float deltaY = 0; float width

Vue.js 系列教程 5:动画

原文:intro-to-vue-5-animations 译者:nzbin 译者的话:经过两周的努力,终于完成了这个系列的翻译,由于时间因素及个人水平有限,并没有详细的校对,其中仍然有很多不易理解的地方.我和原作者的初衷一样,希望大家能够通过这个系列文章有所收获,至少可以增加学习的乐趣,我也在学习的路上,所学心得必将与大家共勉. 这是 JavaScript 框架 Vue.js 五篇教程的第五部分.在这个系列的最后一部分,我们将学习动画(如果你了解我,你知道这一章迟早会来).这不是一个完整的指南,

Vue 过渡

过渡 通过 Vue.js 的过渡系统,可以在元素从 DOM 中插入或移除时自动应用过渡效果.Vue.js 会在适当的时机为你触发 CSS 过渡或动画,你也可以提供相应的 JavaScript 钩子函数在过渡过程中执行自定义的 DOM 操作. 为了应用过渡效果,需要在目标元素上使用 transition 特性: <div v-if="show" transition="my-transition"></div> transition 特性可以与

CABasicAnimation的基本使用方法(移动&#183;旋转&#183;放大&#183;缩小)

最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家学习. CABasicAnimation类的使用方式就是基本的关键帧动画. 所谓关键帧动画,就是将Layer的属性作为KeyPath来注册,指定动画的起始帧和结束帧,然后自动计算和实现中间的过渡动画的一种动画方式. CABasicAnimation的基本使用顺序 1.引用QuartzCore.framew