이 기사의 예에서는 먼저 큰 이미지를 표시한 다음 자동으로 축소하여 작은 이미지를 표시하는 광고 코드의 JS 구현을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
이것은 아주 좋은 JavaScript 이미지 효과입니다. 웹 페이지가 처음 열리면 화면을 차단하는 광고처럼 큰 이미지가 표시되고 잠시 후에 자동으로 닫힙니다. 광고는 JS에 의해 제어됩니다. 사진은 항상 웹 페이지 상단에 표시됩니다. 일부 대형 포털에서는 이러한 효과를 자주 볼 수 있습니다. 개인적으로 꽤 멋지다고 생각합니다.
런닝 효과의 스크린샷을 살펴보겠습니다.
온라인 데모 주소는 다음과 같습니다.
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 프로그래밍 설계에 도움이 되기를 바랍니다.