css动画效果

1: transition

div {
width: 200px;
height: 100px;
background-color: pink;
  /* transition: 要过渡的属性 花费时间 运动曲线 何时开始; */
  /* transition: width 0.6s ease 0s, height 0.3s ease-in 1s; */
  /* transtion 过渡的意思 这句话写到div里面而不是 hover里面 */
  /*transition: all 0.6s; 所有属性都变化用all 就可以了 后面俩个属性可以省略 */
  /*默认的是ease 先快在慢*/
  transition: width 1s,height 2s;


}
div:hover { /* 鼠标经过盒子,我们的宽度变为400 */

  width: 600px;
  height: 600px;
}

2:transform:translate()

div {
  width: 100px;
  height: 100px;
  background-color: pink;
  /*transform: translateX(x, y)*/
  /*变形: 移动*/
  transition: all 0.5s;

}
div:hover {
  transform: translateX(100px);
  /*a:active 鼠标没点击没有松开鼠标的时候触发的状态 相当于点击*/
  /*transform: translate(50px, 50px); 当我们点击之后再移动位置*/
  /*transform: translate(50px); 当我们点击之后再移动位置 x轴*/
  /*transform: translate(0, 50px); 当我们点击之后再移动位置 y轴*/
  /*只跟一个参数就是 X*/
  /*transform: translateY(100px); 只跟一个参数就是 Y*/
}

例子:让盒子居中

  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);

3: transform: scale(n);

div img {
  transition: all 0.2s;  因为图片缩放了, /*实际图片做动画 所以过渡要给img 做动画 谁做动画,谁加过渡*/
}
div:hover img{
  transform: scale(1.2);  /*鼠标经过盒子的时候 里面的img做 缩放*/
}

4: transform: rotate(360deg); transform-origin: transform-origin: top right;   /2D旋转/

img {
  margin: 200px;
  transition: all 0.6s;
  transform-origin: top right;/*旋转的中心点,默认是中心位置,设置之后可以改变旋转的中心点*/
}
img:hover {

  transform: rotate(360deg); /* deg 度数*/
}

透视效果:perspective: 10000px

body {
  perspective: 10000px; 视距 距离 眼睛到屏幕的距离 视距越大效果越不明显 视距越小,透视效果越明显
}
img {
  display: block;
  margin: 100px auto;
  transition: all .2s;
}
img:hover {
  transform: rotateX(360deg);
}

5: transform: skew(-30deg, 30deg); /倾斜/

6:动画:

div {
  width: 100px;
  height: 100px;
  background-color: pink;
  animation: go 2s ease 0s infinite alternate; /*引用动画*/
  /*animation:动画名称 动画时间 运动曲线 何时开始 播放次数 是否反方向;*/
  /*动画名称是自己定义的 go google*/
  /*infinite 无限循环*/
  /*一般情况下,我们就用前2个 animation: go 2s*/
}
/*@keyframes go {} 定义动画*/
@keyframes go {
  from {
  transform: translateX(0)
  }
  to {
  transform: translateX(600px)

  }
}

或者:

div {
  width: 100px;
  height: 100px;
  background-color: pink;
  /*animation: go 2s ease 0s infinite alternate; 引用动画*/
  animation: go 2s infinite; /*引用动画*/
  /*animation:动画名称 动画时间 运动曲线 何时开始 播放次数 是否反方向;*/
  /*动画名称是自己定义的 go google*/
  /*infinite 无限循环*/
  /*一般情况下,我们就用前2个 animation: go 2s*/
}
  /*@keyframes go {} 定义动画*/
@keyframes go {
  0% { /*起始位置,等价于 form*/
    transform: translate3d(0, 0, 0) ;
  }
  50% {
    transform: translate3d(800px, 400px, 0);

  }
  51% {
    transform: translate3d(0, 400px, 0);

    transform: rotateY(180deg);

  }
  99% {
    transform: translate3d(0, 0, 0); /*100% 相当于结束位置 to*/

    transform: rotateY(180deg);

  }
}/* 动画结束之后会返回原来的位置!!!*/

 

animation-play-state:paused;  /*鼠标经过暂停动画*/

 

posted @ 2020-03-24 15:31  花木兰r  阅读(192)  评论(0编辑  收藏  举报