Quantcast
Channel: 神魂顛倒論壇-Flash--Front-end網頁前端討論最新50篇論壇主題-全文
Viewing all 735 articles
Browse latest View live

javascript 垂直輪播(跑馬燈、vertical carousel)

$
0
0

javascript 垂直輪播(跑馬燈、vertical carousel)

這邊使用一個別於<marquee>的用法

這是在網路上找到的
(很抱歉我忘記出處了 如果有人知道的話請告訴我 謝謝)
然後小小改了一點
主要是利用overflow跟scrollTop這兩個屬性
overflow:hidden的意思就是
當內容超過長度或寬度的時候
不顯示滾動條
而是直接隱藏超過的部份
scrollTop則是目前滾動條與最上面的距離
首先設定一個style(也可以直接放在標籤裡)

以下為《CSS》原始碼

.ann{overflow:hidden;height:20px;}


這是html的部份
包在外面的div高度跟裡面個別的div高度設定成一樣
這樣一次可以顯示一個

以下為《HTML》原始碼
<div id="ann_box" class="ann" style="width:100px;"> 
<div id="a1" class="ann"><a href="exp01.php" >exp01</a></div>
<div id="a2" class="ann"><a href="exp02.php" >exp02</a></div>
<div id="a3" class="ann"><a href="exp03.php" >exp03</a></div>
<div id="a4" class="ann"><a href="exp04.php" >exp04</a></div>
<div id="a5" class="ann"><a href="exp05.php" >exp05</a></div>
</div>


javascript的部份

以下為《JS》原始碼

function slideLine(box,stf,delay,speed,h) 
{
//取得id
var slideBox = document.getElementById(box);
//預設值 delay:幾毫秒滾動一次(1000毫秒=1秒)
// speed:數字越小越快,h:高度
var delay = delay||1000,speed = speed||20,h = h||20;
var tid = null,pause = false;
//setInterval跟setTimeout的用法可以咕狗研究一下~
var s = function(){tid=setInterval(slide, speed);}
//主要動作的地方
var slide = function(){
//當滑鼠移到上面的時候就會暫停
if(pause) return;
//滾動條往下滾動 數字越大會越快但是看起來越不連貫,所以這邊用1
slideBox.scrollTop += 1;
//滾動到一個高度(h)的時候就停止
if(slideBox.scrollTop%h == 0){
//跟setInterval搭配使用的
clearInterval(tid);
//將剛剛滾動上去的前一項加回到整列的最後一項
slideBox.appendChild(slideBox.getElementsByTagName(stf)[0]);
//再重設滾動條到最上面
slideBox.scrollTop = 0;
//延遲多久再執行一次
setTimeout(s, delay);
}
}
//滑鼠移上去會暫停 移走會繼續動
slideBox.onmouseover=function(){pause=true;}
slideBox.onmouseout=function(){pause=false;}
//起始的地方,沒有這個就不會動囉
setTimeout(s, delay);
}
//網頁load完會執行一次
//五個屬性各別是:外面div的id名稱、包在裡面的標籤類型
//延遲毫秒數、速度、高度
slideLine('ann_box','div',2000,25,20);


按這裡可以看範例

不過如果原本有使用framework如prototype或是jquery的
可以直接找他們的plugin來使用(怎麼最後才講XD)
這裡的用法是
當如果這網頁沒有要load哪個framework的時候
但是又想要有個輪播功能
就可以節省load的時間囉
是不是~

注意:scrollTop、scrollLeft有些瀏覽器不支援(不過ie跟fx都有)


Javascript隨機圖片輪播

$
0
0
隨機圖片輪播

來源:http://blog.xuite.net/abgne/diary1/3900476

上次教了隨機廣告播放後,現在要教的是另一種型的廣告播放,叫做輪播。什麼是輪播?顧名思義就是輪流播放,在不重整頁面下一直播放各種不同的圖片,這就是輪播。


輪播的原理其實跟隨機播放差不多,只是多用了個setInterval()函式而已。


讓我們來看要怎樣才能做到這樣的效果吧。接下來所用的範例是隨機廣告播放中的第二個範例。

以下為《JS》原始碼
<script type="text/javascript"> 
<!--
var myImg = new Array("m01.gif","m02.gif","m03.gif","m04.gif","m05.gif");
function showImg(){
//乘以陣列的長度以取得從0~(陣列長度-1)的數字
var imgIndex = Math.floor(Math.random()*myImg.length);
document.getElementById("my_div").innerHTML = "<img src='"+myImg[imgIndex]+"'>";
}
//設定每兩秒執行一次showImg()
setInterval("showImg()",2000);
//-->
</script>


在JavaScript的部份,我只是把myImg陣列中的圖片換成比較可愛的男生圖,在showImg()函式中一樣沒做任何改變。


這邊要注意的是我用了setInterval("showImg()",2000);這個就是本次要教的重點。

setInterval()函式需要帶入兩個參數,第一個是所要執行的函式,第二個是每隔幾毫秒要執行一次。所以這邊我們是設成每隔2000毫秒(2秒)就執行一次showImg()函式,醬就能做到N張圖片隨機輪播了。

有人問說:如何做到在N張圖片中選出M張來做隨機的輪播呢?


我們拿剛剛的範例來修改一下就能做到醬的效果了,在Body部份一樣是不用做修改,所以直接來看JavaScript吧!

以下為《JS》原始碼
<script type="text/javascript"> 
<!--
//共有幾張圖
var myImg = new Array("m01.gif","m02.gif","m03.gif","m04.gif","m05.gif");
//要取幾張來播放
var playImg = new Array(3);
//目前播放到第幾張
var nowIndex=0;
//從allImg中取出N張放到myImg裡面
for(var i=0;i<playImg.length;i++){
playImg[i] = myImg[Math.ceil(Math.random()*myImg.length-1)];
}

function showImg(){
document.getElementById("my_div").innerHTML = "<img src="+playImg[nowIndex]+">";
//若nowIndex+1後>=playImg的長度,nowIndex重0開始;否則加1
nowIndex = (nowIndex+1)>= playImg.length?0:nowIndex+1;

}
//設定每2秒執行一次showImg()
setInterval("showImg()",2000);
//-->
</script>


我多宣告了一個長度為3的playImg()陣列來存放選出來後的圖片,用nowIndex來紀錄目前是播放到playImg()陣列中的第幾個位置,接下來就是用for迴圈來從myImg()陣列中隨機選3張圖放到playImg()陣列中。到這裡應該都還不難理解吧。

因為要控制圖片能從第一張、第二張...醬子播放到最後一張時,能繼續回到第一張的循環播放,所以在指定nowIndex時要判斷nowIndex+1後是否大於等於playImg()陣列的長度。

不過若多重整幾次上面的範例時,不知道您有沒有發現到圖片並沒有變化,正確的說法應該是圖片重覆,所以看起來會覺得沒變化。會醬子是因為我們在從myImg()陣列中取圖放到playImg()陣列時,我們並沒有判斷圖片是否已經存在playImg()陣列中了,所以才會發生圖片有重覆的情況。

讓我們來修改一下Code做個重覆的檢驗吧

以下為《JS》原始碼
//從allImg中取出N張放到myImg裡面 
for(var i=0;i<playImg.length;i++){
playImg[i] = myImg[Math.ceil(Math.random()*myImg.length-1)];
for(var j=0;j<i;j++){
if(playImg[j]==playImg[i]) i--;
}
}


重覆的判斷只要寫在for迴圈中就行了,多個迴圈來把剛從myImg()陣列中取出的圖片跟playImg()陣列中的做比較。醬子改過就能做到N張取M張來輪播且圖片不會重覆囉。

範例瀏覽:

http://abgne.myweb.hinet.net/0005/0005_1.html

http://abgne.myweb.hinet.net/0005/0005_2.html

http://abgne.myweb.hinet.net/0005/0005_3.html

http://abgne.myweb.hinet.net/0005/0005_4.html

Javascript隨機廣告播放

$
0
0
Javascript隨機廣告播放

來源:男丁格爾

各位應該會發現上某些網站時,每次進去看到的廣告都不一樣,且點下去連到的網站也不同,其實這算是蠻常見的隨機廣告。今天要來介紹三種單一圖片的隨機圖片顯示效果。

這三種差異的地方只是在JavaScript裡面的function有點小不同,在HTML的部份其實都是一樣的,下面先來看在Body的部份:

以下為《HTML》原始碼
<body > 
<div id="my_div"></div>
</body>


在onLoad時呼叫了showImg()這個函式,我會把圖片給放到Div裡面。在介紹這三種效果時,Body這部份都是相同的喔。


先說一下等等要顯示的圖片,這邊我準備了五張大小一樣的圖片,依序命名為banner0.gif、banner1.gif、banner2.gif、banner3.gif、banner4.gif。


OK,讓我們來一一來看這三種效果的showImg()函式吧。


第一種:

以下為《JS》原始碼
<script type="text/javascript"> 
<!--
function showImg(){
//要取0~4,所以要乘以5
var imgNo = Math.floor(Math.random()*5);
document.getElementById("my_div").innerHTML = "<img src='banner"+imgNo+".gif'>";
}
//-->
</script>


最常見的方法就是用亂數來選出要顯示的圖片,因為是數字嘛~所以在圖片檔名的部份最好是要帶有規則的數字,但是要小心的是,在JavaScript中用Math.random()函式所產生出來的亂數是介於0~1之間的數字,但是我們的圖片是從0~4,所以要再乘以5才行,最後再用Math.round()函式或是Math.floor()函式來取得整數即可。

接著在my_div中放入img的標籤且把src指定為圖片的名稱加上亂數產生出來的數字,醬就能做出第一種的的效果了。


第二種:

以下為《JS》原始碼
<script type="text/javascript"> 
<!--
//宣告圖片陣列
var myImg = new Array("banner0.gif","banner1.gif","banner2.gif","banner3.gif","banner4.gif");

function showImg(){
//乘以陣列的長度以取得從0~(陣列長度-1)的數字
var imgIndex = Math.floor(Math.random()*myImg.length);
document.getElementById("my_div").innerHTML = "<img src='"+myImg[imgIndex]+"'>";
}
//-->
</script>


其實做法跟第一種是一樣的,只是這邊我用了myImg陣列來存放所要顯示的圖片檔名,醬子在圖片的命名上,就可以不用像第一種一樣要有順序規則。


第三種:

以下為《JS》原始碼
<script type="text/javascript"> 
<!--
//宣告圖片陣列 [圖片檔名,連結網址]
var myImg = new Array(["banner0.gif","blog.xuite.net/abgne/diary1"],["banner1.gif","blog.xuite.net/abgne/diary1"],["banner2.gif","blog.xuite.net/abgne/diary1"],["banner3.gif","blog.xuite.net/abgne/diary1"],["banner4.gif","blog.xuite.net/abgne/diary1"]);

function showImg(){
//乘以陣列的長度以取得從0~(陣列長度-1)的數字
var imgIndex = Math.floor(Math.random()*myImg.length);
document.getElementById("my_div").innerHTML = "<A HREF='http://"+myImg[imgIndex][1]+"'><img src='"+myImg[imgIndex][0]+"' border='0'></A>";
}
//-->
</script>


這一種就是一開始說的,廣告圖片不同且點下去後能連結到各自的網站去。做法跟第二種類似,只是這次用的是二維陣列來存放圖片檔名及所要連結的網址,陣列的用法應該不用我再教了吧。

範例瀏覽:

http://abgne.myweb.hinet.net/0003/0003_1.html

http://abgne.myweb.hinet.net/0003/0003_2.html

http://abgne.myweb.hinet.net/0003/0003_3.html

瀏覽範例時可以多重整幾次來看變化喔。

JavaScript狀態列輪播跑馬燈

$
0
0
JavaScript狀態列輪播跑馬燈

請在<BODY>標籤中加入下列程式碼

以下為《HTML》原始碼
			


請將以下程式碼複製至您的<BODY>與</BODY>之間


以下為《JS》原始碼
<!-------JavaScript狀態列輪播跑馬燈 START--------> 
<script language="JavaScript">
<!--
var speed = 10
var pause = 2000
var timerID = null
var bannerRunning = false
var ar = new Array()
ar[0] = " 這是狀態列輪播跑馬燈示範"
ar[1] = " 使用方式如下:"
ar[2] = " 將以下程式碼複製至您的<body>與</body>之間即可"
ar[3] = " 在<body>標籤中加入下列程式碼"
var message = 0
var state = ""
clearState()
function stopBanner()
{
if (bannerRunning)
clearTimeout(timerID)
bannerRunning = false
}
function startBanner()
{
stopBanner()
showBanner()
}
function clearState()
{
state = ""
for (var i = 0; i < ar[message].length; ++i)
{
state += "0"
}
}
function showBanner()
{
if (getString())
{
message++
if (ar.length <= message)
message = 0
clearState()
timerID = setTimeout("showBanner()", pause)
bannerRunning = true
}
else
{
var str = ""
for (var j = 0; j < state.length; ++j)
{
str += (state.charAt(j) == "1") ? ar[message].charAt(j) : ""
}
window.status = str
timerID = setTimeout("showBanner()", speed)
bannerRunning = true
}
}
function getString()
{
var full = true
for (var j = 0; j < state.length; ++j)
{
if (state.charAt(j) == 0)
full = false
}
if (full)
return true
while (1)
{
var num = getRandom(ar[message].length)
if (state.charAt(num) == "0")
break
}
state = state.substring(0, num) + "1" + state.substring(num + 1, state.length)
return false
}
function getRandom(max)
{
return Math.round((max - 1) * Math.random())
}
// -->
</script>
<!-------JavaScript狀態列輪播跑馬燈 END-------->

Javascript圖片輪播

$
0
0
Javascript圖片輪播

貼在<head>--</head>

以下為《JS》原始碼
<script type="text/javascript">  
/*
置換網頁的輪播圖片
使用的網頁須建立一個image
<img id="pimg" src="http://s.blog.xuite.net/_image/emotion/hastart/m167.gif" height="200px" width="200px">
*/
var t,t1,t2; //時間物件

var classpic=new Array();
var imgsrc=new Array();
var i=1;
/*****編輯敘述開始****/
/*順序由 1.jpg 開始....*/
imgsrc[i]="http://s.blog.xuite.net/_image/emotion/hastart/m155.gif";classpic[i]="文字一";i++;
imgsrc[i]="http://s.blog.xuite.net/_image/emotion/hastart/m156.gif";classpic[i]="文字2";i++;
imgsrc[i]="http://s.blog.xuite.net/_image/emotion/hastart/m157.gif";classpic[i]="文字3";i++;
imgsrc[i]="http://s.blog.xuite.net/_image/emotion/hastart/m158.gif";classpic[i]="文字4";i++;
imgsrc[i]=


"http://s.blog.xuite.net/_image/emotion/hastart/m159.gif";classpic[i]="文字5";i++;

//****編輯敘述結束****/
var indexstar=1;
var indexMax=classpic.length-1;
var index=Math.round(Math.random()*indexMax)+indexstar;

var imgpath="../news/imgs/";

function cc()
{
if(index>indexMax)
{
index=1;
}
var pimg=document.getElementById("pimg");

var RevealTrans_index=Math.round(Math.random()*23)+1;
pimg.style.filter="RevealTrans(duration=1,transition="+RevealTrans_index+")";

pimg.filters.RevealTrans.Apply();

//pimg.src=imgpath+index+".jpg";
pimg.src=imgsrc[index];


var div1=document.getElementById("div1");
div1.innerHTML=classpic[index];
index++;
pimg.filters.RevealTrans.play();

}
function gogo()
{
t=setInterval('cc()',2000);//輪播時間 1000等於1秒
}
gogo();
//clearTimeout(t);
</script>


貼在<body>--</body>

以下為《XML》原始碼
<p>  
<img id="pimg" alt="" width="100" height="100" src="http://s.blog.xuite.net/_image/emotion/hastart/m155.gif" />
</p>
<div style="width: 100px; height: 100px" id="div1">ya</div>

自動輪播的訊息頁籤

$
0
0
自動輪播的訊息頁籤


圖片:自動輪播頁籤 ie 與 mozilla 通用.png


可修改項目

1.CSS
 ←這行可有可無,不影響程式執行
.MsgHide {height:174px;border:1px solid #aaa;padding:10px;font:normal 12px 細明體;display:none}

2.HTML ( 以下為完整頁籤架構 )
<tr>
<td><img name="Tag_COMM" class="ImgTab" src="Tab_Img10.gif" ></td>
<td><img name="Tag_COMM" class="ImgTab" src="Tab_Img20.gif" ></td>
<td><img name="Tag_COMM" class="ImgTab" src="Tab_Img30.gif" ></td>
</tr>
<tr><td colspan="3">
<div id="Tag_IE" name="Tag_FF" class="MsgHide">
訊息內容...
</div>
<div id="Tag_IE" name="Tag_FF" class="MsgHide">
訊息內容...
</div>
<div id="Tag_IE" name="Tag_FF" class="MsgHide">
訊息內容...
</div>
</td></tr>
</table>

3.JavaScript ( 更改輪播速度,範例為3000毫秒 )
3000);

Javascript範例下載
 下載狀況  [檔案大小:   下載次數: ]
下載:tabrotator.rar

css+js截取圖片最大面積以保證圖片不變形

$
0
0
css+js截取圖片最大面積以保證圖片不變形

做網站時,把一個欄目的文章移到另一個欄目或文章列表原來定義的文章圖片可以會因為大小不一樣而變形。

可以把文章列表頁面裡的圖片顯示最大面積。 多於的部分就不顯示了。 這樣也是種最好的方法,不要不然每個文章都改一下圖片工作量太大

頁面上的DIV


以下為《HTML》原始碼
<div class=”show3img”><img src=”01.jpg” onload=” javascript :DrawImage(this,134,104);”/></div>


CSS部分:

以下為《CSS》原始碼
.show3img{ 
width:104px;
height:134px;
border:0;
overflow:hidden;

text-align:center;
}


Javascript部分:


以下為《JS》原始碼
<script language=” javascript ”> 
function DrawImage(ImgD,inputheight,inputwidth)
{
//取得圖片的寬度
ImgWidth=ImgD.width
//取得圖片的高度
ImgHeight=ImgD.height;

if(ImgWidth>0 && ImgHeight>0)
{

//flag=true;
if((ImgWidth/ImgHeight) >= (inputwidth/inputheight))
{

ImgD.height=inputheight;
ImgD.width=(ImgWidth*inputheight)/ImgHeight;

} else if((ImgWidth/ImgHeight) < (inputwidth/inputheight)){
ImgD.width=inputwidth;
ImgD.height=(ImgHeight*inputwidth)/ImgWidth;
}
}

}
</script>


這個方法是想在圖片載入後,用 來調用DrawImage方法,來等比例的調整圖片大小,使圖片的一面的長度與DIV相同,另一面比DIV的長或寬大(多去的部分不顯示),這樣來保證圖片不變形,又是顯示了最大的面積。

但這個方法不是個好的方法:onload事件,只是在頁面載入第一次才觸發,如果是再更新同一個頁面,圖片是從緩衝區裡載入的,不會觸發onload事件,所以對圖片的處理是無效的。

還沒找到更好的方法。

js實現仿163下拉廣告效果

$
0
0
js實現仿163下拉廣告效果

本JS用來實現像一些大門戶網站的上部加入一下下拉式的廣告. 整個頁面向下移動,幾秒後,整個頁面又上移,那個廣告消失,或只是剩餘一部分.

mouseoverShowImage函數用於滑鼠游標mouseover事件,如果不要,可以去掉.


以下為《HTML+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>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8〃 />
<title>仿163下拉廣效果</title>
<!–下拉廣告開始–>
<script type=”text/javascript”>
<!–
//http://www.love-google.org
var h = 100; //設置當前顯示高度
function loadImage(url,callback){
var img = new Image();
img.src = url;
if(img.complete){ //判斷圖片是否加載完成
callback.call(img);
return;
}
img.onload = function(){ //圖片加載
callback.call(img);
}
}
function imgLoaded(){
document.getElementById(“myImgs”).src = this.src; //獲得圖片地址
showImage(this.height); //圖片展開
}
function showImage(height){
if(h < height){
h = h + 5;
}else{
showImagetime1=setTimeout(“hideImage(“+height+”)”,3000); //圖片全部展開後,設置多少秒之後關閉圖片
return;
}
var div = document.getElementById(“xiala_guanggao”);
var img = document.getElementById(“myImgs”);
//alert(div);
div.style.display = “block”;
div.style.height = h + “px”;
showImagetime2=setTimeout(“showImage(“+height+”)”,30);
}
function hideImage(height){
//alert(height);
if(h > 100){
h = h – 5;
}else{
//var divs = document.getElementById(“xiala_guanggao”);
//divs.style.display = “none”; //圖片關閉後隱藏該層
//return;
}
var div = document.getElementById(“xiala_guanggao”);
var img = document.getElementById(“myImgs”);
div.style.display = “block”;
div.style.height = h + “px”;
hideImagetime=setTimeout(“hideImage(“+height+”)”,30);
}

function mouseoverShowImage(height){
clearTimeout(showImagetime2);
clearTimeout(showImagetime1);

clearTimeout(hideImagetime);
if(h < height){
h = h + 5;
}else{
showImagetime1=setTimeout(“hideImage(“+height+”)”,3000); //圖片全部展開後,設置多少秒之後關閉圖片
return;
}
var div = document.getElementById(“xiala_guanggao”);
var img = document.getElementById(“myImgs”);
//alert(div);
div.style.display = “block”;
div.style.height = h + “px”;
showImagetime2=setTimeout(“showImage(“+height+”)”,30);
}
//–>
</script>
<!–下拉廣告結束–>
</head>
<body style=”margin:0px;” onload=”loadImage('myImg.jpg',imgLoaded);”>
<div id=”xiala_guanggao” style=”display:none; overflow:hidden;” onmouseover=”mouseoverShowImage(297);”><img src=”" id=”myImgs” /></div>
<div>下拉廣告效果</div>
</body>
</html>

Javascript檢查字串是否是數字及去空格

$
0
0
Javascript檢查字串是否是數字及去空格

js判斷一個字元串是否都是由數字組成(如:0,12,1,63,055,010等是滿足條件的,但-1是不滿足的)

以下為《JS》原始碼
//判斷是數字 
function checkNumber(s){
var re = /^[0-9]*[1-9][0-9]*$/; // 參數說明re 為正則表達式s 為要判斷的字元
return (re.test(s) || s == 0);

}


以下幾個方法做為參考。

以下為《JS》原始碼
// 判斷是否是正整數 
function IsNum(s)
{
if (s != null ) {
var r,re;
re = / \d* / i; // \d表示數字,*表示匹配多個數字
r = s.match(re);
return (r == s) ? true : false ;
}
return false ;
}

// 判斷是否為數字
function IsNum(s)
{
if (s != null && s != “” )
{ return ! isNaN(s);
}
return false ;
}

function IsNum(s)
{ var num= /^[0-9]+.?[0-9]*$/; //判斷正整數/^[1-9]+[0-9]*]*$/

if(!num.test(s))
{
alert(“非數字!”);
return false;
}
return true;
}


兩種方法都可以檢查參數是否為數字。

第一種使用正則表達式檢查,對於檢查的內容更加靈活,同時也有不同的檢查方式和方法,但顯得麻煩;
第二種方法,直接調用系統的isNaN() ,對所有數字均有效,簡單快捷!

去空格的方法:

以下為《JS》原始碼
//去左空格; 
function ltrim(s){
return s.replace( /^[" "|" "]*/, 「」);
}
//去右空格;
function rtrim(s){
return s.replace( /[" "|" "]*$/, 「」);
}
//左右空格;
function trim(s){
return rtrim(ltrim(s));
}

解決mailto中body的換行問題

$
0
0
解決mailto中body的換行問題

常常有人製作 轉寄好友 功能時,會直接採用 啟動 Outlook 寄送郵件的方式

這時就要用到 mailto 連結語法

但若想要預設帶入 主旨 及 內容時,可以下此語法


<a href="mailto:aaa@bbb.com?subject=主旨&body=內文">連結</a>


如果想在BODY內進行換行,可不是用 \n 或 <br>

而是在行與行之間加入 "%0d%0a"



<a href="mailto:aaa@bbb.com?subject=ccc&body=xxx%0d%0ayyy">aaa</a>

javascript實現EMAIL推薦本頁功能

$
0
0
javascript實現EMAIL推薦本頁功能


<title>測試</title>
<body>
<script language="javascript">
function mailpage()
{
  mail_str = " mailto:xxxh@21cn.com?subject=推薦網頁 : " + document.title;
  mail_str += "&body=我向你推薦這個頁面,希望你喜歡!網頁標題:" + document.title;
  mail_str += "。請點擊查看: " + location.href; 
  location.href = mail_str;
}
</script>
<A HREF = "javascript:mailpage()">E-mail本頁</A>


電子郵件能讓訪問者方便地向網站提供反饋或聯繫信息。 

它可以自動填寫抄送和密件抄送,甚至能自動填充主題行。 下面介紹如何定制 Mailto功能。

實現 Mailto的基本html代碼:
<a href="mailto:stephen.zhaoyf@163.com">點擊這裡發郵件給站長! </a> 

當訪問者點擊這個鏈接時,會調用他們客戶端的email程序,並在收件人框中自動填上收件人的地址。 下面,我們將分以下幾步介紹如何增加mailto的功能。

第一步:創建一個基本的mailto,包含 收件人的地址 。 <br>

第二步:在收件人地址後用“?cc="開頭,你可以填寫 抄送(CC:)地址 ,下面這個例子將實現該功能:
<a href="mailto:stephen.zhaoyf@163.com?cc=guest@163.net">點擊這裡發郵件給站長並“抄送”給guest! </a>

第三步:就像下面這個例子一樣,緊跟著抄送地址之後,寫上"&bcc=",就可以填上 密件抄送(BCC)地址 了( 在添加這些功能時,第一個功能以"? "開頭,後面的以"&"開頭 )。
<a href="mailto:stephen.zhaoyf@163.com?cc=guest@163.net&bcc=guest@163.net">點擊這裡發郵件給站長並同時“抄送”“暗送”給guest! </a>

還可以同時發信給N個人!地址之間用逗號分開:
<a href="mailto:stephen.zhaoyf@163.com,guest@163.net,guest1@163.net">點擊這裡同時發送N個郵件! </a>

第四步:用?subject=或者&subject(當前面還有抄送或暗送時使用)填上 主題 。
<a href="mailto:stephen.zhaoyf@163.com?subject=不好意思,只是做個實驗!">點擊這裡發送有主題的郵件! </a>

更加誇張的是連 郵件內容 都可以事先寫好!
<a href="mailto:stephen.zhaoyf@163.com?subject=不好意思,只是做個實驗!&body=特別無聊,所以發現這麼一個功能">這個郵件地址、內容都有了! 以後可就懶了! </a>

下面我們來總結一下,Mailto後為收件人地址,cc後為抄送地址,bcc後為密件抄送地址,subject後為郵件的主題,body後為郵件的內容,如果Mailto後面同時有多個參數的話,第一個參數必須以“?”開頭,後面的每一個都以“&”開頭。 下面是一個完整的實例:Mailto:aaa@xxx.com?cc=bbb@yyy.com&bcc=ccc@zzz.com&subject=主題&body=郵件內容

DIV 圖層置中CSS處理(水平置中+垂直置中)

$
0
0
DIV 圖層置中CSS處理(水平置中+垂直置中)

網頁設計師為了版面美觀,時常會想讓網頁的某塊區域置中。在以前拿表格來排版時,我們可以用以下方式達成目的:


<table align="center" border="1" width="200"> <tr><td>網頁內容</td></tr> </table>


但若不是TABLE表格的時候,DIV要怎樣置中呢?

彈性寬度

如果你的網頁寬度想依視窗寬度調節(例如訂為視窗寬的 80%),那麼便可以採用這種方式。首先我們必須先把整個網頁內容用一個 div 標籤包起來,例如:


<html> <head>[略]</head> <body> <div id="container"> [網頁內容] </div> </body> </html>


指定這個 div 標籤的 id 屬性為 container (依據規範,id 屬性的值在整個頁面裡必須是獨一無二的,不可以重複)。設定完畢以後,在 head 標籤之中插入此段 CSS 程式碼:


<style type="text/css"> #container { margin: 0 auto; width: 80%; } </style>


這代表此樣式要套用至 id 屬性為 container 的區塊(#container),區塊寬度為視窗寬的 80%,上下邊界為零、左右邊界則由瀏覽器自動調節(auto)。如此一來,頁面就會自動置中了。

已知固定寬度

如果你的版面寬度固定(如 760 像素),則可以把前例的 width 特性值修改為 760px。此外對於固定寬度的版面,我們還有另一種設定方式:


#container { position: relative; left: 50%; margin-left: -380px; /* 減掉 (760 除以 2) */ width: 760px; }


這個方式比較奇妙點,position: relative; 代表此區塊將以相對方式,依其母元素(在此例為 body)的位置來定位。加上這條特性後,由於尚未指定位置,container 會依照預設值擺在母元素的左上角

加上 left: 50%; 之後,此區塊左緣將移至母元素的中線

第三條 margin-left: -380px; 比較難解釋,簡單說就是把整個元素的左邊界往回拉 380px(區塊寬度 760px 的一半,負值就是往回拉)

margin: 0 auto 的寫法

有人有另外的寫法,各位使用時請自己測試

第一種寫法:這是為了舊版瀏覽器 IE 5.0 而使用的寫法,如下:

 
body{ text-align:center; } 
/* 先讓網頁內所有的內容置中,因此 myDIV 區塊也會被置中 */ 
#myDIV{ text-align:left; } 
/* 再將 myDIV 區塊內的內容恢復置左 */ 


第二種寫法:IE6 和 Firefox 等新版瀏覽器都通用的寫法,如下: 


#myDIV{ margin-left:auto; margin-right:auto; } 
/* 將 myDIV 區塊的外部間距設定為自動均分,就可以達到置中的效果 */ 


第三種寫法:IE6 和 Firefox 等新版瀏覽器都通用的寫法,如下: 


#myDIV{ margin: 0 auto; } 
/* 與第二種方法作用相同,這是較精簡的寫法 */ 




最上方宣告部分:
(這個建議加上最上面的第一行,這個是網頁的標準是依照XHTML 1.0的標準來呈現)


<!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">


Google Maps API 輸入地址轉經緯度,並產生地圖程式分享!!

$
0
0
Google Maps API 輸入地址轉經緯度,並產生地圖程式分享!!

首先要寫Google Maps API必須要先擁有API KEY
你能夠到以下網址申請
http://code.google.com/apis/maps/signup.html
(一個網址需要申請一個API KEY)

申請完後你能在這個頁面找到些範例程式
http://code.google.com/apis/maps ... examples/index.html
像最簡易的頁面
http://code.google.com/apis/maps ... s/event-simple.html
多了控制項的頁面
http://code.google.com/apis/maps ... control-simple.html
輸入地址轉座標的頁面
http://code.google.com/apis/maps ... ocoding-simple.html

以簡易的地圖來說,只要將二段程式碼貼入頁面就能擁有自己的地圖了

將此段程式碼貼入<head></head>中


<script src="http://maps.google.com/maps?file=api&v=2&key=輸入你的API KEY" type="text/javascript"></script>
        <script type="text/javascript"> 
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(23.88001,120.967584), 13); //改成你要的經緯度,後面的13是預設顯示大小
        map.addControl(new GSmallMapControl()); //小型地圖控制項
        map.addControl(new GMapTypeControl()); //轉換類型地圖控制項
                map.enableGoogleBar(); //左下Google地圖搜尋
        var marker = new GMarker(new GLatLng(23.88001,120.967584)); //建立標籤的經緯度
        map.addOverlay(marker); //顯示標籤
        marker.openInfoWindowHtml("你要顯示的文字"); //顯示對話框及文字

      }
    }
    </script>



將此段程式碼貼入<body></body>中


<div id="map" style="width: 600px; height: 500px"></div> <!--此為地圖顯示大小-->


並修改<body>為


<body >


這樣就完成一個簡易的地圖囉

另外介紹用地址轉成經緯度的Google Maps API程式寫法

請依上一篇簡易地圖的寫法修改,只要修改function load()這段...


function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
            var geocoder = new GClientGeocoder();
        var address = "在這裡輸入你所要顯示的地址"
        map.addControl(new GSmallMapControl());
                
                geocoder.getLatLng(address, function(point) {
                        if (!point) {
                          alert('Google Maps 找不到該地址,無法顯示地圖!'); //如果Google Maps無法顯示該地址的警示文字
                        } else {
                          map.setCenter(point, 13);
                          var marker = new GMarker(point);
                          map.addOverlay(marker);
                          marker.openInfoWindowHtml("在這裡輸入要顯示在對話框的文字");
                        }
                  });
      }
    }




撰寫跑馬燈/廣告輪播的好工具:jQuery Cycle Plugin

$
0
0
撰寫跑馬燈/廣告輪播的好工具:jQuery Cycle Plugin

jQuery 是我最常用的 JavaScript Library,而且外掛程式超多,有空的人是可以多上去看看有什麼新玩意,保證有許多驚喜!我大約是在一年前得知有 jQuery Cycle Plugin 這個 jQuery 外掛套件吧,當時為了找一個可以「跨瀏覽器」的廣告輪播套件找了好久,也試用了好幾套,不過大部分廣告輪播或跑馬燈的 JavaScript Library 都不盡理想,最後才選擇用 jQuery Cycle Plugin 來做為跑馬燈/廣告輪播的撰寫工具。

想看 jQuery Cycle Plugin 執行效果只要連上官網就可以看到了,至於如何使用那更是容易啦,先介紹一個簡單的範例:

假設有三張圖片你希望能依序輪流顯示:


<div class="pics"> <img src="images/beach1.jpg" width="200" height="200" /> <img src="images/beach2.jpg" width="200" height="200" /> <img src="images/beach3.jpg" width="200" height="200" /> </div>


然後先定義這一區的 CSS


.pics { height: 232px; width: 232px; padding: 0; margin: 0; } .pics img { padding: 15px; border: 1px solid #ccc; background-color: #eee; width: 200px; height: 200px; top: 0; left: 0; }


然後只要寫一行 JavaScript 就完成了整個廣告輪播的工作:


$('.pics').cycle('fade');


若你想調整輪播的速度(假設每 5 秒鐘換一張圖)


$('.pics').cycle({ fx: 'fade', speed: 5000 });


整體來說就是這個簡單,當然你也可以使用較複雜的效果或設定,完整的選項說明可以在這裡找到。
底下是官網上提供的示範與程式碼範例:

[求助]關於隔1秒才出現下一個DIV

$
0
0
各位大大~
我想讓頁面上的DIV不要一次秀出,希望隔一秒才秀出下一個
不知道要怎麼寫才可以呈現這樣的效果
下面是我目前寫的
先謝謝各位大大~
以下內容為程式語法:

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" c />
5 <title>pic</title>
6 <link rel="stylesheet" href="http://warren.mesozen.com/wp-content/themes/winston/css/lightbox.css" type="text/css" media="screen" />
7 <script type="text/javascript" src="http://warren.mesozen.com/wp-content/themes/winston/js/jquery.js"></script>
8 <script type="text/javascript" src="http://warren.mesozen.com/wp-content/themes/winston/js/jquery.lightbox.js"></script>
9 <script src="http://warren.mesozen.com/wp-content/themes/winston/js/winston.js"></script>
10 <style type="text/css">
11 <!--
12 .screenshot {
13 /*    display: none;*/
14     position:relative;
15     float:left;
16     margin:12px 0px 12px 24px;
17     overflow:hidden;
18     width:120px;
19     height:120px;
20     background-color: #FFFFFF;
21     text-align : center;
22     /* Firefox, Chrome */
23 line-height : 120px;
24     white-space : nowrap;
25     /* IE */
26 *font-size : 96px; /* 200px * 0.8 = 180px */
27 *font-family : Arial;
28     border:1px dashed #ccc;
29 }
30 -->
31 </style>
32 </head>
33
34 <body>
35 <script type="text/javascript">
36 function pic()
37 {
38 document.write("<div class='screenshot'><a href='PriveLink.asp?s=images/big/gallery/db"+t+".jpg' class='lightbox' rel='graph' title="+d[t-1]+"><img name='g"+t+"' border='0' src='images/small/gallery/ds"+t+".jpg' alt="+d[t-1]+" title="+d[t-1]+" id='g"+t+"'/></a></div>");
39 }
40
41
42 var d=["A","B","C","D","E","F","G","H","I","j"];
43 for (t=1; t<=d.length; t++){
44 pic()
45 }
46 </script>
47 </body>
48 </html>

<meta http-equiv="Content-Type" c="c" utf-8=""/>pic<link rel="stylesheet" href="http://warren.mesozen.com/wp-content/themes/winston/css/lightbox.css" type="text/css" media="screen"/>

請問博客來這個網頁的移動效果是怎麼做的呢?

$
0
0
 請問博客來這個網頁的移動效果是怎麼做的呢?

可以請知道的大大教學一下嗎?

可以不用flash就做到這樣的效果耶~好炫

http://www.books.com.tw/activity/2011/02/allpass/

[原創]PAZU web打印控件試用心得

$
0
0
在網頁開發打滾也很久了,後來因為有列印的需求所以在網路上也找了很多相關的軟件
其中找到了一個名叫PAZU的web打印控件,我覺得還不錯用。
但是我看到從google搜尋出來的文章都有寫著是免費的字眼,但其重點是:你必須要做一點事情,才可以免費使用PAZU這個web打印控件。

其要做什麼~我不多說,看看以下網址吧!

http://www.4fang.net/apps/d4/Default.aspx?nodeid=4298
來說說淺談一下我個人覺得PAZU打印控件與其他WEB打印控件的優點
1.打印的模板使用原ie模板,沒有任何繁體亂碼問題,使用者更親切。
2.javascript控制,這也是我的最愛。
3.可以取得印表機列表。
4.可取得印表機可用紙張列表
5.最神奇的是可以直接創建一個自訂紙張大小
6.支援ie8及win7

12個新鮮出爐的Web開發框架

$
0
0
12個新鮮出爐的Web開發框架

有的時候,像jQuery這樣的Web框架對於網站建設非常重要。很多的開發人員會選擇合適的框架以幫助他們專注於網站的建設,而不用花太多的時間去思考如何設計一個網站。下面列舉了12個新鮮出爐的Web開發框架,掌握其中的一兩個,相信可以幫助你節省很多時間和精力。


1.Timeglider

http://timeglider.com/jquery/


圖片:



2.TreesaverJS

http://treesaverjs.com/



圖片:


3.520 Grid System

http://www.520grid.com/



圖片:


4.LimeJS 

http://www.limejs.com/


圖片:


5.Wink Toolkit

http://www.winktoolkit.org/


圖片:


6.XUI

http://xuijs.com/


圖片:


7.Baker Framework

http://bakerframework.com/


圖片:


8.ActiveJS

http://activejs.org/


圖片:


9.RightJS

http://rightjs.org/


圖片:


10.EZ-CSS

http://www.ez-css.org/


圖片:


11.Marker CSS

http://www.markercss.com/en/index.php?page=ejemplos


圖片:


12. Atatonic

http://atatonic.timbenniks.nl/



圖片:



 

大眾運輸工具資訊

$
0
0
最近需要做到大眾運輸工具的規劃路線 Google map api只能用到汽車來規劃 但我需要 火車 公車..等轉乘資訊 網路上查到很多軟體可以做到這個功能 卻不太知道他們是如何弄得 希望各位先進能夠給我一些想法和方向>"<

[求助]請問連結變換不同內容的語法?

$
0
0
請問像以下,選連結變換不同內容的效果,要怎麼做呢? 謝謝各位高手的解答
圖片:yahoo-sample.jpg

Viewing all 735 articles
Browse latest View live