js实现图片滚动效果

JavaScript023

js实现图片滚动效果,第1张

<SCRIPT language="JavaScript">

var speed=50//设置滚动速度

demo2.innerHTML=demo1.innerHTML //复制dome1为dome2

function Marquee(){

if(demo2.offsetTop-demo.scrollTop<=0) //当滚动至dome1与dome2交界时

demo.scrollTop-=demo1.offsetHeight //dome跳到最顶端

else{

demo.scrollTop++

}

}

var MyMar=setInterval(Marquee,speed) //设置定时器

demo.onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的

demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}//鼠标移开时重设定时器,继续滚动

</SCRIPT>

<div id="demo" style="overflow: hiddenheight: 600width: 180background: #214984color: #ffffff">

<div id="demo1" align="center">

<!-- 定义图片 -->

</div>

<div id="demo2" align="center"></div>

</div>

预加载图片是提高用户体验的一个很好方法。图片预先加载到浏览器中,这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速、无缝地发布,也可帮助用户在浏览网站内容时获得更好的用户体验。

示例代码:

function

loadImage(url,

callback)

{

var

img

=

new

Image()

//创建一个Image对象,实现图片的预下载

img.src

=

url

if

(img.complete)

{

//

如果图片已经存在于浏览器缓存,直接调用回调函数

callback.call(img)

return

//

直接返回,不用再处理onload事件

}

img.onload

=

function

()

{

//图片下载完毕时异步调用callback函数。

callback.call(img)//将回调函数的this替换为Image对象

}

}

通过JS代码  document.getElementById('divID').style.etElementById('divID').style.display = 'none'。函数可以实现。

1、遮罩层:<div id="back"></div>,即作为背景层,覆盖整个页面。弹出层:<div id="form"></div>,即背景层上的一层,此层可根据#form{top: 10%left: 10%width: 20%height: 30%},调整弹出层的弹出位置。

2、弹出层和遮罩层全部为div标签,可以利用display来控制显示和隐藏的属性,在js中,显示:   document.getElementById('divID').style.display = document.getElementById('divID').style.display = 'none'。

3、显示遮罩层和弹出层,即可用图中popDiv()函数表示: 其中,showId 表示弹出层的divId, backId 表示遮罩层的divId;函数第去、2行显示弹出层和遮罩,3、4、5行设置遮罩层的长度、宽度。

4、关闭弹出层和遮罩层用hideDiv函数(), 其中:showId 表示弹出层的divId, backId 表示遮罩层的divId;先关闭弹出层,后关闭遮罩层。

5、点击按钮后,弹出,要给按钮加上onclick函数,<button onclick="popDiv('form','back')">点我,显示弹出层</button>。

6、整体代码如下,css 样式可根据个人的喜好自行添加。