js课程 6-15 js简单弹力球如何实现

一、总结

一句话总结:a、通过document的documentElement属性获取可是区域的高; b、通过增值变为负的实现到底部后反弹

1、document的body属性和documentElement属性的区别是什么?

比如body中只有一个img的时候
那么body的区域就是只有img的这么大
documentElement的范围就是整个document文档

2、如何实现弹力球到底部之后反弹的问题?

让增值变为负的即可

41 setInterval(function(){
42 ys+=yv;
43
44 if(ys>=diffHeight){
45 ys=diffHeight;
46 yv=-yv;
47 }
48
49 if(ys<=0){
50 yv=-yv;
51 }
52 imgobj.style.top=ys+'px';
53 },10);

3、js中如何设置元素的样式?

元素.style.样式名,比如imgobj.style.top

52     imgobj.style.top=ys+'px';

4、js中如何获取页面的宽高?

通过document的documentElement属性

1.有效的高   屏幕可视的高
document.documentElement.clientHeight

2.屏幕的总高度   屏幕的总高度
document.documentElement.scrollHeight

3.滚动的高      滚动的高度
document.documentElement.scrollTop

34 screenHeight=document.documentElement.clientHeight;
35 imgHeight=128;
36 diffHeight=screenHeight-imgHeight;

5、div中放img,比如img是128*128,div也是128*128,但是img还是把div多顶了4px,div变成了128*132,如何解决?

出现的原因是因为图片对齐的问题,虽然这里没有文字,其实也就是块标签中的行标签对齐的问题
a、img设置display为block
b、div设置overflow为hidden

6、jquery和js中事件的区别是什么?

js中加了on,比如onkeydown,而jquery中就是keydown

二、js简单弹力球如何实现

1、相关知识

获取3个高度:
1.有效的高   屏幕可视的高
document.documentElement.clientHeight

2.屏幕的总高度   屏幕的总高度
document.documentElement.scrollHeight

3.滚动的高      滚动的高度
document.documentElement.scrollTop

 

2、代码

 <!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
*{
font-family: 微软雅黑;
margin:0px;
padding:0px;
} #imgid{
width:128px;
height:128px;
position: absolute;
top:0px;
left:0px;
} #imgid img{
display: block;
} </style>
</head>
<body>
<div id='imgid'>
<img src="fb.png">
</div>
</body>
<script>
imgobj=document.getElementById('imgid');
screenHeight=document.documentElement.clientHeight;
imgHeight=128;
diffHeight=screenHeight-imgHeight; ys=0;
yv=10; setInterval(function(){
ys+=yv; if(ys>=diffHeight){
ys=diffHeight;
yv=-yv;
} if(ys<=0){
yv=-yv;
}
imgobj.style.top=ys+'px';
},10);
</script>
</html>
 

js课程 6-15 js简单弹力球如何实现的更多相关文章

  1. js课程 1-5 js如何测试变量的数据类型

    js课程 1-5 js如何测试变量的数据类型 一.总结 一句话总结:用typeof()方法. 1.js如何判断变量的数据类型? 用typeof()方法. 13 v=10; 14 15 if(typeo ...

  2. js版弹力球实例

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>弹 ...

  3. JS实现弹性势能效果(弹力球效果[实现插件封装])

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. js课程 4-11 表格如何实现隔行换色

    js课程 4-11 表格如何实现隔行换色 一.总结 一句话总结:表格奇数行和偶数行判断,赋予不同的样式. 1.表格如何隔行换色? 表格奇数行和偶数行判断,赋予不同的样式. 21 <script& ...

  5. js课程 1-4 js变量的作用域是怎样的

    js课程  1-4   js变量的作用域是怎样的 一.总结 一句话总结:只有在函数内部前面带var的变量为局部变量,局部变量只能在函数体内使用. 1.什么情况下会出现NaN类型的错误,举一例? Num ...

  6. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

  7. js课程 1-2 js概念

    js课程 1-2  js概念 一.总结 一句话总结:js标签元素也是js对象,有属性和方法,方法就是事件,属性就是标签属性,可以直接调用. 1.js中如何获取标签对象? getElement获取的是标 ...

  8. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  9. Js完美验证15/18身份证,Js验证身份证,支持15/18位

    Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...

随机推荐

  1. BZOJ 1055 DP

    思路: f[i][j][k]表示i到j匹配了字母k if(m,n能匹配上k) f[i][j][k]|=f[i][l][m]&f[l+1][j][n] 一个大枚举 就OK了~ //By Siri ...

  2. js创建dom操作select

    document.getElementById("column-left").getElementsByTagName("header")[0].onclick ...

  3. [Chromium文档转载,第003章]Proposal: Mojo Synchronous Methods

    Proposal: Mojo Synchronous Methods yzshen@chromium.org 02/02/2016 Overview Currently there are quite ...

  4. 分享《Python 游戏编程快速上手(第3版)》高清中文版PDF+高清英文版PDF+源代码

    通过编写一个个小巧.有趣的游戏来学习Python,通过实例来解释编程的原理的方式.14个游戏程序和示例,介绍了Python基础知识.数据类型.函数.流程控制.程序调试.流程图设计.字符串操作.列表和字 ...

  5. 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)

    不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...

  6. Add Webhooks to Your API the Right Way

    Add Webhooks to Your API the Right Way Adam DuVander / December 15, 2016 In the last 10 years, APIs ...

  7. Vijos——T1406 拉力赛

    https://vijos.org/p/1460 描述 车展结束后,游乐园决定举办一次盛大的山道拉力赛,平平和韵韵自然也要来参加大赛. 赛场上共有n个连通的计时点,n-1条赛道(构成了一棵树).每个计 ...

  8. HBase 数据库检索性能优化策略

    HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主要用于非结构化数据存储用途的开源数据库.其设计思路来源于 Google 的非开源数据库"BigTable" ...

  9. Eclipse怎么导入外来项目

    从File中点击------>import----->General------>然后按下面的图片显示

  10. Onvif开发之服务端发现篇

    服务端的开发相对来说比客户端稍微难一点,也就是给填充相关结构体的时候,需要一点一点的去查阅,验证各个结构中各个成员各自代表什么意思,以及对应的功能需要是那个接口实现,这是开发服务端最头疼的事情.(在开 ...