zoukankan      html  css  js  c++  java
  • 简单清晰的缓冲运动框架

    TestMove.js

    View Code
    function getStyle(obj, attr) {
        if (obj.currentStyle) {
            return obj.currentStyle[attr];
        }
        else {
            return getComputedStyle(obj, false)[attr];
        }
    }
    
    function startMove(obj, json, fn) {
        clearInterval(obj.timer);
        obj.timer = setInterval(function () {
            var bStop = true; //停止运动的标记
            for (var attr in json) {
                var iCurr = 0;
                //获取当前的值
                if (attr == 'opacity') {
                    iCurr = parseInt(Math.round(parseFloat(getStyle(obj, attr)) * 100));
                }
                else {
                    iCurr = parseInt(getStyle(obj, attr));
                }
                //计算速度
                var iSpeed = (json[attr] - iCurr) / 8;
                iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
    
                //检测是否停止
                if (iCurr != json[attr]) {
                    bStop = false;
                }
    
                //设置属性
                if (attr == 'opacity') {
                    obj.style.filter = 'alpha(opacity:' + iCurr + iSpeed + ')';
                    obj.style.opacity = (iCurr + iSpeed) / 100;
                }
                else {
                    obj.style[attr] = iCurr + iSpeed + 'px';
                }
            }
            if (bStop) {
                clearInterval(obj.timer);
                if (fn) {
                    fn();
                }
            }
        }, 30);
    }

    TestMove.html

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication5.WebForm3" %>
     2 
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <title></title>
     8     <style type="text/css">
     9         #test
    10         {
    11             width:100px;
    12             height:100px;
    13             border:1px solid black;
    14             position:absolute;
    15             left:0;
    16         }
    17     </style>
    18     <script src="TestMove.js" type="text/javascript"></script>
    19     <script type="text/javascript">
    20         window.onload = function () {
    21             startMove(document.getElementById('test'), { 300,height:300,left:500})
    22         }
    23     </script>
    24 </head>
    25 <body>
    26     <form id="form1" runat="server">
    27     <div id="test">
    28     
    29     </div>
    30     </form>
    31 </body>
    32 </html>
  • 相关阅读:
    GMA Round 1 数列求单项
    GMA Round 1 双曲线与面积
    多线程环境中安全使用集合API(含代码)
    使用synchronized获取互斥锁的几点说明
    ThreadPoolExecutor线程池
    线程状态转换
    volatile关键字
    守护线程与线程阻塞的四种情况
    线程挂起,恢复与终止
    线程中断
  • 原文地址:https://www.cnblogs.com/fumj/p/2731287.html
Copyright © 2011-2022 走看看