zoukankan      html  css  js  c++  java
  • transition动画效果初识(实例)

    多个属性一起动画示例

    <body>
        <p>盒子的多个属性一起动画: width, height, background-color, transform. 将光标悬停在盒子上查看动画。</p>
        <div class="box"></div>
    </body>
    .box {
        border-style: solid;
        border-width: 1px;
        display: block;
        width: 100px;
        height: 100px;
        background-color: #0000FF;
        -webkit-transition:width 2s, height 2s,               //默认简写方法transition: <property> <duration> <time-funtion> <delay>
            background-color 2s, -webkit-transform 2s;           //transform属性,定义位置改变
        transition:width 2s, height 2s, background-color 2s, transform 2s;
    }
    .box:hover {
        background-color: #FFCCCC;
        width:200px;
        height:200px;
        -webkit-transform:rotate(180deg);                  //transform: rotate (角度) 定义旋转
        transform:rotate(180deg);                        //transform属性同transition 一起可以实现很多常见的简单动画效果。
    }

    css transform 属性参考地址:http://www.w3school.com.cn/cssref/pr_transform.asp

     trasform要注意浏览器前缀。

    检测过渡是否完成

     当过渡完成时触发一个事件,在符合标准的浏览器下,这个事件是 transitionend, 在 WebKit 下是 webkitTransitionEnd. 详情查看页面底部的兼容性表格。 transitionend 事件提供两个属性:

    propertyName字符串,指示已完成过渡的属性。

    elapsedTime浮点数,指示当触发这个事件时过渡已运行的时间(秒)。这个值不受 transition-delay影响。

     可以用  element.addEventListener() 方法来监听这个事件:

    el.addEventListener("transitionend", updateTransition, true);

    高亮菜单过渡效果

    <div class="sidebar">
      <p><a class="menuButton" href="home">Home</a></p>
      <p><a class="menuButton" href="about">About</a></p>
      <p><a class="menuButton" href="contact">Contact Us</a></p>
      <p><a class="menuButton" href="links">Links</a></p>
    </div>
    .menuButton {
      position: relative;
      transition-property: background-color, color;                      //transition设置需要的属性,当设置属性样式发生改变时会执行transition
      transition-duration: 1s;
      transition-timing-function: ease-out;
      text-align: left;
      background-color: grey;
      left: 5px;
      top: 5px;
      height: 26px;
      color: white;
      border-color: black;
      font-family: sans-serif;
      font-size: 20px;
      text-decoration: none;
      box-shadow: 2px 2px 1px black;
      padding: 2px 4px;
      border: solid 1px black;
    }
    
    .menuButton:hover {
      position: relative;
      transition-property: background-color, color;                //改变后的元素再次设置一次,则鼠标离开的时候也会有相同的过渡效果
      transition-duration: 1s;
      transition-timing-function: ease-out;
      background-color:white;
      color:black;
      box-shadow: 2px 2px 1px black;
    }

    transition 让 JavaScript 效果更平滑

     transition 是非常好的工具,可以让 JavaScript 效果平滑而不用修改 JavaScript。

    <p>随便点击某处来移动球</p>
    <div id="foo"></div>
    var f = document.getElementById('foo');
    document.addEventListener('click', function(ev){                //监听点击的位置
        f.style.left = (ev.clientX-25)+'px';                     //改变style属性中对应的位置
        f.style.top = (ev.clientY-25)+'px';                     //-25则可以找到50px的小球的中点
    },false);
    p {
      padding-left: 60px;
    
    #foo {
      border-radius: 50px;
      width: 50px;
      height: 50px;
      background: #c00;
      position: absolute;
      top: 0;
      left: 0;
      transition:  all 1s;                     //transition: all 1s    所有可能改变的属性1s过度
    }
  • 相关阅读:
    Nginx(ab性能测试)
    Nginx(配置域名后,不能配置到public目录原因)
    sublime text3的php代码合法检查
    Nginx(expires 缓存减轻服务端压力)
    Nginx(Gzip加速访问速度)
    Nginx(Rewrite语法)
    Nginx(location分析)
    Nginx(日志切割)
    Nginx(Logs)
    Java内部类——闭包与回调
  • 原文地址:https://www.cnblogs.com/FunkyEric/p/8966065.html
Copyright © 2011-2022 走看看