javascript搶購腳本
❶ JS腳本實現網頁自動秒殺點擊
我們先來看下秒殺活動頁面代碼
<!DOCTYPE
HTML>
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html;
charset=gb2312">
<title>
Micomo
</title>
</head>
<body>
<div>
<p>
活動倒計時<strong
id="endtime"></strong>秒!
</p>
<input
type="button"
id="btn"
value="立即購買"
disabled="disabled"
onClick="func()"/>
</div>
<script
src="/js/jquery-2.1.1.min.js"></script>
<script
type="text/javascript">
//倒計時30秒
var
i
=
30;
function
remainTime()
{
if
(i
>
0)
{
document.getElementById("endtime").innerHTML
=
i--;
setTimeout("remainTime()",
1000);
}
if
(i
==
0)
{
$("p").text("活動開始");
$("p").css("background-color",
"yellow");
//倒計時結束,按鈕狀態改為可用
document.getElementById("btn").disabled
=
false;
}
}
remainTime();
//點擊按鈕觸發的方法
function
func()
{
alert("恭喜你搶到一個月餅");
}
</script>
</body>
</html>
頁面預覽
腳本
js
代碼
<script
type="text/javascript">
var
button
=
document.getElementById("btn");
//每秒執行一次,若按鈕狀態為可用,進行點擊
setInterval(function()
{
if
(button.disabled
==
false)
{
button.click();
}
},
1000);
</script>
setInterval()
方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
setInterval()
方法會不停地調用函數,直到
clearInterval()
被調用或窗口被關閉。
如何放到瀏覽器
瀏覽器打開活動頁面,按F12進入調試模式,找到Console控制台,將上面js腳本標簽內的代碼粘貼進去(不要首尾標簽),點擊回車即可,一定要在活動結束前放進去。
結果預覽
修改setInterval(function(){},millisec)中的millisec(毫秒為單位),可以控制點擊頻率。
這只是個簡單的js代碼,沒有實現驗證碼自動驗證。
可以參考學習,切勿拿來做有違道德,謀取利益的事。
個人博客,僅用來做些筆記,不保證內容正確性,若發現錯誤,懇請糾正。
網路瀏覽器積分兌換
打開如下頁面,按F12,將代碼放到console下,回車。
代碼
//選取data-id為6的<a>標簽
var
button
=
$("a[data-id=ƌ']");
//每秒執行一次,若按鈕狀態為可用,進行點擊
var
fuc
=
setInterval(function()
{
//如果出現刷新驗證碼的按鈕,則表明已搶到
if($(".refresh-btn").length
>
0){
window.clearInterval(fuc);
//桌面通知,只有chrome,firefox瀏覽器支持桌面API
Notification.requestPermission(function(status)
{
var
n
=
new
Notification('通知消息',
{
body:
'愛奇藝會員兌換碼!'
});
});
}
else
{
button.click();
}
},1000);//一秒一次點擊

❷ 幫我解釋下javascript腳本
<!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=gb2312" />
<title>網頁手寫板</title>
<style type="text/css">
* {
-moz-user-select:none;
border:0px;
}
#tips {
width:850px;
padding-top:8px;
padding-bottom:8px;
background:#999999;
color:#FFFFFF;
text-align:center;
margin:auto;
font-size:14px;
}
</style>
<script type="text/javascript">
var Is_Mouse_Down = false //記錄滑鼠是否按下變數
var Is_First=1
function Create(evt){
evt=evt?evt:window.event //獲得事件對象,兼容ie firefox
if(Is_Mouse_Down){ //判斷滑鼠是否按下
if(evt.ctrlKey){ //Ctrl 鍵是否被按下並保持住
Clean(evt) // 調用Clean方法(按下ctrl清除文字)
}
else {
Write(evt) //調用write方法(寫文字)
}
}
}
function Write(evt){
evt=evt?evt:window.event //獲得事件對象,兼容ie firefox
var Obj_Nian=document.createElement("DIV") //動態創建一個div對象
Obj_Nian.style.position="absolute" //設置position,absolute為絕對定位
Obj_Nian.style.left=evt.clientX-10+"px" // 設置div位置,左邊距為滑鼠位置-10像素
Obj_Nian.style.top=evt.clientY-10+"px" // 設置div位置,上邊距為滑鼠位置-10像素
switch(Is_First){ // 判斷顯示文字的順序
case 1:Obj_Nian.innerHTML="秦";break; // 1則顯示 秦
case 2:Obj_Nian.innerHTML="娟";break;
case 3:Obj_Nian.innerHTML="我";break;
case 4:Obj_Nian.innerHTML="喜";break;
case 5:Obj_Nian.innerHTML="歡";break;
case 6:Obj_Nian.innerHTML="你";break;
default:Obj_Nian.innerHTML="Error";break; //出現越界,顯示error
}
Is_First+=1 //顯示順序累加
if(Is_First==7){ //判斷是否越界
Is_First=1 //越界則回到初始位置
}
Color_Nian="RGB("+Math.floor(Math.random()*100)+"%,"+Math.floor(Math.random()*100)+"%,"+Math.floor(Math.random()*100)+"%)"
//隨機生成顏色RGB(0-255,0-255,0-255)
Obj_Nian.style.color=Color_Nian //顯示顏色
document.body.appendChild(Obj_Nian) //在瀏覽器中添加創建的div
}
function Clean(evt){ //獲得事件對象,兼容ie firefox
evt=evt?evt:window.event
evt.srcObj=evt.srcElement?evt.srcElement:evt.target //獲得事件源
if(evt.srcObj.tagName=="DIV" && (evt.srcObj.innerHTML=="劉" || evt.srcObj.innerHTML=="念" || evt.srcObj.innerHTML=="我" || evt.srcObj.innerHTML=="喜" || evt.srcObj.innerHTML=="歡" || evt.srcObj.innerHTML=="你")){
//時間源為div,並且div中的文字為所顯示的文字
evt.srcObj.innerHTML="" //則清空div
}
}
document.onmousedown=function(){Is_Mouse_Down=true} //滑鼠按下時執行此方法,把Is_Mouse_Down該為真
document.onmousemove=Create //滑鼠移動執行create方法
document.onmouseup=function(){Is_Mouse_Down=false} //滑鼠彈起執行,把Is_Mouse_Down該為假
</script>
</head>
<body onselectstart="javascript:return false"> //這個屬性用在body中,可以實現對文本的選擇與否的控制
<div id="tips">提示:按住滑鼠左鍵不放,在頁面中拖動即可寫字 ; 同時按住ctrl和滑鼠左鍵不放,在頁面中拖動即可把字擦去</div>
</body>
</html>
解釋的不夠清楚就發信給我
❸ JavaScript腳本的編寫
<script>
for(i=0;i<10;i++){
//你那個要做十次的循環...
if(i==9){
newwindow=window.open('你要打開的網頁地址','最新消息','height=300,width=200,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no,')
document.newwindow.bgcolor='#ffffff';
document.newwindow.fgcolor='#000000';
}
}
</script>
❹ 如何編寫JavaScript腳本庫
做Web開發已經四年,或多或少積累了一些JavaScript腳本。比如,限制input只允許輸入數字的腳本;敲回車自動轉到下一個控制項,相當於Tab鍵的作用一樣;因為JavaScript數值運算的結果常常不是我們想要的,還得有浮點數運算(加減乘除)函數。每次有JavaScript需求時,常常是在網上找需要的腳本,直接拷貝到aspx文件中,或者新建JavaScript文件,然後添加引用
<script src="JScript.js" type="text/javascript"></script> ,以這種方式來完成客戶端腳本的製作。畢竟對JavaScript的需求不多,也就沒有花很大的力氣去學。
最近公司的項目不忙,空閑的時間趕忙補習一下腳本的知識。網上有很流行的JQuery腳本庫,在園子里也有大量的文章討論怎麼去用。以我親身體會,JavaScript和正則表達式一樣,常學常忘。學過的知識不用,很快就會忘記。特別是和應用相關的內容,比如PageMethods怎麼用,客戶短回調如何實現,如何用JavaScript調用Web服務,在項目中用過多次,但是一被同事問起來,還是模模糊糊的,很難說出個所以然來。我有一個辦法是製作demo,把各種效果的demo做好,分門別類的放在一起,然後用的時候去搜索,這樣可以節省很多時間。另外一種辦法就是今天這篇文章提到的,把做過的JavaScript整理一下,製作成比較通用的腳本庫,方便復用。整理的含義是,對函數進行適當的調整,讓它能不僅能滿足當前項目的需求,還要能滿足未來項目的需求,另一個含義是要規范命名和組織結構,寫好樣例代碼,用起來的時候方便。有時候在網上下載了很多JavaScript實用腳本,但是忘記下載它的測試腳本,不知道怎麼去用,還不如到網上重新搜索來得方便。
JavaScript被定義為一種基於對象的腳本語言,一方面它以DOM對象模型和DOM對象中的方法為基礎,另一方面,它又不具備面向對象語言的繼承,多態的特性。ASP.NET AJAX對JavaScript進行了擴展,使我們可以以面向對象的方式來組織JavaScript腳本。我這里的主要工作是封裝,把現有的代碼封裝起來,方便下次復用。於是,有兩種方法來組織現有的JavaScript代碼庫。
我以JavaScript中倍受爭議的浮點運算中的加法和減法運算為例子,看看如何把它們封裝起來
JavaScript風格
function Math() { }
//加法
Math.prototype.Add=function(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
//減法
Math.prototype.Subtraction=function(arg1,arg2){
var r1,r2,m,n;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
n=(r1>=r2)?r1:r2;
return ((arg1*m-arg2*m)/m).toFixed(n);
}
調用方式
var math=new Math();
var result=math.Add(2.0,4.0);
AJAX風格
Type.registerNamespace(「Utility」);
Utility.Math=function(larg,rarg)
{
this._left=larg;
this._right=rarg;
}
Utility.Math.prototype=
{
//加法函數
Add:function ()
{
var r1,r2,m;
try{r1=left.toString().split(".")[1].length}catch(e){r1=0}
try{r2=right.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (left*m+right*m)/m
}
//減法函數
Subtraction: function(){
var r1,r2,m,n;
try{r1=left.toString().split(".")[1].length}catch(e){r1=0}
try{r2=right.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
n=(r1>=r2)?r1:r2;
return ((left*m-right*m)/m).toFixed(n);
}
}
//注冊類
Utility.Math.registerClass(「Utility.Math」);
然後,在需要的地方,就可以運用下面的方法調用
var math=new Utility.Math(2.0,4.2);
var result=math.Add();
使用上面提出的兩種方法,可以方便封裝常用的JavaScript,減少重復。
上面的命名有個問題,因為Math是JavaScript內置的一種類型,用於處理各種數學運算,為了讓上面的JavaScript風格的腳本運行起來,還得把類名換成其它的名字,如MathHelper。ASP.NET AJAX還對JavaScript的六種類型進行了擴展,分別是Array,Boolean,Date,Error,Object和string.
方法有了,估計還有朋友會說,你應該把自己做的JavaScript庫公布出來才行,這樣才能滿足大眾的口味。僅有這個方法,要實踐起來還是很困難的:有項目時間緊的理由,每天都忙著做項目,哪裡有時間去整理這個,也有不熟悉JavaScript的理由。
為了讓我的類庫不至於很菜,我到網上找了些關於寫好JavaScript庫的建議。
有一篇文章的名字叫《Building a JavaScript Library》,本來寫這篇文章之前很想看看他是怎麼寫的,可是網頁中一直提示正在載入文件,無法查看。很想知道老外對於同樣的主題,他是怎麼寫的。
1 使用方法不要過於繁瑣。
2 避免使用Object.prototype
3 不要做過度的擴展
4 遵守標准。
5 向優秀的JavaScript創作者看齊
6 保持靈活可變 7 管理好內存,避免內存泄露。
8 避免與瀏覽器相關的hack
9 保持類庫簡潔
10 讓類庫保持可預知。比如,雖然沒有查看文檔,也應該能猜測到Math是處理和數學運算相關的內容
11 加分的規則:文檔;盡可能多的使用命名空間組織代碼,使之容易被記住;
我的水平很一般的,很普通的一個程序員。所以,不要向我要代碼。我給你了,你還要花時間去看;而且我的代碼沒有文檔,你讀不懂怎麼辦呢。與其這樣,為何不把你自己手頭有的JavaScript 整理一下,況且你手裡頭有的JavaScript ,被你實際用過,你對他肯定熟悉。也不要推薦JQuery,它不是我的目的。
我的目的是教你組織整理現有的JavaScript 腳本庫,把手頭已有資源用好就很不錯了。
更多相關內容可參考資料www.viiboo.cn
❺ 什麼是Javascript腳本
就是一種小程序,它自己就是一種語言
是套在HTML中使用的
一般用來做一些網頁特效或者是表單驗證用的
❻ javascript腳本語言
JAVASCRIPT 是一種腳本語言,也有人說它算上是面向對象的語言。它是網站前台的腳本,在客戶端運行。具體的用處是:驗證表單(非空,長度,規則)、特效(對聯、漂浮)、及一些深入的應用如AJAX,網站特效,如果不學它,那麼以後製作網站是非常苦悶的事情。可以仔細討論,如全部由伺服器驗證,導致伺服器端壓力過大,客戶端驗證通過了再由伺服器處理之類。學習JS很簡單,DOM模型開始。理解HTML基礎,先練習驗證表單,再深入學習特效,事件 慢慢來
❼ JavaScript腳本是什麼
javascript
Javascript是一種由Netscape的LiveScript發展而來的腳本語言,主要目的是為了解決伺服器終端語言,比如Perl,遺留的速度問題。當時服務端需要對數據進行驗證,由於網路速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。於是Netscape的瀏覽器Navigator加入了Javascript,提供了數據驗證的基本功能。
歷史
在1992年,Nombas開始開發一種嵌入式腳本語言,叫做C-minus-minus(Cmm)。[待續...
能夠具有交互性,能夠包含更多活躍的元素,就有必要在網頁中嵌入其它的技術。如:Javascript、VBScript、Document Object Model(文件目標模塊)、Layers和 Cascading Style Sheets(CSS),這里主要講Javascript。那麼Javascript是什麼東東?Javascript就是適應動態網頁製作的需要而誕生的一種新的編程語言,如今越來越廣泛地使用於Internet網頁製作上。 Javascript是由 Netscape公司開發的一種腳本語言(scripting language),或者稱為描述語言。在HTML基礎上,使用Javascript可以開發互動式Web網頁。Javascript的出現使得網頁和用戶之間實現了一種實時性的、動態的、交互性的關系,使網頁包含更多活躍的元素和更加精彩的內容。 運行用Javascript編寫的程序需要能支持Javascript語言的瀏覽器。Netscape公司 Navigator 3.0以上版本的瀏覽器都能支持 Javascript程序,微軟公司 Internet Explorer 3.0以上版本的瀏覽器基本上支持Javascript。微軟公司還有自己開發的Javascript,稱為JScript。 Javascript和Jscript基本上是相同的,只是在一些細節上有出入。 Javascript短小精悍, 又是在客戶機上執行的,大大提高了網頁的瀏覽速度和交互能力。 同時它又是專門為製作Web網頁而量身定做的一種簡單的編程語言。
雖然,在Dreamweaver的Behaviors可以為我們方便地使用Javascript程序而不用編寫代碼,但我們自己了解了Javascript的編程方法後,將能更加方便靈活地應用,也使Javascript的代碼更簡練。本專題通過對一系列典型程序的剖析,使你快速地掌握Javascript的編程技巧,設計出質量上乘的動態網頁打下堅實的基礎。在此之前,我們先了解一些Javascript 的基本概念。
JavaScript 有什麼特點
JavaScript 使網頁增加互動性。JavaScript 使有規律地重復的HTML文段簡化,減少下載時間。JavaScript 能及時響應用戶的操作,對提交表單做即時的檢查,無需浪費時間交由 CGI 驗證。JavaScript 的特點是無窮無盡的,只要你有創意。
Java 與 JavaScript 有什麼不同
很多人看到 Java 和 JavaScript 都有「Java」四個字,就以為它們是同一樣東西,連我自己當初也是這樣。其實它們是完完全全不同的兩種東西。Java,全稱應該是 Java Applet,是嵌在網頁中,而又有自己獨立的運行窗口的小程序。Java Applet 是預先編譯好的,一個 Applet 文件(.class)用 Notepad 打開閱讀,根本不能理解。Java Applet 的功能很強大,可以訪問 http、ftp等協議,甚至可以在電腦上種病毒(已有先例了)。相比之下,JavaScript 的能力就比較小了。JavaScript 是一種「腳本」(「Script」),它直接把代碼寫到 HTML 文檔中,瀏覽器讀取它們的時候才進行編譯、執行,所以能查看 HTML 源文件就能查看JavaScript 源代碼。JavaScript 沒有獨立的運行窗口,瀏覽器當前窗口就是它的運行窗口。它們的相同點,我想只有同是以 Java 作編程語言一點了。
開發 JavaScript 該用什麼軟體
一個 JavaScript 程序其實是一個文檔,一個文本文件。它是嵌入到 HTML 文檔中的。所以,任何可以編寫 HTML 文檔的軟體都可以用來開發 JavaScript。在此我推薦大家用 FrontPage 2000 附帶的 Microsoft 腳本編輯器(在 FrontPage 菜單 | 工具 | 宏 | Microsoft 腳本編輯器)。它是個像 Visual Basic / C++ 一樣的程序開發器,能對正在輸入的語句作出簡要提示。配合 FrontPage 2000,使工作量大大減少。
一、Javascript在網頁的用法
Javascript加入網頁有兩種方法:
1、直接加入HTML文檔
這是最常用的方法,大部分含有Javascript的網頁都採用這種方法,如:
<script language="Javascript">
<!--
document.writeln("這是Javascript!採用直接插入的方法!");
//-Javascript結束-->
</script>
在這個例子中,我們可看到一個新的標簽: <script>……</script>,而<script language="Javascript」> 用來告訴瀏覽器這是用Javascript編寫的程序,需要調動相應的解釋程序進行解釋。
HTML的注釋標簽<!--和-->:用來去掉瀏覽器所不能識別的Javascript源代碼的,這對不支持 Javascript 語言的瀏覽器來說是很有用的。
//-Javascript結束:雙斜杠表示 Javascript的注釋部分,即從//開始到行尾的字元都被忽略。 至於程序中所用到的document.write()函數則表示將括弧中的文字輸出到窗口中去, 這在後面將會詳細介紹。 另外一點需要注意的是,<script>……</script>的位置並不是固定的,可以包含在<head>......</head> 或<body>.....</body>中的任何地方。
2、引用方式 如果已經存在一個Javascript源文件(以js為擴展名),則可以採用這種引用的方式,以提高程序代碼的利用率。其基本格式如下:
<script src=url language="Javascript"></script>
其中的Url就是程序文件的地址。同樣的,這樣的語句可以放在HTML文檔頭部或主體的任何部分。 如果要實現「直接插入方式」中所舉例子的效果,可以首先創建一個Javascript源代碼文件「Script.js」,其內容如下:
document.writeln("這是Javascript!採用直接插入的方法!");
在網頁中可以這樣調用程序:<script src="Script.js" language="Javascript"></script> 。
二、Javascript基本概念
在這里只作簡單介紹,在以後的例子中結程序再作具體解釋其作用。
1、運算符
運算符就是完成操和的一系列符號,它有七類:
賦值運算符、算術運算符、比較運算符、邏輯運算符、條件運算、位操作運算符和字元串運算符。
2、表達式
運算符和操作數的組合稱為表達式,通常分為四類:賦值表達式、算術表達式、布爾表達式和字元串表達式。
3、語句
Javascript程序是由若干語句組成的,語句是編寫程序的指令。Javascript提供了完整的基本編程語句,它們是:
賦值語句、switch選擇語句、while循環語句、for循環語句、do while循環語句、break循環中止語句和continue循環中斷語句。
4、函數
函數是命名的語句段,這個語句段可以被當作一個整體來引用不著和執行。使用函數要注意以下幾點:
1)函數由關鍵字function定義;
2)函數必須先定義後使用,否則將出錯;
3)函數名是調用函數時引用的名稱,它對大小寫是敏感的,調用函數時不可寫錯函數名;
4)參數表示傳遞給函數使用或操作的值,它可以是常量,也可以是變數;
5)return語句用於返回表達式的值,也可以沒有。
5、對象
Javascript的一個重要功能就是基於對象的功能,通過基於對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發。
一組包含數據的屬性和對屬性中包含數據進行操作的方法,稱為對象。比如要設定網頁的背景顏色,所針對的對象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍色。
6、事件
用戶與網頁交互時產生的操作,稱為事件。絕大部分事都由用戶的動作所引發,如:用戶按滑鼠的按鈕,就產生onclick事件,若滑鼠的指針的鏈接上移動,就產生onmouseover事件等等。在Javascript中,事件往往與事件處理程序配套使用。
學習Javascript比較快速有效的方法是先熟悉一些基本概念,然後找幾個別人設計好的程序認真仔細地分析一遍,再稍作改動,再看看能否達到預期目的,不斷地舉一反三,既可以加深對一些參數、設計方法的理解,又可以快速地提高自己的水平。另外,再提醒一下:Javascript對大小寫是敏感的,特別是一些對象、方法、屬性的大小寫一定要一致,要養成一種良好的習慣,否則在調試程序時可要累死你了。
7、變數
如 var myVariable = "some value";
❽ 寫購物搶秒殺腳本用javascript還是python成功率更高為什麼
第一步,當用戶第一次瀏覽頁面時,伺服器首先獲取當前時間並顯示在頁面上(比如:顯示在ID為timebox span中)
第二步,設置一個每隔一秒就計算新的時間(新時間以伺服器時間為初始值,然後每隔一秒累加一秒並生成新的時間)
第三步,顯示第二步計算的時間
是不是很簡單,總結成一句話就是:以伺服器時間為初始值,然後在頁面上自動每隔一秒就累加一秒生成新時間,這樣就能保證與伺服器時間同步了,誤差基本在幾秒內,應該沒關系了,好了看一下實現的代碼吧:
<span id="timebox">11:21:55</span> //第一次將伺服器時間顯示在這里
<script type="text/javascript">
$(function () {
var oTime = $("#timebox");
var ts = oTime.text().split(":", 3);
var tnums = [parseInt(ts[0]), parseInt(ts[1]), parseInt(ts[2])];
setInterval(function () {
tnums = getNextTimeNumber(tnums[0], tnums[1], tnums[2]);
showNewTime(tnums[0], tnums[1], tnums[2]);
}, 1000);
function showNewTime(h, m, s) {
var timeStr = ("0" + h.toString()).substr(-2) + ":"
+ ("0" + m.toString()).substr(-2) + ":"
+ ("0" + s.toString()).substr(-2);
oTime.text(timeStr);
}
function getNextTimeNumber(h, m, s) {
if (++s == 60) {
s = 0;
}
if (s == 0) {
if (++m == 60) {
m = 0;
}
}
if (m == 0) {
if (++h == 24) {
h = 0;
}
}
return [h, m, s];
}
});
</script>
代碼很簡單在此就不多作說明(我上面只顯示時分秒,大家也可以加上日期,加上日期可在當h==0時,直接從伺服器獲取一個日期或完整的時間,作為一次時間的校對),不懂的可以在下面評論,我會及時回復的,然後按照這種思路來實現一下同步倒計時,首先說明一下,什麼是同步倒計時,就是類似秒殺一樣,設置一個結束時間,然後計算當前時間與結束時間之間間隔,而且必需保證在不同的電腦、瀏覽器上顯示的倒計時時間均相同,實現代碼如下:
<!DOCTYPE html>
<html>
<head>
<title>同步倒計時</title>
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
</head>
<body>
<span id="timebox">1天00時00分12秒</span> <!--假設:1天00時00分12秒是從伺服器獲取的倒計時數據-->
<script type="text/javascript">
$(function () {
var tid = setInterval(function () {
var oTimebox = $("#timebox");
var syTime = oTimebox.text();
var totalSec = getTotalSecond(syTime) - 1;
if (totalSec >= 0) {
oTimebox.text(getNewSyTime(totalSec));
} else {
clearInterval(tid);
}
}, 1000);
//根據剩餘時間字元串計算出總秒數
function getTotalSecond(timestr) {
var reg = /\d+/g;
var timenums = new Array();
while ((r = reg.exec(timestr)) != null) {
timenums.push(parseInt(r));
}
var second = 0, i = 0;
if (timenums.length == 4) {
second += timenums[0] * 24 * 3600;
i = 1;
}
second += timenums[i] * 3600 + timenums[++i] * 60 + timenums[++i];
return second;
}
//根據剩餘秒數生成時間格式
function getNewSyTime(sec) {
var s = sec % 60;
sec = (sec - s) / 60; //min
var m = sec % 60;
sec = (sec - m) / 60; //hour
var h = sec % 24;
var d = (sec - h) / 24;//day
var syTimeStr = "";
if (d > 0) {
syTimeStr += d.toString() + "天";
}
syTimeStr += ("0" + h.toString()).substr(-2) + "時"
+ ("0" + m.toString()).substr(-2) + "分"
+ ("0" + s.toString()).substr(-2) + "秒";
return syTimeStr;
}
});
</script>
</body>
</html>
為了保證倒計時的精確度,我採用了先將倒計時時間間隔統一計算成秒,然後減1秒再重新生成時間格式,當然也可以按照上面時間同步的例子,直接進行時間減少,方法很多,我這個不一定是最優的
❾ 求個簡單javascript代碼 謝謝,網站菜單功能
不用說自己菜不菜的,能有這個學習的精神已經很值得鼓勵了
呵呵,下面,我來給你介紹幾個網站常見的菜單
第一個:仿網易的滑動門導航菜單
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仿網易的滑動門技術,用DIV+CSS技術實現</title>
<style type="text/css">
<!--
#header {
background-color: #F8F4EF;
height: 200px;
width: 400px;
margin: 0px;
padding: 0px;
border: 1px solid #ECE1D5;
font-family: "宋體";
font-size: 12px;
}
#menu {
margin: 0px;
padding: 0px;
list-style-type: none;
}
#menu li {
display: block;
width: 100px;
text-align: center;
float: left;
margin: 0px;
padding-top: 0.2em;
padding-right: 0px;
padding-bottom: 0.2em;
padding-left: 0px;
cursor: hand;
}
.sec1 { background-color: #FFFFCC;}
.sec2 { background-color: #00CCFF;}
.block { display: block;}
.unblock { display: none;}
-->
</style>
</head>
<body>
<script language=javascript>
function secBoard(n)
{
for(i=0;i<menu.childNodes.length;i++)
menu.childNodes[i].className="sec1";
menu.childNodes[n].className="sec2";
for(i=0;i<main.childNodes.length;i++)
main.childNodes[i].style.display="none";
main.childNodes[n].style.display="block";
}
</script>
<div id="header">
<ul id="menu">
<li onMouseOver="secBoard(0)" class="sec2">最新新聞</li>
<li onMouseOver="secBoard(1)" class="sec1">最新文章</li>
<li onMouseOver="secBoard(2)" class="sec1">最新日誌</li>
<li onMouseOver="secBoard(3)" class="sec1">論壇新帖</li>
</ul>
<!--內容顯示區域-->
<ul id="main">
<li class="block">第一個內容</li>
<li class="unblock">第二個內容</li>
<li class="unblock">第三個內容</li>
<li class="unblock">第四個內容</li>
</ul>
<!--內容顯示區域-->
</div>
</body>
</html>
這里基本上是使用Css與Div的結合,在整個布局中已層為單位,實行滑動菜單的是一個javascript腳本函數,調用就可以了,看不懂不要緊,日漸積累才是重要
第二個:經典實用的觸發型導航(這是滑鼠單擊事件控制)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>網頁特效代碼|JsCode.CN|---經典實用的觸發型導航菜單</title>
</head>
<body>
<STYLE type=text/css>.sec1 {
BORDER-RIGHT: gray 1px solid; BORDER-TOP:
#ffffff 1px solid; BORDER-LEFT: #ffffff 1px
solid; CURSOR: hand; COLOR: #000000; BORDER-
BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR:
#eeeeee
}
.sec2 {
BORDER-RIGHT: gray 1px solid; BORDER-TOP:
#ffffff 1px solid; FONT-WEIGHT: bold; BORDER-
LEFT: #ffffff 1px solid; CURSOR: hand; COLOR:
#000000; BACKGROUND-COLOR: #d4d0c8
}
.main_tab {
BORDER-RIGHT: gray 1px solid; BORDER-
LEFT: #ffffff 1px solid; COLOR: #000000; BORDER-
BOTTOM: gray 1px solid; BACKGROUND-COLOR: #d4d0c8
}
</STYLE>
<!--JavaScript部分-->
<SCRIPT language=javascript>
function secBoard(n)
{
for(i=0;i<secTable.cells.length;i++)
secTable.cells
[i].className="sec1";
secTable.cells[n].className="sec2";
for(i=0;i<mainTable.tBodies.length;i++)
mainTable.tBodies
[i].style.display="none";
mainTable.tBodies
[n].style.display="block";
}
</SCRIPT>
<!--HTML部分-->
<TABLE id=secTable cellSpacing=0 cellPadding=0 width=549 border=0>
<TBODY>
<TR align=middle height=20>
<TD class=sec2 onclick=secBoard(0) width="10%">關於TBODY標記</TD>
<TD class=sec1 onclick=secBoard(1) width="10%">關於cells集合</TD>
<TD class=sec1 onclick=secBoard(2) width="10%">關於tBodies集合</TD>
<TD class=sec1 onclick=secBoard(3) width="10%">關於display屬性</TD></TR></TBODY></TABLE>
<TABLE class=main_tab id=mainTable height=240 cellSpacing=0 cellPadding=0 width=549 border=0><!--關於TBODY標記-->
<TBODY style="DISPLAY: block">
<TR>
<TD vAlign=top align=middle><BR><BR>
<TABLE cellSpacing=0 cellPadding=0 width=490 border=0>
<TBODY>
<TR>
<TD>指定行做為表體。
<BR>注釋:TBODY要素是塊要素,並且需要結束標
簽。<BR> 即使如果表格沒有顯式定義TBODY
要素,該要素也提供給所有表。<BR><BR>
參考:《動態HTML參考和開發應用大全》(人民郵電出
版社
Microsoft Corporation著
北京華中興業科技發展有限公司
譯)
<BR><BR></TD></TR></TB
ODY></TABLE></TD></TR></T
BODY><!--關於cells集合-->
<TBODY style="DISPLAY:
none">
<TR>
<TD vAlign=top
align=middle><BR><BR>
<TABLE cellSpacing=0
cellPadding=0 width=490 border=0>
<TBODY>
<TR>
<TD>檢索錶行或者整個
表中所有單元格的集合。<BR>應用於TR、TABLE。
<BR><BR>參考:《動態HTML參考和開發應
用大全》(人民郵電出版社
Microsoft Corporation著
北京華中興業科技發展有限公司
譯)
<BR><BR></TD></TR></TB
ODY></TABLE></TD></TR></T
BODY><!--關於tBodies集合-->
<TBODY style="DISPLAY:
none">
<TR>
<TD vAlign=top
align=middle><BR><BR>
<TABLE cellSpacing=0
cellPadding=0 width=490 border=0>
<TBODY>
<TR>
<TD>檢索表中所有TBODY
對象的集合。對象在該集合中按照HTML源順序排列。
<BR>應用於TABLE。<BR><BR>參考:
《動態HTML參考和開發應用大全》(人民郵電出版社
Microsoft Corporation著
北京華中興業科技發展有限公司
譯)
<BR><BR></TD></TR></TB
ODY></TABLE></TD></TR></T
BODY><!--關於display屬性-->
<TBODY style="DISPLAY:
none">
<TR>
<TD vAlign=top
align=middle><BR><BR>
<TABLE cellSpacing=0
cellPadding=0 width=490 border=0>
<TBODY>
<TR>
<TD>設置或者檢索對象
是否被提供。<BR>可能的值為block、none、
inline、list-item、table-header-group、table-
footer-group。<BR>該特性可讀寫,塊要素默認
值為block,內聯要素默認值為inline;層疊樣式表
(CSS)屬性不可繼承。<BR><BR>參考:《
動態HTML參考和開發應用大全》(人民郵電出版社
Microsoft Corporation著
北京華中興業科技發展有限公司譯)
<BR><BR><A
href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/display.asp?frame=true" target=_blank>點擊此處
</A>可參閱微軟<A href="http://msdn.microsoft.com/" target=_blank>MSDN在線</A>上的解釋。
</TD></TR></TBODY></TABLE>
;</TD></TR></TBODY></TABLE&g
t;</body>
</html>
這里跟上面不同的區別在與這是滑鼠移動和滑動的事件區別!
第三個:仿拍拍的切換效果菜單(裡面的圖片是我放上去的,所以會看不到圖片的,呵呵 繼續)
<!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" lang="zh-CN">
<head>
<meta http-equiv="Content-Language" content="zh-cn" />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="robots" content="all" />
<title>網頁特效|網頁特效代碼(JsHtml.cn)---仿拍拍paipai.com首頁產品圖片隨機輪顯切換效果</title><style>
body {font-size:12px}
img {border:0px}
#sale{right:206px;top:0;width:260px;background:#fff}
#saleTitle{text-align:right;padding-top:5px;padding-right:5px;width:255px;height:20px;background:url("images/saleTitle.gif") no-repeat}
#saleList{margin-top:5px}
#saleList .saleTwo{height:108px;background:url("images/salelineH.gif") bottom repeat-x;}
#saleList a{display:block;height:108px;width:86px;text-align:center;float:left;overflow:hidden}
#saleList a.saleItem{background:url("images/salelineV.gif") right repeat-y;}
#saleList a img{margin:5px 0}
#saleList a:hover{background-color:#EBFFC5}
</style>
<script type="text/javascript">
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd(){
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
}
function rand(number){
return Math.ceil(rnd()*number)-1;
}
function nextSale(order){
if(order=="up") saleNum--;
else saleNum++;
if(saleNum>2) saleNum=0
else if(saleNum<0) saleNum=2;
//alert(saleNum);
for(i=0;i<3;i++)
document.getElementById("saleList"+i).style.display="none";
document.getElementById("saleList"+saleNum).style.display="";
}
</script>
</head>
<body>
<div id="sale" class="absolute overflow">
<div id="saleTitle" class="absolute">
<a href="javascript:nextSale('up')" title="點擊到上一屏">
<img src="images/saleFore.gif" hspace="4" onmouseover="this.src='images/saleForeOver.gif'" onmouseout="this.src='images/saleFore.gif'" /></a><a href="javascript:nextSale('down')" title="點擊到下一屏"><img src="images/saleNext.gif" onmouseover="this.src='images/saleNextOver.gif'" onmouseout="this.src='images/saleNext.gif'" /></a></div>
<div class="overflow" style="height:330px" id="saleList">
<script type="text/javascript">var saleNum=rand(3);</script>
<div id="saleList0" style="display:none">
<div class="saleTwo">
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="聖誕浪漫飾品超級大促" src="/jsimages/UploadFiles_3321/200804/20080423085515804.jpg" width="65" height="65" /></div>
<div>
聖誕浪漫飾品<br />
超級大促</div>
</a>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="攝像頭集結號給你新的感覺" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
<div>
攝像頭集結號<br />
給你新的感覺</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="好感度提升韓版娃娃裝" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
<div>
好感度提升<br />
韓版娃娃裝</div>
</a></div>
<div class="saleTwo">
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="復古牛仔外套特惠119元起" src="/jsimages/UploadFiles_3321/200804/20080423085516293.jpg" width="65" height="65" /></div>
<div>
復古牛仔外套<br />
特惠119元起</div>
</a>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="聖誕拍拍特供運動服3折" src="/jsimages/UploadFiles_3321/200804/20080423085516802.jpg" width="65" height="65" /></div>
<div>
聖誕拍拍特供<br />
運動服3折</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="攝像頭集結號給你新的感覺" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
<div>
攝像頭集結號<br />
給你新的感覺</div>
</a></div>
<div>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="聖誕拍拍特供電腦周邊4折" src="/jsimages/UploadFiles_3321/200804/2008042308550.jpg" width="65" height="65" /></div>
<div>
聖誕拍拍特供<br />
電腦周邊4折</div>
</a>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="party扮靚甜美腮紅" src="/jsimages/UploadFiles_3321/200804/20080423085516658.jpg" width="65" width="65" height="65" /></div>
<div>
party扮靚<br />
甜美腮紅</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="好感度提升韓版娃娃裝" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
<div>
好感度提升<br />
韓版娃娃裝</div>
</a></div>
</div>
<div id="saleList1" style="display:none">
<div class="saleTwo">
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="新奇好玩便宜盡在網游頻道" src="/jsimages/UploadFiles_3321/200804/20080423085516612.jpg" width="65" height="65" /></div>
<div>
新奇好玩便宜<br />
盡在網游頻道</div>
</a>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="展現高貴氣質騎士系馬靴" src="/jsimages/UploadFiles_3321/200804/20080423085516202.jpg" width="65" height="65" /></div>
<div>
展現高貴氣質<br />
騎士系馬靴</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="攝像頭集結號給你新的感覺" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
<div>
攝像頭集結號<br />
給你新的感覺</div>
</a></div>
<div class="saleTwo">
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="永不過時條紋毛衣" src="/jsimages/UploadFiles_3321/200804/20080423085516984.jpg" width="65" height="65" /></div>
<div>
永不過時<br />
條紋毛衣</div>
</a>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="聖誕拍拍特供運動鞋2折" src="/jsimages/UploadFiles_3321/200804/20080423085516651.jpg" width="65" height="65" /></div>
<div>
聖誕拍拍特供<br />
運動鞋2折</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="好感度提升韓版娃娃裝" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
<div>
好感度提升<br />
韓版娃娃裝</div>
</a></div>
<div>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="精簡唯美索愛K630" src="/jsimages/UploadFiles_3321/200804/20080423085516302.jpg" width="65" height="65" /></div>
<div>
精簡唯美<br />
索愛K630</div>
</a>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="原裝瑞士軍刀精選" src="/jsimages/UploadFiles_3321/200804/20080423085516549.jpg" width="65" width="65" height="65" /></div>
<div>
原裝瑞士軍刀<br />
精選</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="超薄機身索愛W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" /></div>
<div>
超薄機身<br />
索愛W880</div>
</a></div>
</div>
<div id="saleList2" style="display:none">
<div class="saleTwo">
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="各就各味秋冬飲食計劃" src="/jsimages/UploadFiles_3321/200804/20080423085516704.jpg&type=3" width="65" height="65" /></div>
<div>
各就各味<br />
秋冬飲食計劃</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="好感度提升韓版娃娃裝" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
<div>
好感度提升<br />
韓版娃娃裝</div>
</a></div>
<div class="saleTwo">
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="聖誕拍拍特供隨身視聽5折" src="/jsimages/UploadFiles_3321/200804/20080423085516375.jpg" width="65" height="65" /></div>
<div>
聖誕拍拍特供<br />
隨身視聽5折</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="超薄機身索愛W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" /></div>
<div>
超薄機身<br />
索愛W880</div>
</a></div>
<div>
<a class="saleItem" href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="我愛我家家居大搶購" src="/jsimages/UploadFiles_3321/200804/20080423085516954.jpg" width="65" height="65" /></div>
<div>
我愛我家<br />
家居大搶購</div>
</a><a href="http://www.jshtml.cn" target="_blank">
<div>
<img alt="超值彩妝套裝變身派對女王" src="/jsimages/UploadFiles_3321/200804/20080423085516919.jpg" width="65" width="65" height="65" /></div>
<div>
超值彩妝套裝<br />
變身派對女王</div>
</a></div>
</div>
</div>
</div>
<script type="text/javascript">document.getElementById("saleList"+saleNum).style.display="";</script>
<p> </p>
<p>更多網頁特效代碼盡在 <a href="http://www.jshtml.cn/">網頁特效代碼</a></p>
</body>
</html>
這個仿拍拍基本上就是2層放圖片,但用起來的效果還是可以的,如果不喜歡我還有下面呢,慢慢學,總會看懂的 (最重要的還是Css哦)
這個主要就是讓層實現隱藏 我覺得這個在層使用方面還是好的
從總體上看,在實現層與層之間的交互,在其代碼 我覺得你有必要去認真看下 !
以上是我介紹額度菜單,雖然不是很強大,但是卻很使用,而且在J2EE中
菜單基本上是一個假象,都是用層與Css之間的特效做出來的!
學會了層的具體應用,我相信你也可以有自己特色的菜單的
那我祝你好運咯!!加油!!
❿ 用js如何寫個搶火車票腳本
伺服器根本承受不了的,我建議使用資料庫吧
