亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript模擬實現(xiàn)"雙11"限時秒殺效果

 更新時間:2022年03月11日 10:01:42   作者:微風(fēng)洋洋  
每年的“雙11”啊,都是大家的剁手節(jié)。大家都在晚上12點,捧著手機看著倒計時,在他倒數(shù)到0的時候瘋狂點擊下單??墒悄阌袥]想過限時秒殺是怎么實現(xiàn)的呢?本文將為你揭秘如何用JavaScript實現(xiàn)限時秒殺,快來了解一下吧

【案例】限時秒殺

在這里插入圖片描述

代碼實現(xiàn)思路:

① 設(shè)計限時秒殺頁面。

② 指定限時秒殺的結(jié)束時間,及其對應(yīng)的毫秒數(shù)。

③ 獲取當(dāng)前時間的毫秒數(shù)。

④ 計算當(dāng)前與秒殺結(jié)束的時間差,大于0,計算剩余的天時分秒;否則結(jié)束秒殺。

⑤ 利用定時器完成秒殺的倒計時功能。

⑥ 利用兩位數(shù)字顯示秒殺的時間。

代碼實現(xiàn)

	<!DOCTYPE html>
	<html>
	<head>
	<meta charset="UTF-8">
	<title>限時秒殺</title>
	<style>
	.box{margin:0 auto;position:relative;background:url(images/flash_sale.png);width:702px;height:378px;}
	.box div{float:left;width:50px;height:50px;border:1px solid #ccc;margin-left:5px;line-height:50px;text-align: center;color:red;position:relative;top:260px;left:305px;}
	</style>
	</head>
	<body>
	<div class="box">
	<div id="d"></div> <!-- 剩余的天數(shù) -->
	<div id="h"></div> <!-- 剩余的小時 -->
	<div id="m"></div> <!-- 剩余的分鐘 -->
	<div id="s"></div> <!-- 剩余的秒數(shù) -->
	</div>
	<script>
	// 設(shè)置秒殺結(jié)束時間
	// var endtime = new Date('2017-11-10 18:51:00'), endseconds = endtime.getTime();
	// 設(shè)置據(jù)當(dāng)前時間開始,秒殺的結(jié)束時間
	var endtime = new Date(), endseconds = endtime.getTime() + 60 * 1000;
	// 聲明變量保存剩余的時間
	var d = h = m = s = 0;
	// 設(shè)置定時器,實現(xiàn)限時秒殺效果
	var id = setInterval(seckill, 1000);
	function seckill() {
	var nowtime = new Date(); // 獲取當(dāng)前時間
	// 獲取時間差,單位秒
	var remaining = parseInt((endseconds - nowtime.getTime()) / 1000);
	// 判斷秒殺是否過期
	if (remaining > 0) {
	d = parseInt(remaining / 86400); // 計算剩余天數(shù)(除以60*60*24取整,獲取剩余的天數(shù))
	h = parseInt((remaining / 3600) % 24); // 計算剩余小時(除以60*60轉(zhuǎn)換為小時,與24取模,獲取剩余的小時)
	m = parseInt((remaining / 60) % 60); // 計算剩余分鐘(除以60轉(zhuǎn)為分鐘,與60取模,獲取剩余的分鐘)
	s = parseInt(remaining % 60); // 計算剩余秒(與60取模,獲取剩余的秒數(shù))
	// 統(tǒng)一利用兩位數(shù)表示剩余的天、小時、分鐘、秒
	d = d < 10 ? '0' + d : d;
	h = h < 10 ? '0' + h : h;
	m = m < 10 ? '0' + m : m;
	s = s < 10 ? '0' + s : s;
	} else {
	clearInterval(id); // 秒殺過期,取消定時器
	d = h = m = s = '00';
	}
	// 將剩余的天、小時、分鐘和秒顯示到指定的網(wǎng)頁中
	document.getElementById('d').innerHTML = d + '天';
	document.getElementById('h').innerHTML = h + '時';
	document.getElementById('m').innerHTML = m + '分';
	document.getElementById('s').innerHTML = s + '秒';
	}
	</script>
	</body>
	</html>

一、全局作用域

window對象:是BOM中所有對象的核心,同時也是BOM中所有對象的父對象。

定義在全局作用域中的變量、函數(shù)以及JavaScript中的內(nèi)置函數(shù)都可以被window對象調(diào)用。

在這里插入圖片描述

定義在全局作用域中的getArea()函數(shù),函數(shù)體內(nèi)的this關(guān)鍵字指向window對象。

對于window對象的屬性和方法在調(diào)用時可以省略window,直接訪問其屬性和方法即可。

注意

在JavaScript中直接使用一個未聲明的變量會報語法錯誤,但是使用“window.變量名”的方式則不會報錯,而是獲得一個undefined結(jié)果。除此之外,delete關(guān)鍵字僅能刪除window對象自身的屬性,對于定義在全局作用域下的變量不起作用。

二、彈出對話框和窗口

window對象中除了前面提過的alert()和prompt()方法外,還提供了很多彈出對話框和窗口的方法,以及相關(guān)的操作屬性。

在這里插入圖片描述

在這里插入圖片描述

所有的屬性和方法在常見的瀏覽器(如IE、Chrome等)中全部支持。

prompt()方法

作用:用于生成用戶輸入的對話框。

第1個參數(shù):用于設(shè)置用戶輸入的提示信息。

第2個參數(shù):用于設(shè)置輸入框中的默認信息。

在這里插入圖片描述

代碼實現(xiàn)

在這里插入圖片描述

confirm()方法

作用:彈出一個確認對話框,該對話框中包含提示消息以及確認和取消按鈕。

參數(shù):用于設(shè)置確認的提示信息。

返回值:點擊“確定”按鈕,返回true。點擊“取消”按鈕,返回false。

在這里插入圖片描述

open()方法

作用:用于打開一個新的瀏覽器窗口,或查找一個已命名的窗口。

語法:open(URL, name, specs, replace)。

第1個參數(shù):打開指定頁面的URL地址,若沒有指定,則打開一個新的空白窗口。

第2個參數(shù):指定target屬性或窗口的名稱。

第3個參數(shù):用于設(shè)置瀏覽器窗口的特征(如大小、位置、滾動條等),多個特征之間使用逗號分隔。

第4個參數(shù):設(shè)置為true,表示替換瀏覽歷史中的當(dāng)前條目,設(shè)置false(默認值),表示在瀏覽歷史中創(chuàng)建新的條目。

在這里插入圖片描述

在這里插入圖片描述

注意

與open()方法功能相反的是close()方法,用于關(guān)閉瀏覽器窗口,調(diào)用該方法的對象就是需要關(guān)閉的窗口對象。

‍舉個例子

在這里插入圖片描述

代碼實現(xiàn)

	<!DOCTYPE html>
	<html>
	<head>
	<meta charset="UTF-8">
	<title>打開和關(guān)閉窗口</title>
	</head>
	<body>
	<p><input type="button" value="打開窗口" onclick="openWin()"></p>
	<p><input type="button" value="關(guān)閉窗口" onclick="closeWin()"></p>
	<p><input type="button" value="檢測窗口是否關(guān)閉" onclick="checkWin()"></p>
	<p id="msg"></p>
	<script>
	var myWindow;
	function openWin() {
	myWindow = window.open('', 'newWin', 'width=400,height=200,left=200');
	myWindow.document.write('<p>窗口名稱為:' + myWindow.name + '</p>');
	myWindow.document.write('<p>當(dāng)前窗口的父窗口地址:' + window.parent.location + '</p>');
	}
	function closeWin() {
	myWindow.close();
	}
	function checkWin() {
	if (myWindow) {
	var str = myWindow.closed ? '窗口已關(guān)閉!' : '窗口未關(guān)閉!';
	} else {
	var str = '窗口沒有被打開!';
	}
	document.getElementById('msg').innerHTML = str;
	}
	</script>
	</body>
	</html>

三、窗口位置和大小

BOM中用來獲取或更改window窗口位置,窗口高度與寬度,文檔區(qū)域高度與寬度的相關(guān)屬性和方法有很多。

在這里插入圖片描述

在這里插入圖片描述

目前只有window.open()方法打開的的窗口和選項卡(Tab),F(xiàn)ireFox和Chrome瀏覽器才支持口位置和大小的調(diào)整。

‍舉個例子

在這里插入圖片描述

代碼實現(xiàn)

	<!DOCTYPE html>
	<html>
	<head>
	<meta charset="UTF-8">
	<title>窗口位置和大小</title>
	</head>
	<body>
	<input type="button" value="打開窗口" onclick="openWin()">
	<input type="button" value="調(diào)整窗口位置和大小" onclick="changeWin()">
	<input type="button" value="再調(diào)整窗口位置和大小" onclick="changeWin1()">
	
	<script>
	var myWindow;
	function openWin() {
	myWindow = window.open('', 'newWin', 'width=250,height=300');
	getPosSize(); // 獲取窗口信息
	}
	function changeWin() {
	myWindow.moveBy(250, 250); // 將newWin窗口下移250像素,右移250像素
	myWindow.focus(); // 獲取移動后newWin窗口的焦點
	myWindow.resizeTo(500, 350); // 修改newWin窗口的寬度為500,高度為350
	getPosSize(); // 獲取窗口信息
	}
	function changeWin1() {
	myWindow.moveTo(250, 250); // 將newWin窗口下移250像素,右移250像素
	myWindow.focus(); // 獲取移動后newWin窗口的焦點
	myWindow.resizeBy(500, 350); // 修改newWin窗口的寬度為500,高度為350
	getPosSize(); // 獲取窗口信息
	}
	
	function getPosSize() {
	// 獲取相對于屏幕窗口的坐標(biāo)
	var x = myWindow.screenLeft, y = myWindow.screenTop;
	// 獲取窗口和文檔的高度和寬度
	var inH = myWindow.innerHeight, inW = myWindow.innerWidth;
	var outH = myWindow.outerHeight, outW = myWindow.outerWidth;
	myWindow.document.write('<p>相對屏幕窗口的坐標(biāo):(' + x + ',' + y + ')</p>');
	myWindow.document.write('<p>文檔的高度和寬度:' + inH + ',' + inW + '</p>');
	myWindow.document.write('<p>窗口的高度和寬度:' + outH + ',' + outW + '</p><hr>');
	}
	</script>
	</body>
	</html>

四、框架操作

window對象提供的frames屬性可通過集合的方式,獲取HTML頁面中所有的框架,length屬性就可以獲取當(dāng)前窗口中frames的數(shù)量。

在這里插入圖片描述

除此之外,還可以利用parent獲取當(dāng)前window對象所在的父窗口。

在這里插入圖片描述

五、定時器

JavaScript中可通過window對象提供的方法實現(xiàn)在指定時間后執(zhí)行特定操作,也可以讓程序代碼每隔一段時間執(zhí)行一次,實現(xiàn)間歇操作。

在這里插入圖片描述

setTimeout()和setInterval()方法區(qū)別:

相同點:都可以在一個固定時間段內(nèi)執(zhí)行JavaScript程序代碼。

不同點:setTimeout()只執(zhí)行一次代碼,setInterval()會在指定的時間后,自動重復(fù)執(zhí)行代碼。

在這里插入圖片描述

提示

setTimeout()方法在執(zhí)行一次后即停止了操作;setInterval()方法一旦開始執(zhí)行,在不加干涉的情況下,間歇調(diào)用將會一直執(zhí)行到頁面關(guān)閉為止。

若要在定時器啟動后,取消該操作,可以將setTimeout()的返回值(定時器ID)傳遞給clearTimeout()方法;或?qū)etInterval()的返回值傳遞給clearInterval()方法。

‍舉個例子

在這里插入圖片描述

代碼實現(xiàn)

	<!DOCTYPE html>
	<html>
	<head>
	<meta charset="UTF-8">
	<title>計數(shù)器</title>
	</head>
	<body>
	<input type="button" value="開始計數(shù)" onclick="startCount()">
	<input id="num" type="text">
	<input type="button" value="停止計數(shù)" onclick="stopCount()">
	<script>
	var timer = null, c = 0;
	function timedCount() { // 在文本框中顯示數(shù)據(jù)
	document.getElementById('num').value = c;
	++c; // 顯示數(shù)據(jù)加1
	}
	function startCount() { // 開始間歇調(diào)用
	timer = setInterval(timedCount, 1000);
	}
	function stopCount() { // 清除間歇調(diào)用
	clearInterval(timer);
	}
	</script>
	</body>
	</html>

以上就是JavaScript模擬實現(xiàn)"雙11"限時秒殺效果的詳細內(nèi)容,更多關(guān)于JavaScript限時秒殺的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論