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中string之正则表达式replace方法详解

    JS中String之正则表达式replace方法详解 什么是正则表达式 正则表达式可以理解为是一种匹配文本模式的规则。使用正则表达式可以方便地进行文本操作,如查找、替换、匹配等。在JavaScript中,可以使用RegExp对象来表示正则表达式。 replace方法概述 字符串的replace()方法可以用来替换字符串中的文本。它可以接受两个参数,第一个参数…

    JavaScript 2023年5月28日
    00
  • JavaScript字符串处理(String对象)详解

    JavaScript字符串处理(String对象)详解 在JavaScript中,字符串也是一个重要的数据类型。String对象中提供了一系列的方法来对字符串进行处理。本篇攻略将详细讲解JavaScript中String对象的常用方法。 字符串的定义 在JavaScript中,字符串可以用单引号或双引号来定义。例如: var str1 = ‘hello wo…

    JavaScript 2023年5月19日
    00
  • 使用JQ来编写最基本的淡入淡出效果附演示动画

    下面是使用JQ来编写最基本的淡入淡出效果的攻略。 步骤一:引入JQ库 在HTML文件的头部引入JQ库的代码,代码如下: <!– 引入JQ库 –> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></scr…

    JavaScript 2023年6月11日
    00
  • 使用JS location实现搜索框历史记录功能

    有一种常见的搜索框历史记录功能是,当用户在搜索框中输入关键字后,网站会记录这个关键字,并在搜索框下方显示搜索历史记录,用户可以快速选择历史记录中的关键字再次进行搜索。 实现这个功能可以使用JS中的location对象。以下是实现搜索框历史记录功能的详细步骤: 1. 监听搜索框的输入事件 首先,需要在搜索框上添加事件监听器,监听搜索框的输入事件。当用户在搜索框…

    JavaScript 2023年6月11日
    00
  • 原生Aajax 和jQuery Ajax 写法个人总结

    原生Ajax与jQuery Ajax写法个人总结 简介 Ajax(Asynchronous JavaScript and XML)是指一种创建交互式、快速动态网页的技术,在不重新加载整个网页的情况下,能够异步地更新部分网页内容。本文将介绍原生Ajax与jQuery Ajax的写法及其异同点。 原生Ajax写法 XMLHttpRequest对象 原生Ajax基…

    JavaScript 2023年6月11日
    00
  • Javascript 错误处理的几种方法

    下面是关于 Javascript 错误处理的几种方法的详细攻略。 1. try-catch try-catch 是一种常用的 Javascript 错误处理方式,用于捕捉运行时的错误并进行相应的处理。其中,try 代码块用于执行可能会产生异常的代码,如果产生了异常则会被 catch 代码块捕获,从而进行错误处理。 下面是一个示例代码,演示了 try-catc…

    JavaScript 2023年5月28日
    00
  • Javascript基础知识(二)事件

    Javascript基础知识(二)事件 一、事件的定义和使用 事件是指在操作网页时所产生的一系列动作,例如鼠标点击、键盘输入、窗口滚动等等。通过事件,我们可以给网页绑定相应的响应函数,实现网页的交互功能。 在Javascript中,事件通常被定义为对象的一种,可以使用addEventListener()方法来绑定事件函数。示例代码如下: document.g…

    JavaScript 2023年6月10日
    00
  • 24个实用JavaScript 开发技巧

    24个实用JavaScript开发技巧攻略 简介 这是一个介绍实用 JavaScript 开发技巧的攻略。本文将让你掌握更多优秀的JavaScript技巧,使你在开发中表现的更加出色。文章包含示例说明和详细讲解。 1. 使用 console.time() 和 console.timeEnd() 来计算代码执行时间 在 JavaScript 开发中,有时候需要…

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