这是一个非常不错的JavaScript图片特效,当最初打开网页的时候,显示的是大图片,就像遮屏广告一样,停留一会后,自动缓慢收起,这时由JS控制更换广告图片,始终显示在网页顶部,在一些大门户网站我们经常见到这种效果,个人感觉挺酷哦!
先来看看运行效果截图:
在线演示地址如下:
具体代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>先显示大图随后自动收起显示小图的JS广告</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <style type="text/css"> html,body{margin:0;text-align:center;font-size:12px;} img{border:none} p{margin:0px} </style> <script type="text/javascript"> var showAD = { curve: function(t, b, c, d, s) { if ((t /= d / 2) < 1) return c / 2 * t * t * t + b; return c / 2 * ((t -= 2) * t * t + 2) + b }, fx: function(from, to, playTime, onEnd) { var Me = this, who = this.adWrap, position = 0, changeVal = to - from, curve = this.curve; playTime = playTime / 10; who.style.overflow = 'hidden'; function _run() { if (position++<playTime) { who.style.height = Math.max(1, Math.abs(Math.ceil(curve(position, from, changeVal, playTime)))) + "px"; setTimeout(_run, 10) } else { onEnd && onEnd.call(Me, to) } }; _run() }, init: function(info) { var Me = this, loadImg = new Image; loadImg.src = info.endImgURL; window.onload=function() { Me.endImgURL = info.endImgURL; Me.img = document.getElementById(info.imgID); Me.adWrap = document.getElementById(info.adWrapID); var max = Me.img.height; setTimeout(function() { Me.fx(max, 0, 500, function(x) { this.img.src = this.endImgURL; this.curve = function(t, b, c, d) { if ((t /= d) < (1 / 2.75)) { return c * (7.5625 * t * t) + b } else if (t < (2 / 2.75)) { return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b } else if (t < (2.5 / 2.75)) { return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b } else { return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b } }; this.fx(0, this.img.height,600) }) }, info.timeout || 1000) }; } }; showAD.init({ adWrapID: 'ad_box_2009_06', imgID: 'adImg', endImgURL: 'images/as.jpg' }); </script> </head> <body> <div><img src="https://www.jb51.net/images/ab.jpg"></div> </body> </html>