vue2 过渡 轮播图
---恢复内容开始---
Vue主要渲染条件:
v-if:是将元素删除再创造出来进行渲染。
v-show:是将元素的display=none掉,再进行渲染;
要点知识:v-key:唯一元素标识,若不设置v-key,相同的名字的标签不会被从新渲染,只会瞬间改变内容。这个非常有用,轮播图就靠它了。
只有满足将dom元素删除(v-if类似)或者display:none(v-show类似)掉,才会渲染。只改变位置,或者颜色等其他,是不会被渲染的,但这种情况,直接使用普通方法就好了,没必要用vue的过渡模式。
两个标签:
transition标签:将需要过渡的元素放在里面,就能进行过渡,但里面过渡的标签实际只有一个,按条件显示到底是哪一个标签。
transition-group:里面可以放很多元素,v-for出来的元素必须放里面。里面可以设置个tag=‘p’,当显示在浏览器中时,就变成p标签。里面的元素必须设置v-key。
两种方式:
javascript钩子:在javascript中设置过度阶段属性。
css方式:在css中设置过度阶段属性。
四个阶段:
1、enter:元素开始渲染的状态,还没有渲染。
2、enter-to(active):这两个区别搞不明白,这个不行就换另一个。就是目标状态,从enter 到enter-to的状态,transition:all 3s就写在这个状态下。
3、leave:开始删除或者隐藏元素,开始前的位置或者状态。
4、leave-to(active):到达这个状态时元素被删除或者隐藏。是过度状态。跟2相同。
无缝轮播图类型:这儿做一张图可见、有圆点,点击可选择图片、左右点击可切换,一共7张图,清理bug。
思路:
首先要明白渲染条件:见vue的渲染条件。
主要思路:轮播图中,它显示的那张图片在浏览器中可以看到有dom元素。隐藏的是没有dom元素的。所以如果显示一张图片,实际上,轮播列表中只有一个元素是存在的,其他的都被删掉了。按照这个思路,就很简单了。想要轮播,设置:enter:右边→enter-to:正常位置,并且过渡完成→leave:正常位置→leave-to:左边,并且过渡完成。
需了解:当它开始渲染新的一张的时候,旧的那一张会与新的一张同时存在,这就有2个元素。当旧的那一张过渡时间完成后,就会被删除。
代码如下:
html:
javascript:
遗留问题:
当使用transitionend事件代替定时器触发图片运动后执行代码时,发现并不理想,有时候运动结束后并不能触发@transitionend事件,猜测是过渡时出现了2个img元素,transitionend会分别探测2个元素动画结束,如果有2中style过度,就是应该一次动画触发4次transitionend,但触发次数并不是稳定在4次,非常奇怪。
还有种方式就是不用position,使用transform,但是很遗憾,ie貌似并不支持。
v-enter-to与v-enter-active区别不明。如果enter-to是代替enter-active的,那在transition-group中,enter-to是不比enter-active好用的,官网的例子可以说明。
vue2 过渡 轮播图的更多相关文章
- Vue2 轮播图组件 slide组件
Vue2原生始轮播图组件,支持宽度自适应.高度设置.轮播时间设置.左右箭头按钮控制,圆点按钮切换,以及箭头.圆点按钮是否显示. <v-carousel :slideData="slid ...
- vue2.0 + vux (五)api接口封装 及 首页 轮播图制作
1.安装 jquery 和 whatwg-fetch (优雅的异步请求API) npm install jquery --save npm install whatwg-fetch --save 2. ...
- vue2 使用 swiper 轮播图效果
第一步.先安装swiper插件 npm install swiper@3.4.1 --save-dev 第二步.组件内引入swiper插件 import Swiper from 'swiper' im ...
- 【jQuery】百分比自适应屏幕轮播图特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS3+JS切割轮播图
以下说明数据,是指有4张图片的轮播图,分别切割成4张. 首先,做成单张切换的立体效果,即通过旋转,确定四张图片的位置,分别是一个立方体的上下前后的图片翻转移动角度. .box ul li:nth-ch ...
- C3属性的轮播图(持续更新)
天气好冷,都不想写代码.就先写个没有焦点的轮播图,过两天在补全. 用的是CSS3的属性 过渡transition 和 转换 transfrom:translateX() 只做了轮播和 鼠标进入停止轮播 ...
- 原生js实现轮播图
原生js实现轮播图 很多网站上都有轮播图,但找到一个系统讲解的却很难,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些不正确的地方,希望大家可以指出. 原理: 将一些图片在一行中平铺,然后计 ...
- React中使用CSSTransitionGroup插件实现轮播图
动画效果,是一个页面上必不可少的功能,学习一个新的东西,当然就要学习,如何用新的东西,用它的方法去实现以前的东西啦.今天呢,我就在这里介绍一个试用react-addons-css-transition ...
- css动画属性--轮播图效果
通过css的动画属性实现轮播图的显示效果 代码如下: 主体部分: <div id="move"> <ul> <li><img src=&q ...
随机推荐
- 游标遍历所有数据库循环执行修改数据库的sql命令
MSSQL数据库服务器上有很多类似的数据库,需要将这些数据库统一修改其中的某些表或者某些命令,那么就会想到用游标来遍历. 先来说思路: 1,首先需要查询出所有的数据库: select [name] f ...
- winform在鼠标操作时要判断是否按下Ctrl键
(Control.ModifierKeys & Keys.Control) == Keys.Control
- git以及github的初级入门(一)
本身学习git的操作是没什么兴趣的,毕竟原本是win平台学的java开发,git下那么多复制的命令行操作确实比较让人头疼,直到昨天我打开计算机的时候,我放置项目的E盘,以及F盘,G盘盘符都不见了!!我 ...
- Linux中MySQL配置文件my.cnf参数优化
MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的.MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的 ...
- ORACLE-015:ora-25153 暂时表空间为空,ora01652 无法通过128
写了一个复杂的select语句,突然oracle就报了:ora-25153 暂时表空间为空,这个错误,于是网上查了下.发现了例如以下解决方法:创建一个新的暂时表空间. 首先要有system权限.登录进 ...
- C#线程等待句柄
相互排斥对象 Mutex private Mutex m = new Mutex(); public void Method(){ m.WaitOne(); //运行操作 m.ReleaseMutex ...
- x86内存映射
Contents 1 "Low" memory (< 1 MiB) 1.1 Overview 1.2 BIOS Data Area (BDA) 1.3 Extended BI ...
- 柯塔娜(Cortana):从科幻虚构到真实人生
依照商业法理.7月29日.随着Win10公布的东风."小娜"与"小冰"两姊妹相会于中国北京. 在"小娜"眼中,"小冰"仅 ...
- 快速上手virtualenv
五分钟轻松学会管理项目开发环境. 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.x.所有第三方的包都会被pip安装到Python3的site-packages目录下. p ...
- git上传到github
一. Git创建 1. git init 命令来初始化一个Git仓库 2. 添加文件到Git仓库,分两步 1) 使用命令 git add <file>,可以反复多次添加,添加多个文件 2) ...