vue--动画收缩
首先 install vuex
创建store文件夹
在 store 文件夹分别建立
state.js
// 状态管理
// 定义state 原始数据
const state = {
fullScreen: false
} export default state
mutation-types.js
// 定义Mutations相关的字符串常量
// Mutations的修改动作
export const SET_FULL_SCREEN = 'SET_FULL_SCREEN'
mutations.js
// Mutations 定义对数据修改的逻辑
import * as types from './mutation-types' const mutations = {
[types.SET_FULL_SCREEN](state, flag) {
state.fullScreen = flag
}
} export default mutations
actions.js
// 对mutation进行封装
import * as types from './mutation-types' export const selectPlay = function ({commit, state}, {list, index}) {
commit(types.SET_FULL_SCREEN, true)
}
getters.js
// 获取state 对数据进行映射 用getters取state的数据去到组件里
// getters可以是个函数 类似于计算属性 可以根据state的不同值计算出新的值 可以在getters里写一些复杂的判断逻辑 export const fullScreen = state => state.fullScreen
index.js
// 入口
import Vue from 'vue'
import Vuex from 'vuex'
import * as actions from './actions'
import * as getters from './getters'
import state from './state'
import mutations from './mutations'
import createLogger from 'vuex/dist/logger' Vue.use(Vuex) const debug = process.env.NODE_ENV !== 'production' export default new Vuex.Store({
actions,
getters,
state,
mutations,
strict: debug,
plugins: debug? [createLogger()] : []
})
在main.js导入store
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store' /* eslint-disable no-new */
new Vue({
el: '#app',
store,
router,
render: h => h(App)
})
创建meow.vue
<template>
<div class="meow">
<transition name="normal">
<div class="normal-vue" v-show="fullScreen">
<div class="background">
</div>
<div class="top">
<div class="back" @click="back">
<i class="icon-back"></i>
</div>
<h1 class="title"></h1>
<h2 class="subtitle"></h2>
</div>
</div>
</transition>
<transition name="mini">
<div class="mini-vue" v-show="fullScreen">
<div class="icon">
</div>
<div class="text">
<h2 class="name"></h2>
<p class="desc"></p>
</div>
</div>
</transition>
</div>
</template>
script
<script type="text/ecmascript-6">
import { mapGetters, mapMutations } from 'vuex' export default {
computed: {
...mapGetters([
'fullScreen'
])
},
methods: {
back() {
this.setFullScreen(false)
},
open() {
this.setFullScreen(true)
},
...mapMutations({
setFullScreen: 'SET_FULL_SCREEN'
})
} }
</script>
css
<style lang="stylus" scoped>
.meow
.normal-vue
position: fixed
left:
right:
top:
bottom:
z-index:
background: #aaaaaa
.background
position: absolute
left:
top:
width: %
height: %
z-index: -
opacity: 0.6
filter: blur(20px)
.top
position: relative
margin-bottom: 25px
.back
position absolute
top:
left: 6px
z-index:
.icon-back
display: block
padding: 9px
font-size: 16px
color: #003a39
transform: rotate(-90deg)
.title
width: %
margin: auto
line-height: 40px
text-align: center
no-wrap()
font-size: 18px
color: #fff
.subtitle
line-height: 20px
text-align: center
font-size: 14px
color: #fff
.mini-vue
display: flex
align-items: center
position: fixed
left:
bottom:
z-index:
width: %
height: 60px
background: #a1a1a1
.icon
flex: 40px
width: 40px
padding: 10px 20px
.text
display: flex
flex-direction: column
justify-content: center
flex:
line-height: 20px
overflow: hidden
.name
margin-bottom: 2px
no-wrap()
font-size: 14px
color: #fff
.desc
no-wrap()
font-size: 12px
color: #
</style>
vue--动画收缩的更多相关文章
- vue动画的用法
vue动画 在vue.js中有两种写动画的方法,第一种就是像js里一样,用原生代码来实现,第二种则是使用animate.css的动画类文件,这个动画类和bootstrap.css文件类似,直接调用类就 ...
- vue动画及其原理
1,vue动画的实现原理,主要是通过在不同时期给需要动画的dom元素加上css动画样式 我们以显示和隐藏动画为例 a, 需要动画的dom元素 b,点击时vue控制往vue中加的样式 2, 我们以两张 ...
- vue教程3-02 vue动画
vue教程3-02 vue动画 以下代码,已经用包管理器下载好vue,animate <!DOCTYPE html> <html lang="en"> &l ...
- vue动画实现方式
vue动画实现方式 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&q ...
- vue动画理解,进入、离开、列表过度和路由切换。
vue的动画对于很多初学者,甚至对很多老鸟来说也是很费劲,不容易控制的. 这篇文章讲vue动画的理解.其实没那么难. 动画理解 一个元素从A状态变成B状态,如果这个过程通过某种方式反应在视图上了,那么 ...
- Vue动画操作
概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animate.c ...
- vue 动画原理 part1
Vue动画原理 增加和删除css增加样式实现一个过渡效果也就是动画效果 1.需要动画效果的标签外包裹一个transition标签 会被自动分析css样式,然后自动构建一个动画流程 transition ...
- Javascript - Vue - 动画
动画状态类名 vue动画通过将需要执行动画的标签放入transition标签中,再通过设置预置的vue动画类名的css样式来控制动画的呈现效果. 开场动画状态的三个类名 v-enter:动画开始之前的 ...
- 15.vue动画& vuex
Vue.config.productionTip = false; ==是否显示提示信息== ==import/export== export xxx 必须跟跟对象或者和定义一起 对象: export ...
- vue动画
最近想搞搞vue的过渡和动画,以为照着官网写就好了,谁知道还是出现一些状况 具体表现就是不用webpack打包时候写的过渡是正常的,而用了webpack打包就不正常了 说使用了未定义的element: ...
随机推荐
- 浅析MySQL InnoDB的隔离级别
MySQL InnoDB存储引擎中事务的隔离级别有哪些?对应隔离级别的实现机制是什么? 本文就将对上面这两个问题进行解答,分析事务的隔离级别以及相关锁机制. 隔离性简介 隔离性主要是指数据库系统提供一 ...
- UGUI动态更换精灵图片
//动态更换精灵图片 m_headimage.overrideSprite = Resources.Load("texture/"+info.HeadPortrait,typeof ...
- 007-li标签CSS水平居中垂直居中
水平居中是text-align:center垂直居中 一般是用 line-height比如你li的高度是80px 那你设置 line-height:80px 文字就垂直居中
- Fiddler抓包【2】_捕获设置
1.Fiddler抓web网站请求 手动设置方法一:Tools--->WinINET Options--->连接--->局域网设置--->代理服务器勾选后“高级”---> ...
- 【转载】SVN使用教程总结
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
- Angular4 管道
- subversion实用命令整理
使用命令在仓库中创建目录 使用命令查看仓库中的内容 使用命令删除仓库中的内容 创建目录 svn mkdir --parents -m 'makeSubDirectory' file:///path/t ...
- 了解Linux操作系统发展阶段
一.硬件与软件发展历史 计算机由硬件和软件组成结构 二.Linux的发展史 Linux 操作系统是Unix操作系统的一种克隆系统.它诞生于1991年的10月5日(只是第一次正式向外公布的时间).以后借 ...
- Android SDK Manager for Mac 在线更新镜像地址截至2017-10-01亲测有效
虽然国内google被墙了,但仍可利用国内的某些镜像网站实现Android SDK在线更新,使用方法如下: 1.启动 Android SDK Manager ,打开主界面,依次选择『Tools』.『O ...
- Rsync使用方法
Rsync是一款开源.快速.多功能.可实现全量及增量的本地或者远程数据同步的优秀工具.并且支持多系统平台运行.Rsync具有本地与远程两台主机之间的数据快速复制同步镜像.远程备份等功能,该功能类似sc ...