js重力球效果代码实例

js模拟小球重力回弹效果 .cont{ width: 1000px; height: 600px; background: #eee; margin: 20px auto; position: relative; } .box{width: 100px;height: 100px;background: red;position: absolute;left: 0;border-radius: 50%;} // 目标... 阅读详情

分享一段代码实例,它利用js实现了重力球效果。

本例子中,用鼠标向下拖动小球,然后松开即可查看演示。

代码实例如下:

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>重力球效果</title>
<style>
* {
  margin: 0px;
  padding: 0px;
}
#div1 {
  width: 50px;
  height: 50px;
  background: pink;
  position: absolute;
  cursor: pointer;
  border-radius: 50px;
}
div {
  width: 3px;
  height: 3px;
  background: black;
  position: absolute;
}
</style>
<script>
window.onload = function() {
  var oDiv = document.getElementById('div1');
  //拖曳
  var lastX = 0;
  var lastY = 0;
  oDiv.onmousedown = function(ev) {
    var ev = ev || event;
    var disX = ev.pageX - oDiv.offsetLeft;
    var disY = ev.pageY - oDiv.offsetTop;
    document.onmousemove = function(ev) {
      var ev = ev || event;
      var l = ev.pageX - disX;
      var t = ev.pageY - disY;
      oDiv.style.left = l + 'px';
      oDiv.style.top = t + 'px';
      iSpeedX = l - lastX;
      iSpeedY = t - lastY;
      lastX = l;
      lastY = t;
    }
    document.onmouseup = function() {
      document.onmousemove = null;
      document.onmouseup = null;
      startMove();
    }
    clearInterval(timer);
  }
  var timer = null;
  
  function startMove() {
    var nowX = oDiv.offsetLeft;
    var nowY = oDiv.offsetTop;
    clearInterval(timer);
    timer = setInterval(function() {
      iSpeedY += 3
      nowX += iSpeedX;
      if (nowX > document.documentElement.clientWidth - oDiv.offsetWidth) {
        iSpeedX *= -0.8;
        nowX = document.documentElement.clientWidth - oDiv.offsetWidth;
      } else if (nowX < 0) {
        iSpeedX *= -0.8;
        nowX = 0;
      }
      nowY += iSpeedY;
      if (nowY > document.documentElement.clientHeight - oDiv.offsetHeight) {
        iSpeedY *= -0.8;
        iSpeedX *= 0.8
        nowY = document.documentElement.clientHeight - oDiv.offsetHeight;
      } else if (nowY < 0) {
        iSpeedY *= -1;
        iSpeedX *= 0.8;
        nowY = 0;
      }
      if (Math.abs(iSpeedX) < 1) {
        iSpeedX = 0;
      }
      if (Math.abs(iSpeedY) < 1) {
        iSpeedY = 0;
      }
      if (iSpeedX == 0 && iSpeedY == 0 && nowY == document.documentElement.clientHeight - oDiv.offsetHeight) {
        clearInterval(timer);
      }
      oDiv.style.left = nowX + 'px';
      oDiv.style.top = nowY + 'px';
    }, 30)
  }
}
</script>
</head>
<body>
<div id='div1'></div>
</body>
</html>
krpano 教程 - 重力效果插件的使用 <plugin name="gyroscope" url="%SWFPATH%/plugins/gyro.js" keep="true" devices="tablet|mobile" onavailable="delayedcall(1, checkGyroAvailability(););" enabled="fa 阅读详情

相关推荐

HTML5重力感应碰撞球动画实战源码解析

在JavaScript中,获取设备方向与运动状态的两个核心接口是和。:用于获取设备的物理方向信息,包括 alpha(设备绕 Z 轴旋转)、beta(绕 X 轴旋转)和 gamma(绕 Y 轴旋转)三个角度值,单位为度(°)。这些数据可以用于判断设备是处于横屏还是竖屏状态,或者倾斜角度的大小。:用于获取设备的加速度数据,包括线性加速度()和带有重力影响的加速度(),以及旋转速率(这些数据能够帮助我们判断设备的移动方向与速度。特性数据类型。

weixin_34456923的博客 401

js重力感应小球游戏

js重力感应小球游戏

电脑高级开关机工程师的博客 1521

JavaScript实现重力与碰撞交互实例教程

在前端开发中,通过JavaScript实现物理效果,如重力和碰撞,可以显著提升用户交互体验。本章将概述如何利用JS模拟基本的重力和碰撞效果,并为后续章节的深入探讨奠定基础。除了位置,物体的大小也是重要的属性。物体的大小一般由宽度和高度来定义。在图形模拟中,通常需要计算物体的边界框(bounding box),它能够快速判断物体间的碰撞或物体是否触及到视窗边界。边界框通常围绕物体的外围绘制,可由物体的左上角坐标及宽度和高度计算得出。在二维图形中,我们用rect来表示这个概念。

weixin_33750664的博客 413

js简单模拟重力运动

<!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</t.

厚积薄发. 1398

学习threejs,使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果

本文详细介绍如何基于threejs在三维场景中使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果,亲测可用。希望能帮助到您。一起学习,加油!加油!

我哎GIS博客 1964

HTML5重力感应小球冲撞动画实现

这款动画可以让你甩动页面中的小球,小球的大小都不同,并且鼠标点击空白区域时又可以生成一定数量的小球。当我们甩动小球时,各个小球之间就会发生互相碰撞的效果,并且在运动过程中模拟了重力感应的物理效果。我自己运行的代码,效果很好,分享下!

js小球重力和碰撞效果

最近在玩小程序中一个比较火的游戏,最!强!弹!一!弹!!!,真的是超级模型的一款小游戏,打发时间堪比抖音。。。。。。,今天就来研究下关于小球如何有重力效果和互相碰撞反弹的效果。 1. 重力效果实现 首先我们当然是要先画个球球啦! .ball { width: 100px; height: 100px; border-radius: 50%; backgrou...

weixin_34151004的博客 970

HTML重力感应碰撞球动画特效源码

HTML重力感应碰撞球动画特效源码,鼠标点击增加碰撞球

用canvas和js模拟重力小球

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> html,body{ margin: 0; } canvas{ backgroun...

codingWeb的博客 702

HTML5重力感应动画特效特效代码

HTML5重力感应动画特效是一款2D冲撞小球游戏代码。

js实现小球在页面规定的区域运动

主要为大家详细介绍了js控制小球在规定范围运动,碰到边界就改变运动方向,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

HTML5重力球动画实现详解

本文将详细介绍如何使用HTML5和JavaScript实现一个具有物理引擎效果的悬浮球动画。这个项目不仅包含了基础的动画效果,还模拟了重力、摩擦力和碰撞等物理特性,同时支持拖拽交互,是一个非常有趣的前端练手项目。物理引擎的基本原理动画性能优化技巧事件处理和用户交互面向对象的JavaScript编程这个项目虽然看起来简单,但包含了很多前端开发中常用的技术点,是一个很好的学习案例。通过深入理解这些概念,我们可以在实际开发中创造出更多有趣的交互效果。

qq_43129878的博客 1374

二阶锥松弛在配电网最优潮流计算中的应用(IEEE33节点配电网最优潮流算例matlab程序)(yalmip+cplex)

文献[7]建立了以支路潮流计算为基础的OPF模型,针对OPF中的非凸性约束,采用SOCR技术将其松弛为二阶锥约束,整个 OPF 模型则被转化为二阶锥规划( Second Order Cone Programming,SOCP)问题,对其求解可以得到全局最优解。其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可控单元,包括分布式电源和离散、连续无功补偿装置,建立其出力约束,该模型为非凸非线性模型;式中,αj,t和βij,t分别为t时段内节点i电压的二次方和支路ij电流的二次方。

weixin_47365903的博客 1万+

Cocos Creator下JavaScript一步一步实现重力球游戏,附代码

『 游戏玩法』 通过手机陀螺仪,调整手机,让球从上一层的间隔中落到下一层,楼层会不断上涨,如果球碰到上方或者下方的火焰,游戏结束。 『 游戏预览』 『 开发工具』 1. CocosCreator 2.1.2 2. VisualStudio Code 『 参考API』 1. PhysicsManager 2. SystemEvent ...

一枚小工 2669

CMake接口库实战:如何用add_library的INTERFACE选项管理跨项目依赖

本文深入探讨了CMake中add_library的INTERFACE选项在管理跨项目依赖时的实战应用。通过创建不包含源代码的接口库,开发者可以集中管理头文件路径、编译定义、链接库等公共配置,并将其声明式地传递给依赖目标。文章以构建模块化跨平台网络应用为例,详细展示了如何利用接口库实现配置的集中化、依赖关系的显式化,从而提升大型项目的可维护性和可移植性。

water的专栏 1040

利用python语言进行相机标定

利用python语言进行相机标定 目录利用python语言进行相机标定一、相机标定相关原理1.相机标定简介2.坐标映射2.1图像坐标系1)图像坐标系(Pixel coordinate system)2)成像平面坐标系(Retinal coordinate system)3)摄像机坐标系(Camera coordinate system)4)世界坐标系(World coordinate system)二、相机标定算法流程1.镜头畸变1.1径向畸变1.2切向畸变2.相机标定算法求解外参内参和单应矩阵关系求解(张

qq_44818951的博客 4700

用AI实现反重力效果:代码自动生成实战

传统做法需要手动编写大量物理计算代码,但通过平台的Kimi-K2模型,只需要用自然语言描述需求,就能自动生成基础代码框架。这次体验让我意识到,AI辅助开发不是简单的代码生成,而是真正降低了复杂技术的使用门槛。一键部署,省去了配置服务器的麻烦。比如当我想调整力场线的显示效果时,只需要描述想要的变化,AI就会给出具体的代码修改建议。在平台输入"生成Three.js反重力模拟,包含球体排斥力和可视化力场线"后,AI很快给出了完整的前端代码。AI不仅生成了代码,还解释了每个参数对效果的影响,这对调试帮助很大。

BlackStone33的博客 950

ubuntu通过qemu安装银河麒麟V10_Arm_v8 (kylin_v10_飞腾/鲲鹏版)

一、windows下安装vmware虚拟机 二、ubuntu下载地址 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/ubuntu-20.04.3-live-server-amd64.iso 三、vmware中新建虚拟机,并使用ubuntu-20.04.3-live-server-amd64.iso作为启用盘 。。。在虚拟机中安装ubuntu(略) 四、配置ssh(如果ssh登录不上时配置) 修改openssh的配置 vi /etc/s

u010533742的博客 8705

Cocos Creator一步一步实现重力球游戏,附完整代码

『 游戏玩法』 通过手机陀螺仪,调整手机,让球从上一层的间隔中落到下一层,楼层会不断上涨,如果球碰到上方或者下方的火焰,游戏结束。 『 游戏预览』 『 开发工具』 1. CocosCreator 2.1.2 2. VisualStudio Code 『 参考API』 1. PhysicsManager 2. SystemEvent 3....

微赚淘客开发者博客 1038

Spring AI 项目实战(十二):Spring Boot +AI + DeepSeek + 百度OCR 公司发票智能处理系统的技术实践(附完整源码)

本文介绍了基于百度OCR API与DeepSeek AI的发票智能处理系统,通过整合AI技术实现发票识别、信息提取和验证的全流程自动化。系统采用Spring Boot 3.2.0架构,结合百度OCR的高精度图像识别和DeepSeek的语义理解能力,显著提升了发票处理效率与准确率。关键技术包括多模型融合、智能错误纠正和自适应学习机制,实现了95%以上的识别准确率,将传统处理效率提升90%以上。该系统为数字化转型中的企业财务管理提供了智能化解决方案,具备高精度识别、实时处理、智能验证等核心优势。

博客 1628

前端Three.js面试题及参考答案

渲染循环(Render Loop)是 Three.js 中一个非常重要的概念,它是一个不断重复执行的过程,用于更新和渲染 3D 场景。在每次循环中,渲染循环会更新场景中的对象状态,如位置、旋转、缩放等,然后使用渲染器将更新后的场景渲染成 2D 图像显示在屏幕上。通过不断地重复这个过程,就可以实现动画效果。渲染循环的核心作用是确保场景能够实时更新,给用户带来流畅的视觉体验。如果没有渲染循环,场景将是静态的,不会有任何变化。只有通过不断地更新和渲染,才能让场景中的对象动起来,实现各种动画效果。

大模型大数据攻城狮的专栏 2723

canvas重力小球 html+css+js

先看效果(完整代码在底部): 实现过程(可一步一步实现): 1.定义标签与基本css样式: <h1>北极光之夜。</h1> <canvas id="canvas"></canvas> #canvas{ position: fixed; top: 0; left: 0; /* filter: contrast(30); */ }

你好呀,很高兴你在看这里~ 3294

Modbus协议学习第一篇之基础概念

因工作需要而接触Modbus,正在恶补知识,利用博客的方式来加深理解和记忆,同时希望同行大佬能一起交流。

hzf978742221的博客 881

怎么用java编写三个球碰撞_javascript实现10个球随机运动、碰撞实例详解

本文实例讲述了javascript实现10个球随机运动、碰撞的方法。分享给大家供大家参考。具体如下:学了一段时间的javascript了,做过一些小案例,目前最有难度的就是10个小球随机碰撞效果,这不,把它上上来与大家分享一下,相信不少和我一样的菜鸟在开始上手编程时都会有不少的困惑,希望它能给一些人带来帮助。效果要求:10个小球在页面随机移动,碰到窗口边界或其他小球都会反弹思路:1、10个小球是1...

weixin_30146085的博客 445

C#上位机+YOLO实时目标检测:摄像头采集+多线程推理+精度调优全流程

标注数据集:使用LabelImg工具标注目标对象,按YOLO格式整理数据集;模型训练:使用Ultralytics库训练自定义模型,提升特定目标的检测精度;训练参数优化:增加训练轮数(epochs=100200)、调整批次大小(batch=1632)、使用数据增强(flip、mosaic等)。摄像头采集:封装通用采集类,支持USB摄像头/网口相机,实现稳定帧读取与异常处理;多线程推理:采用“采集线程+推理线程+UI线程”解耦架构,使用线程安全队列传递帧数据,彻底解决界面卡顿;核心封装。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 676

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: js和css3实现能够展开和折叠的折扇效果
下一篇: js实现的单行文本不间断无缝滚动效果(荧光屏文字 滚动效果)
Return_KB
博客等级 码龄9年 23粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值