zoukankan      html  css  js  c++  java
  • transition实现自定义tips淡入淡出效果

        transition实现动画的时候,只能实现指定属性的渐变,元素显隐要通过opacity来实现:

        做了一个小的demo:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>transition-demo</title>
    <style>
    #help{
        width:20px;
        height:20px;
        border-radius:10px;
        color:#fff;
        background:#000;
        text-align:center;
        position:relative;
        margin:50px 20px;
        cursor:pointer;
    }
    #help .tips{
    
        position:absolute;
        width:300px;
        height:100px;
        background:#000;
        top:-30px;
        left:30px;
        border-radius:10px;
        opacity:0;
        transition: opacity .5s ease;
        -moz-transition: opacity .5s ease;
        -webkit-transition: opacity .5s ease;
    }
    .tips:before{
        content:"";
        border-width:10px;
        border-style:solid;
        border-color:transparent #000 transparent transparent;
        position:absolute;
        left:-20px;
        top:35px;
    }
    #help:hover .tips{
        opacity:0.5;
        transition: opacity .5s ease;
        -moz-transition: opacity .5s ease;
        -webkit-transition: opacity .5s ease;
    }
    </style>
    </head>
    <body>
    <div id="help">?<div class="tips">Some information for help</div></div>
    </body>
    </html> 

    transition-property是用来指定当元素其中一个属性改变时执行transition效果,其主要有以下几个值:none(没有属 性改变);all(所有属性改变)这个也是其默认值;indent(元素属性名)。当其值为none时,transition马上停止执行,当指定为 all时,则元素产生任何属性值变化时都将执行transition效果,ident是可以指定元素的某一个属性值。其对应的类型如下:

    1、color: 通过红、绿、蓝和透明度组件变换(每个数值处理)如:background-color,border-color,color,outline-color等css属性;

    2、length: 真实的数字 如:word-spacing,width,vertical- align,top,right,bottom,left,padding,outline-width,margin,min-width,min- height,max-width,max-height,line-height,height,border-width,border- spacing,background-position等属性;

    3、percentage:真实的数字 如:word-spacing,width,vertical-align,top,right,bottom,left,min-width,min- height,max-width,max-height,line-height,height,background-position等属性;

    4、integer离散步骤(整个数字),在真实的数字空间,以及使用floor()转换为整数时发生 如:outline-offset,z-index等属性;

    5、number真实的(浮点型)数值,如:zoom,opacity,font-weight,等属性;

    6、transform list

    7、rectangle:通过x, y, width 和 height(转为数值)变换,如:crop

    8、visibility: 离散步骤,在0到1数字范围之内,0表示“隐藏”,1表示完全“显示”,如:visibility

    9、shadow: 作用于color, x, y 和 blur(模糊)属性,如:text-shadow

    10、gradient: 通过每次停止时的位置和颜色进行变化。它们必须有相同的类型(放射状的或是线性的)和相同的停止数值以便执行动画,如:background-image

    11、paint server (SVG): 只支持下面的情况:从gradient到gradient以及color到color,然后工作与上面类似

    12、space-separated list of above:如果列表有相同的项目数值,则列表每一项按照上面的规则进行变化,否则无变化

    13、a shorthand property: 如果缩写的所有部分都可以实现动画,则会像所有单个属性变化一样变化

    具体什么css属性可以实现transition效果,在W3C官网中列出了所有可以实现transition效果的CSS属性值以及值的类型,可以点这里了解详情。这里需要提醒一点是,并不是什么属性改变都为触发transition动作效果,比如页面的自适应宽度,当浏览器改变宽度时,并不会触发transition的效果。但上述表格所示的属性类型改变都会触发一个transition动作效果。

    这里没有display:none到display:block这类型的改变,一般是具体带有值的属性的渐变。

  • 相关阅读:
    李阳疯狂英语精选365句
    线程 notify,与notifyAll 的区别
    关于Logger,Tomcat 的Logger是如何工作的
    知豆 源
    关于好多继承的问题,我们应该如何去理解
    5+1+2
    wu xing
    ALBPM Time Question
    推荐书集
    “疯狂”的定义
  • 原文地址:https://www.cnblogs.com/linda586586/p/4506097.html
Copyright © 2011-2022 走看看