关于css3中transform的理解(只是改变状态未改变其真正的属性)
众所周知,在css3中可以用animation实现动画效果,在这里用一个transform:translateX举例。
<div class="div1"></div>
.div1{
margin:0 auto;
width: 100px;
height: 100px;
border:1px solid blue;
-webkit-animation-name: move;
-o-animation-name: move;
animation-name: move;
-webkit-animation-duration: 1s;
-o-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-iteration-count:;
-o-animation-iteration-count:;
animation-iteration-count:;
-webkit-animation-fill-mode: forwards;
-o-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes move{
0%{}
50%{
transform:translateX(-100px);
}
100%{
transform:translateX(100px);
}
}
这段代码运行的结果将会是向左移动100px,然后再从初始状态的基础上向右移动100px。注意这里设置了animation-fill-mode: forwards,所以并不会再回到初始状态。
这段代码可以说明,其transform变形操作,是在基本属性的基础上进行变形操作,并不会改变其初始状态属性的设置。这也给我们一个启示,假如我们设置一个按钮点击之后,让某个div向右平移100px,并设置animation-fill-mode: forwards定格其最后状态。当我们再次点击按钮的时候需要设置div的位置,以left为例的话,就需要先设置left:100px,然后再设置向左平移100px,这时才能达到我们想要的效果。
但是div中的包一个div的情况又有所不同,例如:
<div class="div1">
<div class="div2"></div>
</div>
.div1{
margin:0 auto;
width: 100px;
height: 100px;
border:1px solid blue;
-webkit-animation-name: move;
-o-animation-name: move;
animation-name: move;
-webkit-animation-duration: 1s;
-o-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-iteration-count:;
-o-animation-iteration-count:;
animation-iteration-count:;
-webkit-animation-fill-mode: forwards;
-o-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.div2{
width: 50px;
height: 50px;
border:1px solid yellow;
-webkit-animation-name: move1;
-o-animation-name: move1;
animation-name: move1;
-webkit-animation-duration: 1s;
-o-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-iteration-count:;
-o-animation-iteration-count:;
animation-iteration-count:;
-webkit-animation-fill-mode: forwards;
-o-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes move{
form{}
to{
transform:translateX(-100px);
}
}
@keyframes move1{
0%{}
100%{
transform:translateX(100px);
}
}
这时,我们将会发现,子元素div2会停留在原来的位置不会发生任何改变,这时因为子元素div2本身也是div1的一部分,如果去除掉div2的动画效果,div1和div2将同时向右移动100px,注意这里不要考虑不改变属性值,div2将会在原来属性的基础上,向左移动100px。因为两者都有动画且都是在进行中的,div2是既有div1的动画又有div2的动画,所以最终呈现的效果就是在原来的为位置不发生改变。这时要想达到我们想要得效果的话,就需要吧div2的translateX设置为-200px。
关于css3中transform的理解(只是改变状态未改变其真正的属性)的更多相关文章
- 第98天:CSS3中transform变换详解
transform变换详解 本文主要介绍变形transform. Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放sc ...
- 关于CSS3中transform变换的小坑
2017年6月30日15:05:46 今天在写一个demo的时候,发现CSS3中transform变换的一个特性. 首先,我先描述一下我发现的情况(问题再现): <div class=" ...
- CSS3中transform几个属性值的注意点
transform(变形)是CSS3中的元素的属性,transform的属性值主要包括旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix 基本用法可以参考文 ...
- CSS3中transform属性的用法
有时候网站也要愚弄一下访客,比如愚人节.下面我给大家推荐个效果,就是整个页面左右颠倒了.css3 很强大,简单的几行代码就可以帮我们实现这个效果. view source print? 01 &l ...
- 自己总结的CSS3中transform变换、transition过渡、animation动画的基本用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- css3中transform的用法
transform:rotate旋转deg #box1{ -moz-transform:rotate(10deg); -webkit-transform:rotate(10deg); }transfo ...
- CSS3中transform,transition和animation的简单介绍和使用方法演示样例
transform是一个属性,本质跟width,height是一样的,加上transform也就是为类添加一个变换属性. transition是一个属性.它是用来控制过渡效果的,由于用transfor ...
- CSS3中box-sizing的理解
box-sizing属性可以为三个值之一:content-box(默认),border-box,padding-box,inherit(继承父级box-sizing 属性的值.) content-bo ...
- ectouch 微信支付成功后订单状态未改变的解决办法 (转载)
原文地址: 微信支付支付成功后,返回到mobile/wx_native_callback.php 之前代码 define('IN_ECS', true); require(dirname(__FILE ...
随机推荐
- Web API 2中的Action Results
[译]Action Results in Web API 2 单击此处查看原文 本文阐述了ASP.NET Web API是如何将controller action的返回值转换为HTTP respons ...
- .NET 基础 一步步 一幕幕[面向对象之堆、栈、引用类型、值类型]
堆.栈.引用类型.值类型 内存分为堆和栈(PS:还有一种是静态存储区域 [内存分为这三种]),值类型的数据存储在栈中,引用类型的数据存储在堆中. 堆.栈: 堆和栈的区别: 栈是编译期间就分配好的内存空 ...
- Jquery中toggle的用法详情
jquery ----toggle([speed],[easing],[fn]) 用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的click事件 如果元素是可见的,切换为隐藏的:如果元素是隐藏 ...
- Oracle EBS中分类账和法人实体 的关系(有sql语句实例)
Oracle EBS中分类账和法人实体 的关系(有sql语句实例) 2012-12-06 16:05 2822人阅读 评论(0) 收藏 举报 分类: Oracle EBS(12) Oracle数据 ...
- smbaclient
在linux中通过smbaclient获取windows的共享文件 列出windows的共享目录 $ smbclient -L .xxx -U administrator%password 进入指定共 ...
- TypeScript 学习四 面向对象的特性,泛型,接口,模块,类型定义文件*.d.ts
1,面向对象的特性一:类,继承,见上一篇博客: 2,面向对象的特性二: 泛型(generic):参数化的类型,一般用来限制集合的内容:指定只能放某个类型的元素 如下图中的尖括号中的Person,就代表 ...
- Kafka发送消息失败原因
Kafka发送消息方法如下: Properties properties = new Properties(); properties.put("zookeeper.connect" ...
- fpga之显示字符串
//必须在有效区域下显示颜色才有颜色 显示字符可以在设定一个有效区域内显示 另加两个wire 求出新的x,ymodule vga_fpga( clk,rst_n, vga_b,vga_g,vga_r, ...
- 查询--游标 limit skip sort
打印出所有的里程: var cursor = db.tblDaily.find(); cursor.forEach(function(x){ print(x.DailyCount + x.DailyU ...
- JDK7 LinkedList源代码分析
transient int size = 0; /** * Pointer to first node. * Invariant: (first == null && last == ...