JavaScript学习笔记5 之 计时器 & scroll、offset、client系列属性 & 图片无缝滚动
一、计时器
setInterval ( 函数/名称 , 毫秒数 )表示每经过一定的毫秒后,执行一次相应的函数(重复)
setTimeout ( 函数/名称 , 毫秒数 ) 表示经过一定的毫秒后,只执行一次相应的函数(不重复)
清除计时器:
clearInterval( );
clearTimeout( );
当计时器调用执行完毕时,它将返回一个timer ID,
如果将该ID传递给clearInterval,便可以终止代码的执行。
实例:
页面布局:
<div id="wrap">
<h2>计时开始</h2>
<p id="show"></p>
<button id="btn1">clearInterval( )</button>
<button id="btn2">clearTimeout( )</button>
</div>
JS代码:
var show=document.getElementById('show');
var btn1=document.getElementById('btn1');
var btn2=document.getElementById('btn2');
var x=0;
var timer1=null;//设置timer1为空对象类型
var timer2=null;
//1.setInterval ( 函数/名称 , 毫秒数 )表示每经过一定的毫秒后,执行一次相应的函数(重复)
timer1=setInterval(function(){//当计时器调用执行完毕时,它将返回一个timerID(timer1),
x++;
show.innerHTML=x;
},500);
btn1.onclick=function(){
clearInterval(timer1);//将该ID传递给clearInterval,便可以终止代码的执行
// 清除计时器:clearInterval( );
}
//2.setTimeout ( 函数/名称 , 毫秒数 )表示经过一定的毫秒后,只执行一次相应的函数(不重复)
timer2=setTimeout(function(){
alert('我是一次性计时器');
},3000)
btn2.onclick=function(){
clearTimeout(timer2);//清除计时器 clearTimeout( );
}
二、scroll系列属性
scrollLeft:设置或获取当前左滚的距离,即左卷的距离;
scrollTop:设置或获取当前上滚的距离,即上卷的距离;
scrollHeight:获取对象可滚动的总高度;
scrollWidth:获取对象可滚动的总宽度;
使用实例:
页面布局:
<div id="box">
<div id="box1">几点见覅当时就发哦哦降低副书记艾佛积分抵沙发几点见覅当时就发哦哦降低副书记艾佛积。。。。。。</div>
</div>
<button id="btn">获取</button>
<p id="totop">返回顶部</p>
JS代码:
var box=document.getElementById('box');
var box1=document.getElementById('box1');
var btn=document.getElementById('btn');
var show=document.getElementById('show');
var totop=document.getElementById('totop');
btn.onclick=function(){
console.log(box.scrsollLeft);//获取父级(box)左滚的距离,即左卷的距离;
console.log(box.scrollTop);//获取当前父级(box)上滚的距离,即上卷的距离
console.log(box.scrollWidth);//获取对象(box1)可滚动的总宽度
console.log(box.scrollHeight);//获取对象(box1)可滚动的总高度
}
document.body 访问到<body>元素,页面没有DTD,或者说没有指定doctype时,
document.documentElement 访问到<html>根元素,页面有DTD,或者说指定了doctype时,
获取scrollTop的兼容写法
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
示例:
totop.onclick=function(){
var timer1=null;
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
//document.documentElement访问到<html>根元素(页面没有DTD,或者说没有指定doctype时)
//window.pageYOffset (safari自己的方法)
//document.body 访问到<body>元素,适用(页面没有DTD,或者说没有指定doctype时)
timer1=setInterval(function(){
scrollTop-=20;
if(scrollTop<=0){
/*scrollTop=0;
return false;*/
clearInterval(time);
}
document.documentElement.scrollTop=scrollTop;
document.body.scrollTop=scrollTop;
window.pageYOffset=scrollTop;
},2)
}
三、offset系列属性
offsetLeft:获取对象左侧与定位父级之间的距离
offsetTop:获取对象上侧与定位父级之间的距离
PS:获取对象到父级的距离取决于最近的定位父级
offsetWidth:获取元素自身的宽度(包含边框)
offsetHeight:获取元素自身的高度(包含边框)
四、client系列属性
clientLeft、clientTop:获取元素内容到边框的距离,效果和边框宽度相同,比较少使用
clientWidth:获取元素自身的宽度(不含边框)
clientHeight:获取元素自身的高度(不含边框)
五、图片无缝滚动
页面布局:
<div id="wrap">
<div id="con">
<div id="box1">
<img src="data:images/qzl1.jpg" alt="">
<img src="data:images/qzl2.jpg" alt="">
<img src="data:images/qzl3.jpg" alt="">
<img src="data:images/qzl4.jpg" alt="">
<img src="data:images/qzl5.jpg" alt="">
</div>
<div id="box2">
</div>
</div>
</div>
<script>
var wrap=document.getElementById('wrap');
var box1=document.getElementById('box1');
var box2=document.getElementById('box2');
// var img1=wrap.getElementsByTagName('img')[0];
var timer=null,x=0;
var maxWidth=box1.offsetWidth;
box2.innerHTML=box1.innerHTML;
function move(){
timer=setInterval(function(){
x+=5;
if(x>=maxWidth){//临界点,一组图片转完时
wrap.scrollLeft=0;
//设这组图片的左卷距离为0,回到初始位置
x=0;
}
wrap.scrollLeft=x;
},20)
}
move();//进入页面自动执行
wrap.onmouseenter=function(){
clearInterval(timer);
}
wrap.onmouseleave=function(){
move();
}
</script>
JavaScript学习笔记5 之 计时器 & scroll、offset、client系列属性 & 图片无缝滚动的更多相关文章
- JavaScript学习笔记——DOM_对document对象的内容、属性、样式的操作
javascript-对文档对象的内容.属性.样式的操作 一.操作内容 1. innerHTML 用来设置或获取对象起始和结束标签内的内容(识别html标签) 2. innerText 用来设置或获取 ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
随机推荐
- ubuntu安装mysql
好记性不如烂笔头,记录一下,ubuntu安装mysql的指令. 安装MySQL: sudo apt-get install mysql-server sudo apt-get install mysq ...
- 分布式服务注册和发现consul 简要介绍
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架 ...
- 【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...
- BoneCP 升级遇到的问题
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [c ...
- 原生ajax实现登录(一部分代码)
<script type="text/javascript"> function ajax() { //先声明一个异步请求对 ...
- es6学习笔记
class Point { constructor(x, y) { this.x = x; this.y = y; } static classMethod() { console.log('fath ...
- 【Win 10 应用开发】InkToolBar——涂鸦如此简单
从WPF开始,就有个InkCanvas控件,封装了数字墨迹处理相关的功能,Silverlight到Win 8 App,再到UWP应用,都有这个控件,所以,老周说了3688遍,凡是.net基础扎实者,必 ...
- [WPF]控件应用多个样式
最近在做WPF项目,公司没有专门的UI工程师,什么都要自己做.接触WPF已经有好几年了,自定义样式什么的也可以做一些.WPF在使用样式的时候一般都是 Style="{StaticResour ...
- Python标准模块--built-ins函数
1.Python内置函数 2.Python内置函数举例 2.1 数学运算 abs,计算绝对值: >>> abs(-1) 1 >>> abs(3) 3 round,四 ...
- Java 计算N阶乘末尾0的个数-LeetCode 172 Factorial Trailing Zeroes
题目 Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in ...