java用定时器控制滚动字_JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解...

本文实例讲述了JavaScript学习笔记之基于定时器实现图片无缝滚动功能。分享给大家供大家参考,具体如下:

一、无缝滚动理论基础

基础知识

1.setInterval(function,time)、clearInterval(timer)

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

clearInterval() 方法可取消由 setInterval() 设置的 timeout。

clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

2.offsetLeft与style.left的区别

offsetLeft 获取的是相对于父对象的左边距

left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距

如果父div的position定义为relative,子div的position定义为absolute,那么子div的style.left的值是相对于父div的值,

这同offsetLeft是相同的,区别在于:

1. style.left 返回的是字符串,如28px,offsetLeft返回的是数值28,如果需要对取得的值进行计算,还用offsetLeft比较方便。

2. style.left是读写的,offsetLeft是只读的,所以要改变div的位置,只能修改style.left。

3. style.left的值需要事先定义,否则取到的值为空。而且必须要定义在html里,我做过试验,如果定义在css里,style.left的值仍然 为空,这就是我刚开始碰到的问题,总是取不到style.left的值。

offsetLeft则仍然能够取到,无需事先定义div的位置。

二、代码片段

无缝滚动

*{

margin: 0;

padding: 0;

}

#div2{

width: 400px;

margin: 100px auto;

}

input{

margin:0 auto;

text-align: center;

margin-left: 80px;

font-size: 40px;

}

#div1{

width: 712px;

height: 108px;

margin: 100px auto;

position: relative;

background-color: red;

overflow: hidden;

}

#div1 ul{

position: absolute;

left: 0;

top: 0;

}

#div1 ul li{

float: left;

width: 178px;

height: 108px;

list-style:none;

}

window.οnlοad=function(){

var oDiv=document.getElementById('div1');

var oUl=document.getElementsByTagName('ul')[0];

var aLi=oUl.getElementsByTagName('li');

var lBtn=document.getElementById('lbtn');

var rBtn=document.getElementById('rbtn');

//将ul复制一份相加复制给ul(这样ul相当于有8张图片)

oUl.innerHTML=oUl.innerHTML+oUl.innerHTML;

oUl.style.width=aLi[0].offsetWidth*aLi.length+'px';

//speed控制图片移动方向和速度

var speed=2;

function move(){

if(oUl.offsetLeft

oUl.style.left=0;

}

if(oUl.offsetLeft>0)

{

oUl.style.left=-oUl.offsetWidth/2+'px';

}

oUl.style.left=oUl.offsetLeft+speed+'px';

}

var timer=setInterval(move,30);

// 鼠标移进时,图片停止运动

oDiv.οnmοuseοver=function(){

clearInterval(timer);

};

//鼠标移出时,图片继续移动

oDiv.οnmοuseοut=function(){

timer=setInterval(move,30);

}

//按钮控制移动方向

lBtn.οnclick= function () {

speed=-2;

}

rBtn.οnclick=function(){

speed=2;

}

};

三、效果图

bab5d9646a6f6ce2a42357c4a8265d05.png

希望本文所述对大家JavaScript程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值