zoukankan      html  css  js  c++  java
  • 用js实现同一页面多个不同运动效果

    效果如下,每一个的运动效果都不一样哟~~

    • 1
    • 2
    • 3
    • 4

    要点一:

    function getstyle(obj,name){
    if(obj.currentStyle){
    return obj.currentStyle[name];
    }else{
    return getComputedStyle(obj,false)[name];
    }
    }

    从样式表中根据id和属性名取值。

    要点二:

    if(attr == "opacity"){
    cur = Math.round(parseFloat(getstyle(obj,attr))*100);
    }else{
    cur = parseInt(getstyle(obj,attr));
    }

    如果设置的是透明度的值,因为有可能会是小数点,所以需要用parseFloat,然后有可能会有小数,用round方法四舍五入取整。

    如果设置的非透明度值,用parseInt,可以只取数值部分

    其它的注意点,前面几篇都有提到,此处不再赘述。

    最后,上代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>无标题文档</title>
    <style>
    body,ul,li
    {margin:0; padding:0;}
    #runs li
    {width:80px; height:80px; background:#06c; list-style:none; margin:10px; border:1px solid #000; filter:alpha(opacity=30); opacity:0.3;}
    </style>
    <script>
    window.onload
    = function(){
    var runs = document.getElementById("runs");
    var runs_li = runs.getElementsByTagName("li");
    runs_li[
    0].onmouseover = function(){
    startrun(
    this,"width",300);
    }
    runs_li[
    0].onmouseout = function(){
    startrun(
    this,"width",80);
    }
    runs_li[
    1].onmouseover = function(){
    startrun(
    this,"height",300);
    }
    runs_li[
    1].onmouseout = function(){
    startrun(
    this,"height",80);
    }
    runs_li[
    2].onmouseover = function(){
    startrun(
    this,"fontSize",50);
    }
    runs_li[
    2].onmouseout = function(){
    startrun(
    this,"fontSize",14);
    }
    runs_li[
    3].onmouseover = function(){
    startrun(
    this,"opacity",100);
    }
    runs_li[
    3].onmouseout = function(){
    startrun(
    this,"opacity",30);
    }
    }

    function startrun(obj,attr,target){
    clearInterval(obj.timer);
    obj.timer
    = setInterval(function(){
    var cur = 0;
    if(attr == "opacity"){
    cur
    = Math.round(parseFloat(getstyle(obj,attr))*100);
    }
    else{
    cur
    = parseInt(getstyle(obj,attr));
    }
    var speed = (target - cur)/8;
    speed = speed>0?Math.ceil(speed):Math.floor(speed);

    if(cur == target){
    clearInterval(obj.timer);
    }
    else{
    if(attr == "opacity"){
    obj.style.filter
    ='alpha(opacity='+(cur+speed)+')';
    obj.style.opacity
    =(cur+speed)/100;
    }else{
    obj.style[attr]
    = cur+speed+"px";
    }
    }

    },
    30);
    }

    function getstyle(obj,name){
    if(obj.currentStyle){
    return obj.currentStyle[name];
    }
    else{
    return getComputedStyle(obj,false)[name];
    }
    }
    </script>
    </head>

    <body>

    <ul id="runs">
    <li style="top:0">1</li>
    <li style="top:90px;">2</li>
    <li style="top:180px;">3</li>
    <li style="top:270px;">4</li>
    </ul>
    </body>
    </html>



  • 相关阅读:
    ubuntu12.04启动系统时报错
    TCP&HTTP协议详解
    nginx日志分析、切割与防盗链
    Nginx Rewrite规则详解
    nginx location深入剖析
    hadoop自动安装脚本
    极易中文分词
    朴素贝叶斯算法分析及java 实现
    随机森林(Random Forest)
    ubuntu 13.04 安装 JDK
  • 原文地址:https://www.cnblogs.com/jingangel/p/2395231.html
Copyright © 2011-2022 走看看