小球碰壁回弹--- html(JavaScript)

这两天解除了下 html 看到想起来 iOS 上有个游戏感觉挺好的,于是想着用 js 写写试试, 结果实现了, 多余的也不说了, 直接上代码 主要地方都有注释

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>碰壁反弹</title>
        <style type="text/css">
             * {
                 margin: 0;
                 padding: 0;
             }
             body {
                 background: lightblue;
             }
             .wrap {
                 width: 500px;
                 height: 300px;
                 background: limegreen;
                 position: relative;
                 margin: 20% auto;  /*水平居中*/
                 
             }
             .wrap .box {
                 width: 50px;
                 height: 50px;
                 background: cyan;
                 border-radius: 50%;
                 position: absolute;                                  
             }
        </style>
    </head>
    <body>
        <!--边框-->
        <div class="wrap">
            <!--小球-->
            <div class="box"></div>
        </div>
    </body>
    <script type="text/javascript">
        var wrap = document.querySelector(".wrap");
        var box = document.querySelector(".wrap .box");
        var speedX = 5; // 速度
        var speedY = 2;
        // wrap 不带边线的宽度 减去 box 带边线的宽度 得到最大的运动宽度
        var maxWidth = wrap.clientWidth - box.offsetWidth;
        // wrap 不带边线的高度 减去 box 带边线的高度 得到最大的运动高度
        var maxHeight = wrap.clientHeight - box.offsetHeight;
        // 获取小球的距离(位置)
        var top1 = 0; // Y
        var left1 = 0; // X
        // 小球移动的方法
        function move() {
             left1 += speedX;
             top1 += speedY;
             box.style.top = top1 + "px";
             box.style.left = left1 + "px";
             // 判断左右边界 如果 box 边缘到 wrap 左右边界 速度取反 改变方向
             if (left1 <= 0 || left1 >= maxWidth) {
                 speedX *= -1;
             // 判断上下边界 如果 box 边缘到 wrap 上下边界 速度取反 改变方向
             } else if (top1 <= 0 || top1 >= maxHeight) {
                 speedY *= -1;
             }
        }
        // 添加定时器 并调用移动的方法
        var timer = setInterval(function() {
            move();
        }, 35);
    </script>
</html>
总体上感觉 html 要比 iOS 方便的多, 代码简化了好多, 而且应用范围更广,以后更要多多的学习

时间: 2024-12-20 13:02:12

小球碰壁回弹--- html(JavaScript)的相关文章

帆布小球碰壁效果

<!doctype html><html><head><meta charset="utf-8"><meta name="author" content="http://www.softwhy.com/" /><title>帆布小球碰壁效果</title> <style> canvas { border:2px dotted #ccc;}</st

js中小球碰壁反弹

一. 在指定容器内的碰壁反弹 <!DOCTYPE HTML> <html> <head> <title></title> <meta charset="UTF-8"/> <style type="text/css"> .ball{ height: 60px; width: 60px; background: blue; border-radius: 50%; position: ab

JavaScript随机数类型

1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1) 2.Math.floor(num); 参数num为一个数值,函数结果为num的整数部分. 3.Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数. Math:数学对象,提供对数据的数学计算.Math.random(); 返回0和1间(包括0,不包括1)的一个随机数. Math.ceil(n); 返回大于等于n的最小整数.用Math.ceil(Math.random()*10);

Cocos2d入门--3-- 向量的应用

 Cocos2d入门--3-- 向量的应用 小球向一个方向持续运动的Demo HelloWorldScene.h ...... //设置一个protected的属性 protected: cocos2d::Vec2 _vec; ...... HelloWorldScene.cpp //这个是通过随机数设置向量的方向 _vec.set(random(-0.1f, 1.0f), random(-1.0f, 1.0f)); //通过normalize这个标准化函数,能够使得向量的大小为1 _vec.n

SlidingDrawer+ViewPager launcher小开发

现在没事儿搞搞launcher,就用到了抽屉效果,纯属自己瞎胡闹,玩呢. 这里可以隐藏抽屉打开后的手柄,点击返回按钮,又再次恢复. 这里也写了个小球震荡回弹的效果. SlidingDrawer的实现,同时何以隐藏SlidingDrawer的handle,在抽屉打开时处于隐藏状态.当SlidingDrawer关闭时,手柄又会再出出现. 同时在SlidingDrawer开启式,在手机顶部会有一个震荡回弹的效果. 上面效果图 项目源代码--> MyLauncher.zip SlidingDrawer+

Android攻城狮属性动画赏析

1 import android.support.v7.app.ActionBarActivity; 2 import android.support.v7.app.ActionBar; 3 import android.support.v4.app.Fragment; 4 import android.animation.AnimatorSet; 5 import android.animation.ObjectAnimator; 6 import android.animation.Prop

初级黄金体验 其一

关于作者 作者背景:公元2001年,意大利那不勒斯少年,为了达成梦想,在国庆的三天发现自己替身能力Java.从而加入了黑手党组织,并成为...... 作者目的:入门Java 为了Fighting Gold 关于游戏 游戏说明:参考了不少的代码,但是自带点点点点思想创新,一个简陋无比但是有点点创意的Java小游戏,代码随便用,可以继续开源开发.其实想做坦克大战为了面向对象的作用发现太复杂又没(菜)创(机)意. : ) 游戏代码Git地址:https://github.com/O-VIGIA/Jav

Windows Store App JavaScript 开发:小球运动示例

通过前面内容的学习,相信读者已经对开发基于JavaScript的Windows应用商店应用有了一定的了解,本小节通过一个小球运动的示例来介绍如何新建一个JavaScript的Windows应用商店项目,以及怎样向项目中添加功能实现代码. 首先启动Visual Studio 2012集成开发工具,打开"文件"菜单,选择其中的"新建项目"菜单项后会弹出"新建项目"窗口.在"新建项目"窗口左侧的JavaScript模板分类中选择&q

初探JavaScript(三)——JS带我碰壁带我飞

已经写了两篇关于小白的JavaScript之行,不可否认,每一种语言都有其精华与糟粕之处,来不及细细体味其精华奥妙,也没法对其评头论足,只能先了解,后深入.到目前为止已经看完<JavaScript Dom 编程艺术>(ps:看过书评,网友对其褒贬不一,个人感觉还是不错的,适合初学者.不是每本书都能得到所有读者的认可,只能让部分适合的读者对其称赞,而我,就是其中一个). 前面介绍了JavaScript的一些常用方法,如何与DOM.HTML配合完成一些交互.今天主要介绍JavaScript在动画效