小球在页面跳动

实现方法用了transform:translate(x,y);
即在当前位置进行移动,只需动态改变x和y的值就可以实现移动
点我查看页面效果(点击小球开始跳动)

JS

//获取div节点
let divEle = document.getElementsByTagName("div")[0];
//在js里给小球设置样式
divEle.style.width = 50 + "px";
divEle.style.height = 50 + "px";
divEle.style.backgroundColor = "skyblue";
divEle.style.borderRadius = "50%";
divEle.style.position = "absolute";
divEle.style.left = 0;
divEle.style.top = 0;//获取随机数
function getNum(min, max = 0) {min > max ? [min, max] = [max, min] : "";return parseInt(Math.random() * (max - min + 1)) + min;
}
//声明k,必须写在函数外,才能使用停止时间函数
let k;
//控制移动的函数
function move() {clearInterval(k);//每次调用先停止时间函数,不然会出现每调用一次,运行速度变快一次let winWidth = window.innerWidth;//获取视口宽度、高度let winHeight = window.innerHeight;winWidth -= parseInt(divEle.style.width);//让它减去小球的宽度,因为移动到右边的最大距离是视口宽度减去小球自身宽度winHeight -= parseInt(divEle.style.height);console.log(winWidth);let i = 0;let j = 0;let x = 0;let y = 0;//设置时间函数k = setInterval(function () {//当它到达边界时改变颜色if (i == 0 || j == 0 || i == winWidth || j == winHeight) {divEle.style.backgroundColor = `rgb(${getNum(0, 255)},${getNum(0, 255)},${getNum(0, 255)})`;}divEle.style.transform = `translate(${x}px,${y}px)`;//移动它的位置i+=1;//随意设置,与快慢有关,但也会影响35行判断到达最大移动距离时改变颜色,因为它可能加不到等于最大距离的时候//假如最大距离为10,i+=3,那i的值只能为3,6,9,12...则进不了改变颜色那个条件,则到达右边时不会改变颜色j+=1;x = i;y = j;if (i >= winWidth) {x = 2 * winWidth - i;//当到达最大移动距离后,让它的x变为两个最大移动距离减去i,因为i是一值在增加的if (i >= 2 * winWidth) {//当到达两个最大移动距离后,即小球已经回到了最左边了,让i=0,就重新开始i = 0;x = 0;}}if (j >= winHeight) {y = 2 * winHeight - j;if (j >= 2 * winHeight) {j = 0;y = 0;}}}, 1)
}
// move();//需要页面一打开就运行就可以直接取消注释

HTML

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>弹弹弹</title>
</head>
<body><div onclick="move()"></div>//点击小球开始弹<script src="tan.js"></script>
</body>
</html>

纯JS实现小球在页面跳动/弹弹弹(有注释)相关推荐

  1. 纯js封装一个多功能弹出框

    不借助其它的css代码和图片资源,可直接调用. 原创内容,请勿转载. 注意,不要直接复制文章里的封装代码,因为编辑器的原因,无论怎么编辑,它还是给修改了代码.文末提供了封装代码的下载地址(无需积分) ...

  2. java实现html页面转pdf解决方案_[Java教程]纯js实现html转pdf

    [Java教程]纯js实现html转pdf 0 2017-02-16 00:00:30 项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式. ...

  3. 纯js单页面赛车游戏

    纯js单页面赛车游戏 这次就是给大家分享赛车的游戏: 废话不多,直接上代码: <!DOCTYPE html> <html> <head><meta chars ...

  4. html页面跳转href过渡效果,页面锚链接平滑动画过渡纯JS插件

    smooth-scroll.js是一款轻量级的纯JS页面锚链接平滑过渡插件.通过该锚链接插件,可以在点击页面的锚链接时,以指定的过渡动画平滑滚动页面. 安装 可以通过npm或bower来安装smoot ...

  5. 纯JS单页面赛车游戏代码分享

    分享一个以前写的小游戏,纯js游戏,代码很简单.欢迎大家来喷呦! 效果图: 代码展示://直接复制到html文件即可 支持IE9+版本 <!DOCTYPE html> <html&g ...

  6. php赛车源码,纯JS单页面赛车游戏制作代码分享

    分享一个以前写的小游戏,纯js游戏,代码很简单.欢迎大家来喷呦! 效果图: 代码展示://直接复制到html文件即可 支持IE9+版本 Best Fly Car input { border: 1px ...

  7. php 右下脚弹窗,纯js的右下角弹窗实例代码

    下面小编就为大家带来一篇纯js的右下角弹窗实例代码.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 这个弹窗是如下图的效果: 打开网页的时候,这个弹窗会淡入,之后点击右上 ...

  8. 【jQuery】纯js的右下角弹窗

    这个弹窗是如下图的效果: 打开网页的时候,这个弹窗会淡入,之后点击右上角的关闭按钮,其实就是一个& times;会淡出. 采用淡入淡出是因为直接Jquery一个fadeIn与fadeOut省事 ...

  9. 纯js弹窗Dialog组件

    纯js弹窗Dialog组件 文章目录 纯js弹窗Dialog组件 1. js部分 2. css样式 3. 简单使用 4. 效果展示 1. js部分 /* eslint-disable */ const ...

最新文章

  1. UA OPTI570 量子力学29 摄动理论简介
  2. 11.4 上限分析-机器学习笔记-斯坦福吴恩达教授
  3. ARM 之三 Keil uVision4、Keil uVision5、Keil C51同一系统下的共存
  4. 【1】淘宝sdk装修入门引言
  5. vb对数据库操作用存储过程
  6. java 多线程系列基础篇(二)
  7. Java并发编程-ReadWriteLock读写锁
  8. 8plus基带电源供电线路_iPhone7显示手机无服务还有感叹号,基带通病问题,你中招了吗?...
  9. perl语言入门级练习记录23章
  10. Java 垃圾回收算法
  11. fastp manul page
  12. 如何降低数字信号和模拟信号间的相互干扰
  13. 从吴军的书《格局》总结出的37条为人方法论
  14. Android 实现浏览器打开app
  15. 基于MATLAB的矩阵基础(附例题与代码)
  16. 关于Python中的引用
  17. 如何做到两台电脑网线直连
  18. 什么是双因素验证 2FA,如何用 Python 实现?
  19. Python3程序设计题解: 三连击(升级版)
  20. 常州和南京计算机工资水平,南京和苏州哪一个城市工资高?六张图带你看懂江苏各市平均工资情况...

热门文章

  1. Git cherry-pick 复制多个commit
  2. audacity_为教师快速介绍Audacity
  3. Java---中文词匹配 正向、逆向和双向最大匹配算法
  4. 问题解决:fastjson 迁移至gson 反序列化错误,看这篇就够!
  5. 一张图告诉大家,为啥胖了气质会垮?
  6. python挑战分享
  7. 数据结构判断链表是否为空:
  8. 招行算法2020届实习技术面编程题:实现O(1)最小栈(手撸代码)
  9. Fluent在服务器上的并行
  10. 订阅号和服务号的区别