この記事の例では、最初に大きな画像を表示し、次に自動的に小さな画像を折りたたんで表示する広告コードの JS 実装について説明します。皆さんの参考に共有してください。詳細は以下の通りです。
これは非常に優れた JavaScript 画像効果です。Web ページを最初に開くと、画面をブロックする広告のように大きな画像が表示されます。しばらくすると、自動的にゆっくりと閉じられます。広告は JS によって制御されており、大きなポータルではこの効果が常に Web ページの上部に表示されることがよくあります。個人的には非常に素晴らしいと思います。
ランニングエフェクトのスクリーンショットを見てみましょう:
オンライン デモのアドレスは次のとおりです:
http://demo.jb51.net/js/2015/js-big-to-small-pic-adv-codes/
具体的なコードは次のとおりです:
<!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 id="ad_box_2009_06"><img src="images/ab.jpg" id="adImg"></div> </body> </html>
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。