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

实现小球在页面规定的区域运动,需要用到JavaScript语言实现动态效果。

具体的步骤和示例说明如下:

  1. 首先,需要在html代码中添加一个用于显示小球的div标签,类似如下代码:
<div id="ball" style="position:absolute; width:20px; height:20px; border-radius:50%; background-color:red;"></div>
  1. 接着,在JavaScript代码中定义小球的运动范围和速度参数,例如左上角坐标(0,0),右下角坐标(600,400),以及速度分量vx和vy。代码示例如下:
var leftBound = 0, rightBound = 600, topBound = 0, bottomBound = 400;
var ball = document.getElementById('ball');
var vx = 5, vy = 2;
  1. 然后,编写一个函数来控制小球的运动轨迹,函数中需要判断小球是否碰到边界,如果碰到边界则改变相应的速度分量取反。代码示例如下:
function moveBall() {
    var x = parseInt(ball.style.left);
    var y = parseInt(ball.style.top);
    if (x + vx > rightBound || x + vx < leftBound) {
        vx = -vx;
    }
    if (y + vy > bottomBound || y + vy < topBound) {
        vy = -vy;
    }
    x += vx;
    y += vy;
    ball.style.left = x + "px";
    ball.style.top = y + "px";
}
  1. 最后,使用setInterval函数来周期性地调用moveBall函数,实现小球的运动效果。代码示例如下:
setInterval(moveBall, 30);

示例1:实现小球随机运动

<!DOCTYPE html>
<html>
<head>
    <title>小球随机运动</title>
    <meta charset="utf-8">
    <style type="text/css">
        #ball {
            position: absolute;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background-color: red;
        }
    </style>
</head>
<body>
    <div id="ball"></div>
    <script type="text/javascript">
        var leftBound = 0, rightBound = 600, topBound = 0, bottomBound = 400;
        var ball = document.getElementById('ball');
        var vx = getRandomNumber(-10, 10), vy = getRandomNumber(-10, 10);

        function moveBall() {
            var x = parseInt(ball.style.left);
            var y = parseInt(ball.style.top);
            if (x + vx > rightBound || x + vx < leftBound) {
                vx = -vx;
            }
            if (y + vy > bottomBound || y + vy < topBound) {
                vy = -vy;
            }
            x += vx;
            y += vy;
            ball.style.left = x + "px";
            ball.style.top = y + "px";
        }

        function getRandomNumber(min, max) {
            return Math.floor(Math.random() * (max - min + 1) + min);
        }

        setInterval(moveBall, 30);
    </script>
</body>
</html>

示例2:实现多个小球同时运动

<!DOCTYPE html>
<html>
<head>
    <title>多个小球同时运动</title>
    <meta charset="utf-8">
    <style type="text/css">
        .ball {
            position: absolute;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="ball"></div>
    <div class="ball"></div>
    <div class="ball"></div>
    <div class="ball"></div>
    <div class="ball"></div>
    <script type="text/javascript">
        var leftBound = 0, rightBound = 600, topBound = 0, bottomBound = 400;
        var balls = document.getElementsByClassName('ball');

        for (var i = 0; i < balls.length; i++) {
            initBall(balls[i]);
        }

        function initBall(ball) {
            ball.style.left = getRandomNumber(leftBound, rightBound - parseInt(ball.style.width)) + "px";
            ball.style.top = getRandomNumber(topBound, bottomBound - parseInt(ball.style.height)) + "px";
            ball.vx = getRandomNumber(-10, 10);
            ball.vy = getRandomNumber(-10, 10);
        }

        function moveBall() {
            for (var i = 0; i < balls.length; i++) {
                var ball = balls[i];
                var x = parseInt(ball.style.left);
                var y = parseInt(ball.style.top);
                if (x + ball.vx > rightBound || x + ball.vx < leftBound) {
                    ball.vx = -ball.vx;
                }
                if (y + ball.vy > bottomBound || y + ball.vy < topBound) {
                    ball.vy = -ball.vy;
                }
                x += ball.vx;
                y += ball.vy;
                ball.style.left = x + "px";
                ball.style.top = y + "px";
            }
        }

        function getRandomNumber(min, max) {
            return Math.floor(Math.random() * (max - min + 1) + min);
        }

        setInterval(moveBall, 30);
    </script>
</body>
</html>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现小球在页面规定的区域运动 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS数组搜索之折半搜索实现方法分析

    JS数组搜索之折半搜索实现方法分析 什么是折半搜索 折半搜索,也称二分搜索,是一种高效的搜索算法,它可以在一个已经按照某种顺序排好序的数组中查找某个值的位置。折半搜索每次对数组进行“折半”,判断目标值在左半部分还是右半部分,然后重复这个过程,直到找到目标值或者确定目标值不存在于数组中。 如何实现折半搜索 在JavaScript中,可以通过以下代码实现一个折半…

    JavaScript 2023年5月28日
    00
  • javascript时间戳和日期字符串相互转换代码(超简单)

    下面是详细讲解“javascript时间戳和日期字符串相互转换代码(超简单)”的攻略: 时间戳和日期字符串的定义 时间戳是1970年1月1日00:00:00(格林威治标准时间)起至现在的总秒数,通常为一个整数。 日期字符串是一个按照一定格式表示的时间文本,常用的格式包括“年-月-日 时:分:秒”、“月/日/年 时:分:秒”等。 时间戳转日期字符串 // 时间…

    JavaScript 2023年5月27日
    00
  • jquery获取URL中参数解决中文乱码问题的两种方法

    接下来我将详细讲解“jquery获取URL中参数解决中文乱码问题的两种方法”的完整攻略。 问题描述 由于中国所有的编码都是基于 Unicode,因此 UTF-8 编码也经过传递被应用在了 URL 地址中。而浏览器在向服务器传递请求的时候,会自动将请求参数进行编码(包括中文),所以在 URL 中看起来是一堆乱码,而我们在使用 jQuery 获取 URL 中的参…

    JavaScript 2023年5月19日
    00
  • JS截取字符串的三种方法详解

    JS截取字符串的三种方法详解 在开发中,我们经常需要对字符串进行处理,其中截取字符串是一种比较常用的操作。在JavaScript中,我们通过以下三种方式来截取字符串: 使用String对象自带的slice()方法。 使用String对象自带的substring()方法。 使用String对象自带的substr()方法。 接下来,我们将详细讲解以上三种方法的使…

    JavaScript 2023年5月28日
    00
  • js确认框confirm()用法实例详解

    JS确认框 confirm() 用法实例详解 简介 confirm()函数是JavaScript中常用的确认框(弹出框)函数之一,可以使用该函数显示一个询问是否确认执行某项操作的对话框,并根据用户的响应(点击确认或取消按钮)返回不同的结果。 语法 confirm()函数的语法格式如下: confirm(message) 其中,message参数是对话框中显示…

    JavaScript 2023年6月11日
    00
  • 详解Javascript中的Object对象

    详解Javascript中的Object对象 什么是Object对象? 在Javascript中,Object是一种非常常见的数据类型。可以说,Object是Javascript中最重要的一个对象之一。 它是由一组无序的键值对组成的,其中键必须是字符串类型,值可以是任意类型,包括数字、字符串、布尔型、函数、内置对象等。 创建Object对象 创建一个空的Ob…

    JavaScript 2023年6月10日
    00
  • 浅谈类似于(function(){}).call()的js语句

    类似于 (function(){}).call() 的 JS 语句通常被称为自执行函数,在 JavaScript 中被广泛使用。下面是这种语句的详细讲解。 1. 什么是自执行函数 自执行函数是一个在定义时立即执行的函数。它可以被写作以下两种形式之一: (function() { // 函数体 })(); // 或者 (function() { // 函数体 …

    JavaScript 2023年5月27日
    00
  • Javascript类型转换的规则实例解析

    标题:Javascript类型转换的规则实例解析 JavaScript类型转换 在JavaScript中,类型转换是非常常见的操作,在进行类型转换时可能会涉及自动类型转换和强制类型转换两种方式。 自动类型转换 自动类型转换是JavaScript中的一种默认行为,在运行代码时,如果需要把一个数据类型赋值给另外一个数据类型时,JavaScript会自动进行类型转…

    JavaScript 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部