iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS实现多物体运动
  • 453
分享到

JS实现多物体运动

2024-04-02 19:04:59 453人浏览 泡泡鱼
摘要

本文实例为大家分享了js实现多物体运动的具体代码,供大家参考,具体内容如下 实现效果图: 描述:用JS实现简单的多物体运动动画,淡出淡化效果,当鼠标放在不同div上时,div会由宽

本文实例为大家分享了js实现多物体运动的具体代码,供大家参考,具体内容如下

实现效果图:

描述:用JS实现简单的多物体运动动画,淡出淡化效果,当鼠标放在不同div上时,div会由宽100PX慢慢变成200PX,当鼠标移开之后div恢复原状,依次来,实现多物体运动效果。

基本步骤:

1.通过getElementsByTagName获取到要做多物体运动的元素

2.然后for循环遍历元素,添加事件

3.定义startMove函数,需要两个参数,当前“做运动”的元素,和目标值target

具体代码如下:

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="startMove.js"></script>
    <style>
        div{
            width: 100px;
            height: 100px;
            background: red;
            
            margin: 10px 0;
        }
    </style>
</head>
<body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
 
    <script>
        // 改变div的width 、height、透明度、边框 {width:500,height:500,opacity:0.5}
        var divs = document.getElementsByTagName('div');
        for(var i = 0;i<divs.length;i++){
            divs[i].onmouseenter = startMove(divs[i],{width:200,height:200,opacity:50},function(){
                alert('over!')
            });
        }
        for(var i = 0;i<divs.length;i++){
            divs[i].onmouseleave = startMove(divs[i],{width:100,height:100,opacity:100});
        }
    </script>
</body>
</html>

js代码:


function startMove(dom, attrObj, callback) {
    var timer = null;
    var speed = null;
    // 元素属性的当前值
    var iCur = null;
    return function() {
        clearInterval(dom.timer);
        dom.timer = setInterval(function() {
            var flag = true;
            // 0. 循环遍历改变的属性对象 将每一个属性的形态都进行运动
            for (var param in attrObj) {
                // 1. 判断改变的属性是不是透明度
                if (param === 'opacity') {
                    iCur = getComputedStyle(dom)['opacity'] * 100;
                    // console.log(iCur);
                } else {
                    iCur = +getComputedStyle(dom)[param].slice(0, -2);
                    console.log(iCur);
                }
                // 2. 求出speed
                speed = (attrObj[param] - iCur) / 7;
                // 如果正值 向上取整(0.28 -> 1)  如果是负值 向下取整(-0.28 -> -1)
                speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
                // 改变div的属性的值
                if (param === 'opacity') {
                    dom.style.opacity = (iCur + speed) / 100;
                } else {
                    dom.style[param] = iCur + speed + 'px';
                }
                // 判断div所有属性是否到达目标值
                if (iCur !== attrObj[param]) {
                    flag = false;
                }
            }
            if (flag) {
                // 所有属性值都到了目标阶段 可以清除定时器
                clearInterval(dom.timer);
                // 
                typeof callback === 'function' && callback();
            }
            // 上一个属性运动结束之后 再让下一个属性开始运行
            // 让一个属性的目标值到达就停止定时器
        }, 60)
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JS实现多物体运动

本文链接: https://www.lsjlt.com/news/148224.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS实现多物体运动
    本文实例为大家分享了JS实现多物体运动的具体代码,供大家参考,具体内容如下 实现效果图: 描述:用JS实现简单的多物体运动动画,淡出淡化效果,当鼠标放在不同div上时,div会由宽...
    99+
    2024-04-02
  • Unity实现物体运动轨迹的绘制
    本文实例为大家分享了unity物体运动轨迹绘制的具体代码,供大家参考,具体内容如下 ① create empty,命名为LineRender ② 在Assects中新建材质,选择Sh...
    99+
    2024-04-02
  • Unity实现物体运动时画出轨迹
    本文实例为大家分享了Unity实现物体运动时画出轨迹的具体代码,供大家参考,具体内容如下 1、新建空物体,上赋LineRenderer 2、新建空物体,把轨迹画出来,设计和脚本。 ...
    99+
    2024-04-02
  • JavaScript运动框架之多物体任意值运动的示例分析
    小编给大家分享一下JavaScript运动框架之多物体任意值运动的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!多物体的...
    99+
    2024-04-02
  • Python使用背景差分器实现运动物体检测
    目录前言一、基本背景差分器二、MOG背景差分器流程代码编写三、KNN背景差分器前言 目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是...
    99+
    2024-04-02
  • python pygame实现控制物体移动
    本文实例为大家分享了python pygame控制物体移动的具体代码,供大家参考,具体内容如下 import pygame import sys from pygame.local...
    99+
    2024-04-02
  • matlab怎么实现单个物体运动可视化生成gif
    本篇内容主要讲解“matlab怎么实现单个物体运动可视化生成gif”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“matlab怎么实现单个物体运动可视化生成gif”吧!function bounc...
    99+
    2023-06-19
  • 基于Aforge的物体运动识别
    基于AForge.NET库的物体运动识别可以通过以下步骤实现:1. 引用AForge.NET库:在你的项目中,首先需要引用AForg...
    99+
    2023-09-02
    Aforge
  • opencv检测动态物体的实现
    之前我在超市看到当有物体经过时,监控的屏幕边缘会出现绿框。感觉蛮有意思的。来用opencv试试能不能实现类似的效果。   我采用的检测动态物体的方法是,比较...
    99+
    2024-04-02
  • js实现购物车加减和价格运算
    本文实例为大家分享了js实现购物车加减和价格运算的具体代码,供大家参考,具体内容如下 主要实现功能:购物车的加减,单件商品价格的运算,总价格的运算。价格保留两位小数。 <...
    99+
    2024-04-02
  • Unity实现物体跟随鼠标移动
    本文实例为大家分享了Unity实现物体跟随鼠标移动的具体代码,供大家参考,具体内容如下 相关函数 Vector3.Lerp 线性插值C# => static Vector3 L...
    99+
    2024-04-02
  • 原生JS实现各种运动之匀速运动
    本文给大家分享一个用原生JS实现的匀速运动,效果如下: 需要注意的是,这种运动效果在实际的开发中用的比较少,用的更多的还是弹性运动和缓冲运动,以下是代码实现,欢迎大家复制粘贴及吐槽...
    99+
    2024-04-02
  • 原生JS实现各种运动之复合运动
    本文给大家分享一个用原生JS实现的复合运动,所谓复合运动就是在同一个进间段内不同的属性都会发生变化,效果如下: 实现代码如下,欢迎大家复制粘贴及吐槽。 <!DOCTYPE...
    99+
    2024-04-02
  • Unity给物体添加多个Tag的实现
    在unity中,我们经常通过给物体添加标签来判断这个物体是不是我们想要的 但是unity默认只能添加一个标签,那如果我们要给一个物体添加多个标签应该怎么办 首先,我们定义一个Tag...
    99+
    2024-04-02
  • python pygame如何实现控制物体移动
    本篇内容主要讲解“python pygame如何实现控制物体移动”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python pygame如何实现控制物体移动”吧!import...
    99+
    2023-06-22
  • Unity 实现给物体动态添加事件
    介绍一个方法给物体动态的添加事件(点击 拖拽等) using System.Events; using System.EventSystems; //_go is the gam...
    99+
    2024-04-02
  • opencv检测动态物体的实现方法
    这篇文章主要介绍“opencv检测动态物体的实现方法”,在日常操作中,相信很多人在opencv检测动态物体的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”opencv检测动态物体的实现方法”的疑惑有所...
    99+
    2023-06-20
  • JS前端使用canvas实现物体的点选示例
    目录前言hover 的实现click 的实现矩形的坐标哪来的点在多边形内的其他判断方法穿透本章小结前言 上个章节中我们已经给物体加上了被选中的效果,现在可以上点交互了,这个章节主要实...
    99+
    2022-11-13
    JS前端canvas物体点选 canvas物体点选
  • JS中如何动态改变单物体透明度
    这篇文章给大家分享的是有关JS中如何动态改变单物体透明度的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:除了通过改变物体的 宽,高,letf,top位置或者是运动方向来实...
    99+
    2024-04-02
  • unity实现物体延时出现
    本文实例为大家分享了unity实现物体延时出现的具体代码,供大家参考,具体内容如下 新建一个cube和plane,隐藏cube,脚本挂在plane上。 1. update计时器实现 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作