vue+TweenMax实现6种页面过渡动画效果代码

代码语言:html

所属分类:其他

代码描述:vue+TweenMax实现6种页面过渡动画效果代码

代码标签: vue TweenMax 页面 过渡 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<html lang="en">

<head>
    <meta charset="UTF-8">
    <style>
        * {
	box-sizing:border-box
}
body {
	background:#202020;
	font-size:62.5%
}
#app {
	overflow:hidden;
	position:absolute;
	left:0;
	top:0;
	width:100vw;
	height:100vh;
	background:#4c4c4c;
	background:-webkit-gradient(left top,right bottom,color-stop(0%,#4c4c4c),color-stop(36%,rgba(43,43,43,0.74)),color-stop(71%,rgba(28,28,28,0.5)),color-stop(100%,rgba(19,19,19,0.29)));
	background:linear-gradient(135deg,#4c4c4c 0,rgba(43,43,43,0.74) 36%,rgba(28,28,28,0.5) 71%,rgba(19,19,19,0.29) 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#4c4c4c",endColorstr="#131313",GradientType=1);
	color:#fff
}
.controls {
	position:absolute;
	left:50%;
	bottom:40px;
	transform:translate(-50%,0);
	width:100%;
	margin-top:30px;
	text-align:center;
	padding:0
}
.controls li {
	opacity:.6;
	cursor:pointer;
	overflow:hidden;
	display:inline-block;
	height:30px;
	margin:0 10px;
	padding:0 30px;
	border-radius:10px;
	font:.8rem/30px Arial,sans-serif;
	font-family:"Ubuntu",Helvetica,Arial,sans-serif;
	background:#505050
}
.controls li.active {
	background:#b6b6b6
}
.page {
	position:absolute;
	left:0;
	top:0;
	width:100vw;
	height:100vh;
	background:#c0c0c0
}
.page .center {
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%);
	width:100%;
	font-size:3rem;
	text-align:center
}
.page h1 {
	width:100%;
	margin:0;
	padding:0;
	font-family:"Ubuntu",Helvetica,Arial,sans-serif;
	font-size:2.8rem;
	text-transform:capitalize
}
.page p {
	font-family:"Vollkorn",Georgia,Times,serif;
	font-size:1.1rem
}
.page a {
	transition:color 200ms ease-out;
	color:rgba(153,153,153,0.8)
}
.page a:hover {
	color:rgba(102,102,102,0.8)
}
.active-animation {
	position:absolute;
	top:30px;
	left:50%;
	transform:translate(-50%,0)
}
.fade {
	background:#461467
}
.slide {
	background:#ffba57
}
.zoom {
	background:#ffc8bb
}
.flipX {
	background:#00dfcf
}
.flipY {
	background:#8ed3c9
}
.slideUp {
	background:#f5dd79
}

    </style>
</head>

<body>
    <!-- partial:index.partial.html -->
    <!-- App -->
    <div id="app">
        <component :is="state.view">
            <h1>{{state.view}}</h1>
        </component>
        <controls></controls>
    </div>
    <!-- Controls -->
    <template id="controls"><ul class="controls"><li v-for="(animation, index) in state.animations" @click.prevent="setView(animation)" v-bind:class="{ 'active': animation === state.view }">{{animation}}</li></ul></template>
    <!-- Transitions -->
    <template id="page"><transition v-on:enter="enter" v-on:leave="leave" v-bind:css="false" appear><div class="page" v-bind:class="state.view"><div class="center"><slot></slot></div></div></transition></template>
    <!-- partial -->
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TweenMax.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue.2.2.min.js"></script>
    <script>
        // State
        const state = {
          animations: ['fade', 'slide', 'slideUp', 'zoom', 'flipX', 'flipY'],
          view: 'slide' };
        
        
        // Controls
        const controls = Vue.component('controls', {
          template: '#controls',
          data: state,
          methods: {
            setView(animation) {
              state.view = animation;
            } } });
        
        
        
        // Transitions
        const fade = Vue.component('fade', {
          template: '#page',
          methods: {
            enter(el, done) {
              TweenMax.fromTo(el, 1, {
                autoAlpha: 0,
                scale: 1.5 },
              {
                autoAlpha: 1,
                scale: 1,
                transformOrigin: '50% 50%',
                ease: Power4.easeOut,
                onComplete: done });
        
            },
            leave(el, done) {
              TweenMax.fromTo(el, 1, {
                autoAlpha: 1,
         .........完整代码请登录后点击上方下载按钮下载查看

网友评论0