Tween.js使用指南demo

news2024/11/16 5:47:00

案例:

  • 小球的运动
  • 数字的自增
    在这里插入图片描述

demo

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tween.js/20.0.0/tween.umd.js"></script>
    <style>
      .circle {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        background-color: orange;
        position: absolute;
      }
      #box {
        background-color: deeppink;
        width: 100px;
        height: 100px;
      }
    </style>
  </head>
  <body>
    <div class="circle" style="top: 0px; left: 0px"></div>
    <div id="box"></div>
    <script>
      const position = { x: 0 }; // position 对应初始位置 也就是left 是0px
      const div = document.querySelector(".circle"); // 获取dom元素
      const tweenA = new TWEEN.Tween(position) // new TWEEN.Tween里面放置初始位置,也就是left 是0px
        .to({ x: 500 }, 1000) // to函数第一个参数里面放置要到哪里 也就是left:500px的地方
        // to函数第二个参数是要花多少时间,也就是1000毫秒
        .onUpdate(function () {
          // onUpdate函数放置这段时间我们做什么,也就是div的left值不断变化,
          div.style.left = position.x + "px"; // position.x就是上面说的不断变化的left值,
        });
      tweenA.start(); // 启动这个动画
      tweenA.yoyo(true)
      tweenA.repeat(3)

      const box = document.getElementById("box"); // Get the element we want to animate.
      const coords = { x: 0, y: 0 }; // Start at (0, 0)
      const tweenB = new TWEEN.Tween(coords, false) // Create a new tween that modifies 'coords'.
        .to({ x: 300, y: 200 }, 1000) // Move to (300, 200) in 1 second.
        // .easing(TWEEN.Easing.Quadratic.InOut) // Use an easing function to make the animation smooth.
        .onUpdate((object) => {
          // console.log(object.x)
          // Called after tween.js updates 'coords'.
          // Move 'box' to the position described by 'coords' with a CSS translation.
          box.style.setProperty(
            "transform",
            "translate(" + coords.x + "px, " + coords.y + "px)"
          );
        })
        .start(); // Start the tween immediately.

      let data = { num: 100 };
      const tweenC = new TWEEN.Tween(data)
        .to({ num: 230 }, 1000).easing(TWEEN.Easing.Quadratic.InOut)
        .onUpdate((a) => {
          num = Math.floor(data.num);
          console.log(num);
          box.innerText = num
        })
        .start()

      function animate() {
        requestAnimationFrame(animate); // requestAnimationFrame可以看成setTimeout(animate, 17)
        tweenA.update(); // 每隔一段时间,update方法会调用上面的onUpdate函数,这样让left变化,小球位置也变化
        tweenB.update();
        tweenC.update();
        // tweenA.chain(tweenB)
        // tweenB.chain(tweenA)
      }
      animate();
    </script>
  </body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/889350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络连接(3次握手和4次挥手)

在进行3次握手和4次挥手传输数据时&#xff0c;都可能会出现丢包的情况&#xff0c;推荐看出现丢包问题的情况以及解决方法 一.为什么要进行3次握手&#xff1f; 在进行网络连接时&#xff0c;需要3次握手 3次握手的初心就是两方面&#xff1a; 1.投石问路&#xff0c;验证通…

df -h

df -h 命令用于查看磁盘占用的空间 Filesystem&#xff1a;表示该文件系统位于哪个分区&#xff0c;因此该列显示的是设备名称&#xff1b; Used&#xff1a;表示用掉的磁盘空间大小&#xff1b; Available&#xff1a;表示剩余的磁盘空间大小&#xff1b; Use%&#xff1a;磁盘…

国内小厂操刀,16G显存神卡只要599,老外急眼了

这年头&#xff0c;电脑配置 DIY 见怪不怪&#xff0c;你可曾听闻显卡规格 DIY&#xff1f; 前不久国外网友整出的 16G 显存 RTX 3070、国内大佬魔改的 22G 显存 RTX 2080Ti。 这些可都是官方从未发布过的船新版本。 显存容量无伤翻倍&#xff0c;关键还能不同批次搭配组合&a…

【严重】jeecg-boot/积木报表基于SSTI的任意代码执行漏洞

漏洞描述 JeecgBoot 是一款开源的的低代码开发平台&#xff0c;积木报表是其中的低代码报表组件。 JeecgBoot 受影响版本中由于积木报表 /jeecg-boot/jmreport/queryFieldBySql Api 接口未进行身份校验&#xff0c;使用 Freemarker 处理用户用户传入的 sql 参数&#xff0c;未…

微服务-Nacos(配置管理)

配置更改热更新 在Nacos中添加配置信息&#xff1a; 在弹出表单中填写配置信息&#xff1a; 配置获取的步骤如下&#xff1a; 1.引入Nacos的配置管理客户端依赖&#xff08;A、B服务&#xff09;&#xff1a; <!--nacos的配置管理依赖--><dependency><groupId&…

微服务-Nacos(注册中心)

Nacos是SpringCloud的一个功能非常强大的组件&#xff0c;想比eureka的功能更加丰富 官方的nacos简介 Nacos&#xff08;全称&#xff1a;Naming and Configuration Service&#xff09;是一个开源的动态服务发现、配置管理和服务管理平台。它由阿里巴巴集团开发并贡献给开源…

【高危】企业微信私有化2.5-2.6.93版本后台API未授权访问漏洞

漏洞描述 企业微信私有化2.5.x版本及2.6.930000版本以下后台中存在接口未授权访问漏洞&#xff0c;攻击者通过访问/cgi-bin/gateway/agentinfo接口可获得Secret&#xff0c;从而利用开放API获取企业通讯录等敏感信息及企业微信内应用权限。 漏洞名称企业微信私有化2.5-2.6.93…

案例20 基于Spring Boot+Redis实现学生信息按学号存储案例

1. 案例需求 基于Spring BootRedis实现学生信息按学号存储和取出功能&#xff0c;数据存储至Redis。 2. 创建Spring Boot项目 创建Spring Boot项目&#xff0c;项目名称为springboot-redis01。 3. 选择依赖 ​pom.xml文件内容如下所示&#xff1a; <?xml version"…

微信网页授权错误提示:redirect_uri 参数错误10003

如图网页授权域名也需要配置下&#xff0c;出现此问题是因为只配置了JS接口安全域名

即拼七人拼团模式:解决传统微商模式中的“人脉少”问题

许多各类企业都在为如何去引流用户、留存用户而烦恼&#xff0c;近期也有一些初创企业以及直销类型的朋友&#xff0c;咨询拼团对大众来说并不陌生&#xff0c;从多多的崛起开始&#xff0c;各种拼团活动就一直在我们的视野中浮现&#xff0c;对于这种算不上新颖&#xff0c;比…

opencv进阶09-视频处理cv2.VideoCapture示例(打开本机电脑摄像头)

视频信号&#xff08;以下简称为视频&#xff09;是非常重要的视觉信息来源&#xff0c;它是视觉处理过程中经常要处理的一类信号。实际上&#xff0c;视频是由一系列图像构成的&#xff0c;这一系列图像被称为帧&#xff0c;帧是以固定的时间间隔从视频中获取的。获取&#xf…

C语言刷题指南(一)

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &am…

递归算法详解

概述 递归算法&#xff0c;不断调用本身&#xff0c;每调用一次在内存中添加一层&#xff0c;不断地叠加到最底层&#xff0c;直到遇到返回值&#xff0c;然后从最底层一层层的返回到最顶层 举例 public static void main(String[] args) {// System.out.println(fibbonacciF…

一篇文章教会你搭建私人kindle图书馆,并内网穿透实现公网访问

搭建私人kindle图书馆&#xff0c;并内网穿透实现公网访问 在电子书风靡的时期&#xff0c;大部分人都购买了一本电子书&#xff0c;虽然这本电子书更多的时候是被搁置在储物架上吃灰&#xff0c;或者成为盖泡面的神器&#xff0c;但当亚马逊发布消息将放弃电子书在中国的服务…

如何通过本地搭建wamp服务器并实现无公网IP远程访问

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 前言 软件技术的发展日新月异&#xff0c;各种能方便我们生活、工作和娱乐的新软件层出不穷&…

《cpolar内网穿透》外网SSH远程连接linux(CentOS)服务器

本次教程我们来实现如何在外公网环境下&#xff0c;SSH远程连接家里/公司的Linux CentOS服务器&#xff0c;无需公网IP&#xff0c;也不需要设置路由器。 视频教程 [video(video-jrpesBrv-1680147672481)(type-csdn)(url-CSDN直播https://live-file.csdnimg.cn/release/live/…

使用netstat查询网络连接状态、端口信息

1、netstat作用 netstat 命令用于显示各种网络相关信息&#xff0c;如网络连接&#xff0c;路由表&#xff0c;接口状态 (Interface Statistics)&#xff0c;masquerade 连接&#xff0c;多播成员 (Multicast Memberships) 等等。 2、常见参数 -a (all)显示所有选项&#xff…

36.8k Star! 一款小而美的自动化运维监控工具——Uptime Kuma

自动化运维是指利用计算机科学和信息技术来实现系统和应用程序的自动化管理、监控、维护以及问题解决的过程。它的目标是减少人工干预、提高效率、降低错误率&#xff0c;并确保系统的稳定性和可靠性。 应用简览 Uptime-Kuma 是一个轻量级的监控工具&#xff0c;其独特之处在于…

一百六十、Kettle——Linux上安装的Kettle9.2.0连接Hive3.1.2

一、目标 Kettle9.2.0在Linux上安装好后&#xff0c;需要与Hive3.1.2数据库建立连接 之前已经在本地上用kettle9.2.0连上Hive3.1.2 二、各工具版本 &#xff08;一&#xff09;kettle9.2.0 kettle9.2.0安装包网盘链接 链接&#xff1a;https://pan.baidu.com/s/15Zq9w…

PHP使用phpmailer及SMTP服务实现邮件发送

博客升级中&#xff0c;把之前没有想到的功能一点点的完善。 这篇日志记录一下&#xff0c;使用phpmailer实现邮件发送的这样一个操作。 博客偶尔会有留言和评论&#xff0c;我也会及时回复&#xff0c;但是有一个问题&#xff0c;我回复了&#xff0c;给我留言的人如果不再次…