node.js里面的声明周期和animate.css动画

1声明周期
<template>
<div id="lifeinfo">
<p>组件的生命周期</p>
<button @click="changeData">修改数据</button>
<p>{{msg}}</p>
</div>
</template>
<script>
export default {
name: "lifeinfo",
beforeCreate() {
// 该组件初始化之前 执行的钩子函数
console.log("初始化之前");
},
created() {
//改组件初始化完成之后
console.log("初始化完成之后");
},
data() {
return {
msg: "修改之前的数据"
};
},
methods:{
changeData(){
this.msg="修改之后的数据";
}
},
beforeMount() {
// 该组件挂载之前
console.log("挂载之前");
},
mounted() {
// 该组件挂载完成
console.log("挂载完成");
},
beforeUpdate() {
// 该组件修改之前
console.log("修改之前",this.msg);
},
updated() {
// 该组件修改之后
console.log("修改之后",this.msg);
},
beforeDestroy() {
// 该组件卸载之前
console.log("卸载之前");
},
destroyed() {
// 该组件卸载之后
console.log("卸载之后");
}
};
</script>
2.动画
<template>
<div id="animateinfo">
<!-- <p>vue动画过渡</p>
<button @click="changeStatus">切换</button>-->
<!-- 默认提供的是fade 淡入淡出
如果transition 组件的name属性为my-transition
切换成对应自定义 自定义名称替换默认的v-

-->
<!-- <transition name="slide-fade">

  <div class="block" v-if="ischange">动画</div>
</transition>-->

<!-- <transition name="transform-top-fade">
  <div class="nav" v-show="ischange">标题</div>
</transition>-->

<!--
    动画可以通过上面的方式来写   也可以通过  transition  组件提供的自定义过渡类名称的属性来写动画
    enter-class
    enter-active-class
    enter-to-class

    leave-class
    leave-active-class
    leave-to-class

    name属性写  custom-classes-transition  系统的动画类名称

-->
<!-- 下面的这个动画  和  讲的自定义类属性无关 -->
<div class="menu" @touchstart="startinfo" @touchmove="moveinfo" @touchend="endinfo">
  <ul class="navlist" key="1" :style="`transform:translate(${translateX}px);`">
    <li>喜剧</li>
    <li>科幻</li>
    <li>动画</li>
    <li>动漫</li>
    <li>记录</li>
    <li>魔幻</li>
    <li>爱情</li>
  </ul>
</div>
<!--
   写自定义类动画
-->
<transition
  name="custom-classes-transition"
  enter-active-class="animateenter"
  leave-active-class="animateleave"
  enter-class="animateinfoenter"
  leave-to-class="animateinfoleave"
>
  <div class="menulist" @click="isshow=!isshow" v-show="isshow">我是一个组件</div>
</transition>

<!-- 用animate  css 结合使用transition
1.安装animate.css
2.mainjs 文件里面进行引入
3.直接在transition组件上使用
-->
<button @click="isblock=!isblock">animate</button>
<!-- :duration  属性是设置进入和离开的动画时间   写一个值 两个动画时间一直  也可以分开写 -->
<transition
  name="custom-classes-transition"
  enter-active-class="animated slideInRight"
  leave-active-class="animated fadeOutDown"
  :duration="{enter:100,leave:100}"
>
  <div v-if="isblock">使用animate.css</div>
</transition>
<!--
    transition 组件有对应的钩子函数  可以在钩子函数里面写代码
    v-on  监听

    使用  过渡结合动画
    [email protected]
    1.安装  cnpm install --save-dev [email protected]
    2.直接在那个组件里面使用 在哪引入

-->
<transition
  @before-enter="beforeenter"
  @enter="enter"
  @after-enter="afterenter"
  @before-leave="beforeleave"
  @leave="leave"
  @after-leave="afterleave"
>
  <div v-if="isblock">使用animate.css</div>
</transition>

</div>
</template>
<script>
// 引入动画
import Velocity from "velocity-animate";
export default {
name: "animateinfo",
data() {
return {
ischange: true,
startx: null,
endx: null,
translateX: 0,
scw: 0,
isshow: true,
isblock: true
};
},
mounted() {
this.scw = window.screen.availWidth;
},
methods: {
beforeenter(el) {
// 动画进入之前设置css样式
el.style.opacity = 0;
el.style.transformOrigin = "center";
},
enter(el, done) {
console.log("动画进入");
//option loop 设置循环的 delay 设置延迟时间 Display & Visibility 动画结束后设置的 complete 为动画执行完成之后的回调函数
//begin 是动画开始前的回调函数 easing 设置动画效果 duration 设置动画的时间
Velocity(
el,
{ opacity: 1, fontSize: "30px" },
{
duration: 1000,
delay: 300,
begin: () => {
console.log("动画准备开始");
},
complete: () => {
console.log("动画执行完成");
}
}
);
done(); //继续执行
},
afterenter(el) {
Velocity(
el,
{ opacity: 1, fontSize: "25px", color: "#c0c0c0" },
{ duration: 500 }
);
console.log("动画进入之后");
},
beforeleave(el) {
console.log("动画离开之前");
},
leave(el, done) {
Velocity(el, { fontSize: "40px", opacity: 1 }, { duration: 1000 });
Velocity(
el,
{ fontSize: 0, opacity: 0 },
{ delay: 1000, duration: 1000 }
);
console.log("动画离开");
},
afterleave(el) {
console.log("动画离开之后");
},
changeStatus() {
this.ischange = !this.ischange;
},
startinfo(e) {
//触屏开始
let touch = e.touches;
this.startx = touch[0].pageX;
},
moveinfo(e) {
//触屏移动
let touch = e.touches;
this.endx = touch[0].pageX;
//判断触屏的方向
this.translateX = 0;
if (this.endx && this.startx) {
let sx = this.endx - this.startx;
if (sx < 0) {
this.translateX += sx;
if (Math.abs(this.translateX) > this.scw - 490) {
this.translateX = this.scw - 490;
}
} else {
this.translateX += sx;
if (Math.abs(this.translateX) > this.scw - 490) {
this.translateX = -(this.scw - 490);
}
}
}
},
endinfo(e) {
this.endx = null;
this.startx = null;
}
}
};
</script>
<style>
/ .block {
width: 100px;
height: 100px;
border: 1px solid #000;
border-radius: 50%;
text-align: center;
line-height: 100px;
}
/
/* 动画的类

v-enter 定义过渡开始状态
v-enter-active 定义过渡状态生效时状态
v-leave 定义离开过渡开始状态
v-leave-active 定义离开过渡生效时的状态
v-leave-to 定义离开过渡结束时的状态
/
/
.slide-fade-enter-active,
.slide-fade-leave-active {
transition: all 1s;
}
.slide-fade-enter,
.slide-fade-leave-to {
transform: translatex(40px) rotatez(180deg);
opacity: 0;
}
.nav {
position: relative;
width: 100%;
height: 30px;
left: 0;
top: 0;
border: 1px solid #c0c0c0;
}
.transform-top-fade-enter-active {
transition: all 0.3s ease;
}
.transform-top-fade-leave-active {
transition: all 1s ease-in-out;
}
.transform-top-fade-enter,
.transform-top-fade-leave-to {
left: 50%;
top: -100px;
width: 100px;
opacity: 0;
} */

/ 根据transition 组件的自定义类属性写动画 /
.menu {
width: 100%;
height: 40px;
line-height: 40px;
border: 1px solid #000;
box-sizing: border-box;
overflow: hidden;
}
.navlist {
width: 490px;
overflow: hidden;
transition: all 0.1s linear;
}
.navlist > li {
list-style: none;
float: left;
width: 70px;
}

.menulist {
position: relative;
height: 100px;
width: 100%;
left: 0;
border: 1px solid #000;
}
.animateenter,
.animateleave {
transition: all 0.8s ease-in-out;
}
.animateinfoenter,
.animateinfoleave {
opacity: 0;
width: 50%;
left: 25%;
}
</style>

原文地址:https://blog.51cto.com/14584021/2484286

时间: 2024-10-15 12:56:29

node.js里面的声明周期和animate.css动画的相关文章

node.js ----NPM使用介绍

NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用. 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了.同样可以通过输入 "npm -v" 来测试是否成功安装.命令如下,出现版本提示表示安装成功: $

10个最好的 Node.js MVC 框架

Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API  以及大量的服务器库,使它能够快速构建 Web 服务器,而无需使用外部软件(如 Apache 和 Lighttpd 等).这些框架使得它更加用户友好,易于使用,还支持众多的特性和功能,只要按照几个步骤就可以开发出庞大的 Web 应用程序. 1) Sails js Sails 是一款优秀的框架,可以很容易地开发定制的,

CSS--使用Animate.css制作动画效果

一 使用Animate.css动画 // 通过@import引入外部CSS资源; // 引入线上图片及JS文件; // 通过更改CSS类名生成不同类型的CSS3动画;   1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 </head> 6 <style> 7 /* Animate.css GitHu

方便大家学习的Node.js教程(一):理解Node.js

理解Node.js 为了理解Node.js是如何工作的,首先你需要理解一些使得Javascript适用于服务器端开发的关键特性.Javascript是一门简单而又灵活的语言,这种灵活性让它能够经受住时间的考验.函数.闭包等特性使Javascript成为一门适合Web开发的理想语言. 有一种偏见认为Javascript是不可靠的,然而事实并非如此.人们对Javascript的偏见来源于DOM,DOM是浏览器厂商提供的用于Javascript与浏览器交互的API,不同浏览器厂商实现的DOM存在差异.

详解Node.js API系列C/C++ Addons(3) 程序实例

http://blog.whattoc.com/2013/09/08/nodejs_api_addon_3/ 再续前文,前文介绍了node.js 的addon用法和google v8 引擎,下面,我们进入真正的编码,下面将会通过六个例子,学习node addon 范例,了解addon编程的特性 创建一个空项目 随机数模块 向模块传递参数 回调函数处理 线程处理 对象管理 创建一个空项目 vi modulename.cpp #include <node.h> void RegisterModul

Node.js开发入门—UDP编程

Node.js也提供了UDP编程的能力,相关类库在"dgram"模块里. 与TCP不同,UDP是无连接的,不保障数据的可靠性,不过它的编程更为简单,有时候我们也需要它.比如做APP的统计或者日志或者流媒体,很多流媒体协议都会用到UDP,网上一搜一大堆. 使用UDP,如果你要发送数据,只需要知道对方的主机名(地址)和端口号,扔一消息过去即可.至于对方收不收得到,听天由命了.这就是数据报服务,类似快递或邮件. 我们这次来介绍一下Node.js里的UDP编程,我会提供一个UDP版本的echo

Node.js开发入门—引入UIBootstrap

很多Web管理系统的侧边菜单是可折叠的(手风琴样式),我们在前面两篇文章里的HTML模板,自己用div.css做了一些处理,可效果不好.所以我请来了一个前端UI框架,UI Bootstrap,来帮忙.别看它名字里带一个Bootstrap,但它并不依赖Bootstrap,而是用AngularJS实现的原生指令哦.我讨厌太多的依赖,这个我喜欢. 这篇我们以"Angular简单示例"里的AngularDemo为基础,我说到的目录什么的,都遵循express应用的默认目录结构. UI Boot

vue 之node.js 02

文档 铺垫 以前网页制作web1.0 如今是web2.0-->交互式操作 前端工具 grunt gulp webpack :打包机 作用:将项目中的js,css,img,font,html等进行捆绑 编译成一个.js文件进行加载 请求 // img src , css href , audio src a href 都是对服务器发起一次请求 并行操作 ---> 异步 amd 和 cmd 模板化 异步模块定义 ---自己百度 什么是node.js 一种后端语言 # Node.js 是一个基于 C

10个常见的Node.js面试题

如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. 在进入正文之前,需要提前声明两点: 这些问题只是Node.js知识体系的一个局部,并不能完全考察被面试者的实际开发能力. 对现实世界开发中遇到的问题,需要的是随机应变与团队合作,所以你可以尝试结对编程. Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听8