css3---transform&transition之toolTip动画效果的实现

知识点总结:

1、元素设置了绝对定位后会自动变为块级元素;

2、父元素设置为相对定位,子元素设为绝对定位,然后对子元素作如下设置会得到不同的效果:

a、bottom:100%----------------->子元素的底端和父元素的顶端对齐重合(如下图所示:黑色框为父元素~白色圆为子元素~)

html代码:

<div id="father">
    <div id="child">
    </div>
</div>

css代码:

<style>
        #father {
            background: #000;
            width: 300px;
            height: 200px;
            position: relative;
            top:300px;//为了让父元不靠在屏幕左上方~稍微设置了left和top
            left: 600px;
        }

        #child {
            background: #fff;
            width: 100px;
            height: 100px;
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            border-radius: 50%;
            position: absolute;
            bottom: 100%;

        }
    </style>

b、top:100%-------->子元素的顶端和父元素底端对齐(即子元素相对于父元素向下移动父元素的高度)

html代码如上所示,css代码如下:

<style>
        #father {
            background: #000;
            width: 300px;
            height: 200px;
            position: relative;
            top:300px;
            left: 600px;
        }

        #child {
            background: #fff;
            width: 100px;
            height: 100px;
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            border-radius: 50%;
            position: absolute;
            top: 100%;

        }
    </style>

c、至于bottom:0%和top:0%也依次类推

bottom:0%  即子元素以父元素的底部为基准向上推父元素高度的0%

top:0%  即子元素以父元素的顶部为基准向下推父元素高度的0%

基于transform和transition实现动画效果思路总结:

html代码如下:

   <ul>
        <li>
            <a href="#" class="tooltip tooltip-effect-5">
                Contact
                <span class="tooltip-content">
                    <i class="fa fa-envelope fa-fw"></i>
                </span>
            </a>
        </li>
    </ul>

一般而言我们设置元素的动画都是有事件触发的~比如初始时元素是一个状态~然后鼠标移到上面时开始动画~于是有:

1、设置元素开始时的显示效果:

css代码(采用less编写)

.tooltip-effect-5 .tooltip-content {//定义加了.tooltip-effect-5类的span的初始样式
  -webkit-transform: scale3d(0, 0, 0);
     -moz-transform: scale3d(0, 0, 0);
      -ms-transform: scale3d(0, 0, 0);
       -o-transform: scale3d(0, 0, 0);
          transform: scale3d(0, 0, 0);
  -webkit-transform-origin: center bottom;
     -moz-transform-origin: center bottom;
      -ms-transform-origin: center bottom;
       -o-transform-origin: center bottom;
          transform-origin: center bottom;

  -webkit-transition: all 0.3s;
     -moz-transition: all 0.3s;
      -ms-transition: all 0.3s;
       -o-transition: all 0.3s;
          transition: all 0.3s;

  i {
    -webkit-transform: translate3d(0, 20px, 0);
       -moz-transform: translate3d(0, 20px, 0);
        -ms-transform: translate3d(0, 20px, 0);
         -o-transform: translate3d(0, 20px, 0);
            transform: translate3d(0, 20px, 0);
    -webkit-transition: all 0.3s;
       -moz-transition: all 0.3s;
        -ms-transition: all 0.3s;
         -o-transition: all 0.3s;
            transition: all 0.3s;
               opacity: 0;
  }
}

2、定义鼠标hover时的样式:

css代码(采用less编写)

.tooltip:hover .tooltip-content,
.tooltip:hover .tooltip-content i {
  opacity: 1;
  //定义气泡最终的显示效果~在x、y、z上滑动为0,在x、y、z上旋转为0度,在x、y、z上缩放比例为1
  -webkit-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
     -moz-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
      -ms-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
       -o-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
          transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
}

3、这样定义好后在注意在 设置元素开始时的显示效果时我们还写了 transition: all 0.3s;的语句~这里写上all~那在鼠标hover时~程序会自动检测所有发生变换的属性~并按照定义的时间(0.3s)进行一个过渡的显示~于是就实现了动画~当然我们也可以手动添加希望发生过渡变化的属性~比如把上面的all改成opacity~那就只有opacity(透明度)会发生一个从0到1的过渡变化~过渡时间为0.3s。

另外小结一下transform后面跟的内容的含义:

1、translate3d()-------设置x、y、z 上平移的距离单位为像素

注意:虽然三轴上的变换也可以分别用translateX,translateY,translateZ来设置~不过推荐使用translate3d~这样不仅方便设置三轴上的变换~而且在手持设备上也会开启     加速

2、rotate3d(1,1,1,45deg)--------设置x、y、z 上的旋转的角度~前三个参数为0~1的数值~最后一个参数规定旋转的度数~那前三个参数可以理解为旋转规定度数的百分之几

3、scale3d(1,1,1)-----------设置x、y、z 上的缩放比~三个参数的取值也是0~1

源码地址:https://github.com/x-shadow-x/toolTip

在线预览:http://x-shadow-x.github.io/toolTip/

时间: 2024-11-06 07:47:02

css3---transform&transition之toolTip动画效果的实现的相关文章

css3 transform transition animation 练习

旋转 位移 缩放 扭曲 动画 <!DOCTYPE HTML><html> <head> <meta charset="utf-8" /> <title>css3 transform transition animation 练习</title> <style type="text/css"> body { padding: 10px 50px; } div { margin: 50p

css3伪放大镜(图片放大动画)效果(鼠标移入圆形区域放大图片)

源码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>css3伪放大镜(图片放大动画)效果</title><style>.gallery{list-style:none}.gallery:before,.gallery__item:last-child{position:fixed;top:50

html5+css3第一屏滚屏动画效果

详细内容请点击 在线预览立即下载 html5+css3第一屏滚屏动画效果. 转载自:http://tympanus.net/codrops/2014/05/22/inspiration-for-article-intro-effects/ var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-7243260-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.

纯CSS3制作卡通场景汽车动画效果

前言 今天分享一下我昨晚做的CSS3动画效果——卡通场景汽车动画.在接触CSS3动画之前,我之前实现一些简单的动画效果都是使用flash完成的.但是自从CSS3横空出世,在移动端对CSS3动画的运用越来越多.今天这个分享是PC端的案例,因为我做的是大场景来的,起因还是我无意间看到一张卡通图片.于是我突发灵感,就趁热打铁使用CSS3动画把它按照自己的想法实现了出来.接下来,就让我们一起进入这个好玩的分享吧! 预览 学习一个案例要有热情,就应该先看一下案例的效果,所以,下图为我录的gif图片,大家先

使用CSS3 BACKFACE-VISIBILITY属性制作翻转动画效果

摘要: 通过backface-visibility:hidden;属性,我们可以使一个元素在翻转之后消失,这是可以使用另一个元素放在它的背面,从而制作出一种元素翻转之后出现另一个元素的效果. ... 使用CSS3 backface-visibility属性我们可以制作出许多有趣的动画效果.当你翻转一个元素的时候,你看到的是什么?通常情况下,我们应该看到的是元素的背面,这是正常的情况,但是有时候我们希望翻转一个元素后看到的是另一个元素. 查看演示  插件下载 使用CSS3 backface-vis

css3中的过渡效果和动画效果

一.CSS3 过渡 (一).CSS3过渡简介 CSS3过渡是元素从一种样式逐渐改变为另一种的效果. 实现过渡效果的两个要件: 规定把效果添加到哪个 CSS 属性上 规定效果的时长 定义动画的规则 过渡transition  (作用) 将元素的某个属性从“一个值”在指定的时间内过渡到“另一个值” (二).transition属性    语法 :   {transition: 属性名 持续时间 过渡方法} transition-property     属性的名字(如果是一个属性就带有这个属性的名字

jQuery和CSS3全屏带过渡动画效果的模态窗口插件

animatedModal.js是一款效果非常炫酷的jQuery和CSS3全屏带过渡动画的模态窗口特效插件.该模态窗口插件和animate.css完美结合,你可以使用animate.css中的任何动画效果来制作该模态窗口的过渡动画效果. 在线演示:http://www.htmleaf.com/Demo/201503031453.html 下载地址:http://www.htmleaf.com/jQuery/Lightbox-Dialog/201503031452.html

CSS3最颠覆性的动画效果,基本属性[3D]

和2D一样也是transform 即变形 1)rotateX rotateY rotateZ(也可以用transform-origin来设置旋转中心点) 2)透视(perspective) 给父亲加透视,透视就是模拟眼睛到物体的距离,近大远小,即数值越小,3D越明显 理解透视就是把眼睛放在离物体多远的地方看,不设置透视可以理解成在无穷远处看,和太阳光一样,不会因为Z改变而看出变化                                             translate3d(x,

html5+css3画太极并添加动画效果

可兼容移动端视图 效果图如下:太极图是可以旋转的 具体实现如下: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equi