現在、多くの Web サイト広告が本格化しています。ここで、一般的なカプレット フローティング広告エフェクトのコードの使用方法を紹介します。紹介したエフェクトは、通常の解像度 1024*768 で表示できますが、解像度 800*600 でも表示できます。ページをブロックしたり、訪問者の閲覧コンテンツに影響を与えたりしないように、自動的に非表示にします。この効果を実現するために必要なコードは次のとおりです。
バルデルタ=0.015
var コレクション;
関数フローター() {
this.items = [];
this.addItem = function(id,x,y,content)
{
document.write('<DIV id='+id+' style="Z-INDEX: 0; POSITION: 絶対; width:80px; height:60px;left:'+(typeof(x)=='string'?eval (x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');
var newItem = {};
newItem.object = document.getElementById(id);
newItem.x = x;
newItem.y = y;
this.items[this.items.length] = newItem;
}
this.play = function()
{
コレクション = this.items
setInterval('play()',10);
}
}
関数play()
{
if(screen.width<=800)
{
for(var i=0;i<collection.length;i++)
{
collection[i].object.style.display = 'none';
}
戻る;
}
for(var i=0;i<collection.length;i++)
{
var followObj = コレクション[i].object;
var followObj_x = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);
var followObj_y = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);
if(followObj.offsetLeft!=(document.body.scrollLeft) +followObj_x)) {
var dx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*デルタ;
dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
followObj.style.left=followObj.offsetLeft+dx;
if(followObj.offsetTop!=(document.body.scrollTop+followObj_y))
{
var dy=(document.body.scrollTop+followObj_y-followObj.offsetTop)*デルタ;
dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
followObj.style.top=followObj.offsetTop+dy;
}
followObj.style.display = '';
}
}
var theFloaters = 新しい floaters();
theFloaters.addItem('followDiv1','document.body.clientWidth-100',0,'</a><br><a href=広告リンク アドレス target=_blank><img src=広告画像アドレス width=100 height =400 ボーダー=0></a>');
theFloaters.addItem('followDiv2',0,0,'<br><a href=広告リンク アドレス target=_blank><img src=広告画像アドレス width=100 height=400 border=0></a>') ;
theFloaters.play();
上記のコードを JS ファイルとして保存し、この効果を実現したいページでそれを呼び出します。広告画像アドレスやリンクアドレスの変更にはご注意ください。
[マウスセンシング]
前のコードとは異なり、マウスが広告画像の上に移動すると、追加で設定された広告の大きな画像エフェクトを感知して表示できます。効果を実現するために必要なコードは次のとおりです。
関数 bigshow(){
document.all.div_250.style.visibility = '可視';
document.all.div_80.style.visibility = 'hidden';
}
関数 bighide(){
document.all.div_80.style.visibility = '可視';
document.all.div_250.style.visibility = 'hidden';
var
ad_80= 新しい配列(1);
var ad_250= 新しい配列(1);
ad_80[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad.gif border=0> </a>";
ad_250[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad2.gif border=0></a>"
;
var fubioleft;
window.screen.width>800 ? fubioleft=15:fubioleft=15
document.write('<DIV id=floater_left style="Z-INDEX: 25; LEFT:'+fubioleft+'px; WIDTH: 28px;POSITION: 絶対; TOP: 42px; HEIGHT: 22px">');
ad_now = new Date();
ad_id= ad_now.getSeconds() %1
var adhead1="<div id=div_80 style='position:absolute; width:95px; height:62px; z-index:12' onMouseOver=bigshow();>";
var adhead2="</div><div id=div_250 style='position:absolute; 可視性: hidden; z-index:13;width: 80; height: 60' onMouseOut=bighide();>"
; adhead1="<div id=div_80 style='position:absolute; width:95px; height:62px; z-index:20' onMouseOut='//MM_showHideLayers("div_250","","hide) ")' onMouseOver='MM_showHideLayers("div_250","","show")'>";
//var adhead2="</div><div id=div_250 style='position:absolute; z-index:21;visibility: hidden; width: 80; height: 60' onMouseOver='MM_showHideLayers("div_250") ,"","show")' onMouseOut='MM_showHideLayers("div_250","","hide")'>";
document.write(adhead1+ad_80[ad_id]+ adhead2+ad_250[ad_id]+"</div>");
document.write ("</div>");
self.onError=null;
現在のX = 現在のY = 0;
どれ = null;
lastScrollX = 0; lastScrollY = 0;
NS = (ドキュメント.レイヤー) 1:0;
IE = (ドキュメント.すべて) ? 1: 0;
関数ハートビート() {
if(IE) {
diffY = document.body.scrollTop;
diffX = ドキュメント.ボディ.スクロール左;
if(NS) {
diffY = self.pageYOffset; diffX = self.pageXOffset;
if(diffY != lastScrollY) {
パーセント = .5 * (diffY - lastScrollY);
if(パーセント > 0) パーセント = Math.ceil(パーセント);
else パーセント = Math.floor(パーセント);
if(IE) document.all.floater_left.style.pixelTop += パーセント;
if(NS) document.floater_left.top += パーセント;
lastScrollY = lastScrollY + パーセント;
}
if(diffX != lastScrollX) {
パーセント = .5 * (diffX - lastScrollX);
if(パーセント > 0) パーセント = Math.ceil(パーセント);
else パーセント = Math.floor(パーセント);
if(IE) document.all.floater_left.style.pixelLeft += パーセント;
if(NS) document.floater_left.left += パーセント;
lastScrollX = lastScrollX + パーセント;
}
if
(NS || IE) action = window.setInterval("heartBeat()",1);var ad_80= new Array(1);
var ad_250= 新しい配列
ad_80[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad.jpg border=0> </a>";
ad_250[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad.jpg border=0></a>"
;
var fubioleft;
window.screen.width>800 ? fubioleft=15:fubioleft=15
document.write('<DIV id=floater_right style="Z-INDEX: 25; LEFT:'+fubioleft+'px; WIDTH: 28px;POSITION: 絶対; TOP: 42px; HEIGHT: 22px">');
ad_now = new Date();
ad_id= ad_now.getSeconds() %1
関数 myload()
{
if (navigator.appName == "Netscape")
{
document.div_right_80.pageX=+window.innerWidth-130;
document.div_right_250.pageX=+window.innerWidth-300;
mymove();
}
それ以外
{
div_right_80.style.left=document.body.offsetWidth-130;
div_right_250.style.left=document.body.offsetWidth-300;
mymove();
}
関数
mymove()
{
if(ドキュメント.ns)
{
document.div_right_80.left=pageXOffset+window.innerWidth-130;
document.div_right_250.left=pageXOffset+window.innerWidth-300;
setTimeout("mymove();",20)
}
それ以外
{
div_right_80.style.left=document.body.scrollLeft+document.body.offsetWidth-145;
div_right_250.style.left=document.body.scrollLeft+document.body.offsetWidth-300;
setTimeout("mymove();",20)
}
}
var adhead1="<div id=div_right_80 style='position:absolute; width:95px; height:60px; z-index:12' onMouseOver=bigshow_right();>";
var adhead2="</div><div id=div_right_250 style='position:absolute; 可視性: 非表示; z-index:13;width: 250; height: 250' onMouseOut=bighide_right();><div align=right >";
document.write(adhead1+ad_80[ad_id]+adhead2+ad_250[ad_id]+"</div></div>");
myload()
document.write ("</div>");
self.onError=null;
currentX_right = currentY_right = 0;
whatIt_right = null;
lastScrollX_right = 0; lastScrollY_right = 0;
NS = (ドキュメント.レイヤー) 1:0;
IE = (ドキュメント.すべて) ? 1: 0;
関数 heartBeat_right() {
if(IE) {
diffY_right = document.body.scrollTop;
diffX_right = document.body.scrollLeft;
if(NS) {
diffY_right = self.pageYOffset; diffX_right = self.pageXOffset;
if(diffY_right != lastScrollY_right) {
パーセント右 = .5 * (diffY_right - lastScrollY_right);
if(percent_right > 0) パーセント右 = Math.ceil(パーセントライト);
それ以外の場合、percent_right = Math.floor(percent_right);
if(IE) document.all.floater_right.style.pixelTop +=percent_right;
if(NS) document.floater_right.top +=percent_right;
lastScrollY_right = lastScrollY_right +percent_right;
}
if(diffX_right != lastScrollX_right) {
パーセント右 = .5 * (diffX_right - lastScrollX_right);
if(percent_right > 0) パーセント右 = Math.ceil(パーセントライト);
それ以外の場合、percent_right = Math.floor(percent_right);
if(IE) document.all.floater_right.style.pixelLeft +=percent_right;
if(NS) document.floater_right.left +=percent_right;
lastScrollX_right = lastScrollX_right +percent_right;
}
if
(NS || IE) アクション = window.setInterval("heartBeat_right()",1);
関数 bigshow_right(){
document.all.div_right_250.style.visibility = '可視';
document.all.div_right_80.style.visibility = 'hidden';
}
関数 bighide_right(){
document.all.div_right_80.style.visibility = '可視';
document.all.div_right_250.style.visibility = 'hidden';
}document.write('');
document.write('');
document.write('');
上記のコードを JS ファイルとして保存し、この効果を実現したいページでそれを使用します。
<script type="text/javascript" language="javascript1.2" src="*.js"></SCRIPT>
それを呼び出すだけです。 * は保存したファイル名を表します。広告画像アドレスやリンクアドレスの変更にはご注意ください。
前の 2 つのコードとは異なり、画像ボタンが広告画像の下に追加され、訪問者がクリックして広告画像を閉じることができるようになります。次のテキスト ボックスは、効果を実現するために必要なコードです。
var デルタ=0.015;
var コレクション;
var closeB=false;
関数フローター() {
this.items = [];
this.addItem = function(id,x,y,content)
{
document.write('<DIV id='+id+' style="Z-INDEX: 10; POSITION: 絶対; width:80px; height:60px;left:'+(typeof(x)=='string'?eval (x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');
var newItem = {};
newItem.object = document.getElementById(id);
newItem.x = x;
newItem.y = y;
this.items[this.items.length] = newItem;
}
this.play = function()
{
コレクション = this.items
setInterval('play()',30);
}
}
関数play()
{
if(screen.width<=800 || closeB)
{
for(var i=0;i<collection.length;i++)
{
collection[i].object.style.display = 'none';
}
戻る;
}
for(var i=0;i<collection.length;i++)
{
var followObj = コレクション[i].object;
var followObj_x = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);
var followObj_y = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);
if(followObj.offsetLeft!=(document.body.scrollLeft) +followObj_x)) {
var dx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*デルタ;
dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
followObj.style.left=followObj.offsetLeft+dx;
if(followObj.offsetTop!=(document.body.scrollTop+followObj_y))
{
var dy=(document.body.scrollTop+followObj_y-followObj.offsetTop)*デルタ;
dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
followObj.style.top=followObj.offsetTop+dy;
}
followObj.style.display = '';
}
}
関数 closeBanner()
{
閉じるB=true;
戻る;
var
theFloaters = 新しい floaters();
//
theFloaters.addItem('followDiv1','document.body.clientWidth-100',0,'<a onClick="closeBanner();" href=http://www.dfeng.net target=_blank><img src= ad/doublead/right.gif width=100 height=554 border=0></a><br><br><img src=ad/doublead/close.gif onClick="closeBanner();">');
theFloaters.addItem('followDiv2',0,0,'<a onClick="closeBanner();" href=http://www.dfeng.net target=_blank><img src=ad/doublead/ad_ad.gif width =100 高さ=400 境界=0 ></a><br><br><img src=ad/doublead/close.gif onClick="closeBanner();">');
theFloaters.play();
上記のコードを JS ファイルとして保存し、この効果を実現したいページで呼び出します。 * は保存したファイル名を表します。広告画像アドレスやリンクアドレスの変更にはご注意ください。
フローティングカプレット広告 --- 左側のコード
片側のみを表示したい場合、左側の効果を実現するために必要なコードは次のとおりです。
var ad_float_left_src = "画像アドレス";
var ad_float_left_url="アドレス";
var ad_float_left_type = "";
document.ns = navigator.appName == "Microsoft Internet Explorer"
var imgheight_close
var imgleft
window.screen.width>800? imgheight_close=120:imgheight_close=120
window.screen.width>800? imgleft=8:imgleft=122
関数 myload()
{
myleft.style.top=document.body.scrollTop+document.body.offsetHeigh
t-imgheight_close;
myleft.style.left=imgleft;
leftmove();
}
関数 leftmove()
{
myleft.style.top=document.body.scrollTop+document.body.offsetHeigh
t-imgheight_close;
myleft.style.left=imgleft;
setTimeout("leftmove();",50)
}
function MM_reloadPage(init) { //Nav4 の場合はウィンドウをリロードします
サイズ変更された
if (init==true) with (navigator) {if ((appName=="Netscape")&&
(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight;
onresize=MM_reloadPage }}
else if (innerWidth!=document.MM_pgW || innerHeight!
=document.MM_pgH) location.reload();
}
MM_reloadPage(true)
関数 close_float_left(){
myleft.style.visibility='hidden';
"
<div id=myleft style='position:
絶対;幅:80;上:300;左:5;可視性:可視;Z インデックス:1'>"
+"<スタイル>"
+"A.closefloat:link,A.refloat:visited {text-
装飾:なし;カラー:#000000;フォントサイズ:12px}"
+"A.closefloat:active,A.refloat:hover {text-decoration:underline;color:#0000FF;font-size:12px}"
+"</style>"
+"<table border=0 cellpadding=0 cellpacing=0><tr><td>");
if(document.ns){
if(ad_float_left_type!="swf")
document.write("<a href='" + ad_float_left_url + "' target
= '_blank'><img src='" + ad_float_left_src + "' WIDTH=88
高さ=31 ボーダー=0></a>");
それ以外
document.write("<EMBED src='" + ad_float_left_src + "'
品質=高 WIDTH=80 HEIGHT=80 TYPE='application/x-shockwave-
flash' id=changhongout ></EMBED>");
document.write("</td></tr><tr><td width=80 height=20
align=right><a href='javascript:close_float_left();void(0);'
class=closefloat><b><font color=#ff0000>閉じる</font></b></a></td></tr>"
+"</テーブル>"
+"</div>")
;
上記のコードを *.JS ファイルとして保存し、この効果を実現したいページでそれを使用します。
<script src="*.js"></SCRIPT>
それを呼び出すだけです。 * は保存したファイル名を表します。広告画像アドレスやリンクアドレスの変更にはご注意ください。ページに応じて対応するパラメータを調整できます。