众所周知,在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的理解(只是改变状态未改变其真正的属性)的更多相关文章

  1. 第98天:CSS3中transform变换详解

    transform变换详解 本文主要介绍变形transform. Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放sc ...

  2. 关于CSS3中transform变换的小坑

    2017年6月30日15:05:46 今天在写一个demo的时候,发现CSS3中transform变换的一个特性. 首先,我先描述一下我发现的情况(问题再现): <div class=" ...

  3. CSS3中transform几个属性值的注意点

    transform(变形)是CSS3中的元素的属性,transform的属性值主要包括旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix 基本用法可以参考文 ...

  4. CSS3中transform属性的用法

    有时候网站也要愚弄一下访客,比如愚人节.下面我给大家推荐个效果,就是整个页面左右颠倒了.css3 很强大,简单的几行代码就可以帮我们实现这个效果. view source   print? 01 &l ...

  5. 自己总结的CSS3中transform变换、transition过渡、animation动画的基本用法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  6. css3中transform的用法

    transform:rotate旋转deg #box1{ -moz-transform:rotate(10deg); -webkit-transform:rotate(10deg); }transfo ...

  7. CSS3中transform,transition和animation的简单介绍和使用方法演示样例

    transform是一个属性,本质跟width,height是一样的,加上transform也就是为类添加一个变换属性. transition是一个属性.它是用来控制过渡效果的,由于用transfor ...

  8. CSS3中box-sizing的理解

    box-sizing属性可以为三个值之一:content-box(默认),border-box,padding-box,inherit(继承父级box-sizing 属性的值.) content-bo ...

  9. ectouch 微信支付成功后订单状态未改变的解决办法 (转载)

    原文地址: 微信支付支付成功后,返回到mobile/wx_native_callback.php 之前代码 define('IN_ECS', true); require(dirname(__FILE ...

随机推荐

  1. AngularJS2之Angular正式初探

    前言:angular的官方教程真的不错.强烈推荐!!!] 按照环境搭建教程新建一个项目: 项目的结构如下: 其中package.json指示node需要安装的插件(npm install指令会安装的插 ...

  2. python绝技 — 嗅探FTP登录口令

    代码: #!/usr/bin/python #--*--coding=utf-8--*-- import optparse from scapy.all import * def ftpsniff(p ...

  3. LR日志解析

    在录制和回放的时候,VU会分别把发生的事件记录成日志文件,这些日志有利于我们跟踪VU和服务器的交互过程. 1.回放日志(Replay log) 脚本回放运行时的输出都记在这个log里. "输 ...

  4. eclipse中svn提交过滤不需要的文件

    eclipse>Preference>Team>Ignored Resource 添加   .settings   .classpath   .project

  5. [SQL基础教程] 4-1 数据的插入(INSERT)

    [SQL基础教程] C4 数据更新 4-1 数据的插入(INSERT) INSERT INSERT INTO <表名>(列1,列2...) VALUES(值1,值2...); 清单 用() ...

  6. jquery ColorPicker 颜色选择器

    $(function() { $('#colorpickerField').ColorPicker({ onSubmit: function(hsb, hex, rgb, el) { $(el).va ...

  7. 关于64位win7环境下VS连接oracle数据库的问题

    本机环境:64位win7,安装了64位的oracle桌面类 服务器环境:64位windows server 2008,64位oracle服务器端 问题:本机用sql developer连数据库没有问题 ...

  8. Zookeeper,Kafka,Spark关系

    Kafka中ZooKeeper的用途 正如ZooKeeper用于分布式系统的协调和促进,Kafka使用ZooKeeper也是基于相同的原因.ZooKeeper用于管理.协调Kafka代理.每个Kafk ...

  9. [Jenkins]怎么删除jenkins里项目配置的svn记录

    问题出现原因: 当持续集成项目运行一段时间之后,你会发现不知不觉中,配置了不少过往的SVN账号,都已经不能用了,失效了,影响选择有时候,想要删除 问题解决办法: 1.选择$JENKINS_HOME/c ...

  10. CentOS 7.2 部署Saltstack

    CentOS 7.2部署Saltstack 一.环境介绍: 服务器名称 IP地址 Salt-Master 192.168.30.141 Slave1 192.168.30.131 Slave2 192 ...