Javascript 多物体运动的实现

网络编程 发布日期:2024/10/8 浏览次数:1

正在浏览:Javascript 多物体运动的实现

我们先来看下之前的运动的代码,是否支持多物体运动,会出现怎么样的问题。

复制代码 代码如下:
<style type="text/css">
            div {
                width: 100px;
                height: 50px;
                background: red;
                margin: 10px;
            }
        </style>

复制代码 代码如下:
<body>
        <div></div>
        <div></div>
        <div></div>
    </body>

以下是Javascript 代码:

复制代码 代码如下:
<script type="text/javascript">
            window.onload = function() {
                var aDiv = document.getElementsByTagName('div');
                for (var i = 0; i < aDiv.length; i++) {
                    aDiv[i].onmouseover = function() {
                        startMove(this, 400);
                    };
                    aDiv[i].onmouseout = function() {
                        startMove(this, 100);
                    };
                }
            }
            var timer = null;
            function startMove(obj, iTarget) {
                clearInterval(timer);
                timer = setInterval(function() {
                    var speed = (iTarget - obj.offsetWidth) / 6;
                    speed = speed > 0 "codetitle">复制代码 代码如下:
<script type="text/javascript">
            window.onload = function() {
                var aDiv = document.getElementsByTagName('div');
                for (var i = 0; i < aDiv.length; i++) {
                    aDiv[i].timer=null; // 把定时器作为一个物体的属性存起来
                    aDiv[i].onmouseover = function() {
                        startMove(this, 400);
                    };
                    aDiv[i].onmouseout = function() {
                        startMove(this, 100);
                    };
                }
            }
            function startMove(obj, iTarget) {
                clearInterval(obj.timer);
                obj.timer = setInterval(function() {
                    var speed = (iTarget - obj.offsetWidth) / 6;
                    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
                    if (obj.offsetWidth == iTarget) {
                        clearInterval(obj.timer);
                    } else {
                        obj.style.width = obj.offsetWidth + speed + 'px';
                    }
                }, 30);
            }
        </script>

这样程序就没有问题了,能够支持多物体的运动。

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?