最近一個網頁的案子須要用到浮動廣告視窗,說到浮動廣告視窗就一定會連想到用Javascript來寫就對了,大約寫個四五十行的程式碼就Ok了有啥好講的,是沒啥好說的!所以今天我要說的是利用CSS 做到像Javascript寫的浮動廣告視窗一樣的東西,至少可以少寫很多的程式碼。首先看一下javascript的寫法。

浮動廣告視窗 for Javascript

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type">
<title>浮動圖層範例</title>
</head>

<body>

<table>
<tr>
<td width="100%" height="2000px">
</td>
</tr>
</table>

<div id="iRFloating" style="position:absolute;top:100;left:1000;">
<table>
<tr>
<td valign="top">
<a href="
http://www.microsoft.com/taiwan/events/teched2008/default.aspx"><img src="http://www.microsoft.com/taiwan/msdn/image/technet.gif" border="0" /></a>
</td>
</tr>
</table>
</div>

</body>
</html>
<script>

adWidth = 160;//廣告寬度

nowX = 1000;//目前位置(left)
nowY = 100;//目前位置(top)

fad_style = document.getElementById('iRFloating').style;

function fadIni()
{
innerWidth = document.body.clientWidth;
innerHeight = document.body.clientHeight;

edge = (innerWidth-1000)/2;

if( edge > adWidth )
{
posX = edge + 1000;
}
else
{
posX = innerWidth-adWidth;
}

posY = 100;

}
function fadRefresh()
{
offsetX = posX + document.body.scrollLeft - nowX;
offsetY = posY + document.body.scrollTop - nowY;
nowX += offsetX / 5;
nowY += offsetY / 5;
fad_style.left = nowX;
fad_style.top = nowY;

floatID = setTimeout('fadRefresh()', 20 );//Refresh時間
}

function fadStart()
{
fadIni();
window.onresize=fadIni;
fadRefresh();
}

fadStart();

</script>

以上是浮動廣告視窗的javascript寫法,不過在asp.net裏頭不能用,因為在Visualstudio 2005的聲明是

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

而不是Visualstudio2003的

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

Visualstudio2005中默認的DOCTYPE聲明根本就不觸發onscroll事件,決解的方法就是用visual studio2003的聲日,不然就用CSS啦!下面是CSS的浮動廣告視窗寫法

浮動廣告視窗 for CSS

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<style type="text/css">
body {
margin:0; /* 必須 */
border:0;
height:100%; /* 必須 */
overflow-y:auto;/* 必須 */
}
#menu {display:block; top:10px; left:150px; width:130px; position:fixed;} /* IE並不認識fixed,而FF認識 */
* html #menu {position:absolute;} /* 這個只有IE認識 */

</style>
<!--[if IE 6]>
<style type="text/css">
/*<![CDATA[*/
html {overflow-x:auto; overflow-y:hidden;}
/*]]>*/
</style>
<![endif]-->
</head>

<body>
<div>
<ul style="list-style-type:decimal">
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
<ul>
</div>
<div id="menu">
<img src="http://images.cnblogs.com/cnblogs_com/goodspeed/795/o_o_mylogo.gif" />
</div>
</body>
</html>

 

 20110517_8dcef921eb4c8469885eVvmsZt2W3a7s.jpg  

arrow
arrow
    全站熱搜

    is90057 發表在 痞客邦 留言(0) 人氣()