亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
鑰匙要點(diǎn)
在JavaScript中實(shí)現(xiàn)進(jìn)度欄
>如何自定義進(jìn)度欄的外觀?
>可以使用CSS自定義進(jìn)度欄的外觀。您可以更改顏色,高度,寬度甚至進(jìn)度條的形狀。例如,要更改顏色,您可以使用“背景色”屬性。您也可以使用“邊界 - 拉迪烏斯”屬性使進(jìn)度條形圓形或圓形。請記住針對CSS中正確的類或ID以將這些更改應(yīng)用于進(jìn)度欄。
是的,您可以使用此進(jìn)度用于多個(gè)文件上傳的欄。但是,您需要修改JavaScript代碼以處理多個(gè)文件。您可以在輸入標(biāo)簽中使用“多個(gè)”屬性來選擇多個(gè)文件。然后,在您的JavaScript中,您需要循環(huán)瀏覽文件并單獨(dú)上傳它們,并為每個(gè)文件更新進(jìn)度欄。
>使進(jìn)度欄順利進(jìn)行動(dòng)畫,您可以使用CSS過渡。將“過渡”屬性添加到CSS中的進(jìn)度條元素,指定過渡的屬性(例如'width'),過渡的持續(xù)時(shí)間和時(shí)序函數(shù)(例如,'lineal' ,'sibe-out-out')。
在文件上傳過程中處理錯(cuò)誤可以在'錯(cuò)誤'事件中完成聽眾。當(dāng)上傳期間發(fā)生錯(cuò)誤時(shí),該事件將觸發(fā)。如果偵聽器,您可以向用戶顯示錯(cuò)誤消息,并重置進(jìn)度欄。
首頁 web前端 js教程 如何在HTML5和JavaScript中創(chuàng)建圖形文件上傳進(jìn)度條

如何在HTML5和JavaScript中創(chuàng)建圖形文件上傳進(jìn)度條

Feb 25, 2025 am 10:53 AM

如何在HTML5和JavaScript中創(chuàng)建圖形文件上傳進(jìn)度條

鑰匙要點(diǎn)

  • >在完成時(shí)為當(dāng)前進(jìn)度值和值提供屬性的HTML5 Progress標(biāo)簽可用于創(chuàng)建圖形文件上傳進(jìn)度欄,盡管作者選擇使用標(biāo)準(zhǔn)P標(biāo)簽來用于更多樣式選項(xiàng)。
  • 可以使用CSS進(jìn)行進(jìn)度欄的樣式,而綠色欄則作為圖形創(chuàng)建的寬度是進(jìn)度元素的兩倍,并且在上傳成功或失敗時(shí)應(yīng)用了固體色。
  • >
  • >通過修改uploadfile()函數(shù),添加一個(gè)“進(jìn)度”事件處理程序函數(shù)來計(jì)算新的背景位置,并在上傳完成時(shí)設(shè)置“成功”或“失敗”類,從而在JavaScript中實(shí)現(xiàn)了進(jìn)度欄。
  • 在我以前的帖子中,我們發(fā)現(xiàn)了如何使用HTML5文件拖放,使用JavaScript打開文件,并使用AJAX上傳文件。在本系列的最后一部分中,我們涵蓋了該過程中最令人興奮的部分:圖形進(jìn)度條! 文件上傳進(jìn)度條提供了必不可少的用戶反饋,但眾所周知,它們很難實(shí)施。到現(xiàn)在為止。 Firefox和Chrome都支持提供進(jìn)度事件處理程序的XMLHTTPRequest2對象。但是首先,讓我們考慮如何實(shí)施進(jìn)度標(biāo)準(zhǔn)……
html5進(jìn)度標(biāo)簽

新的進(jìn)度標(biāo)簽提供了兩個(gè)屬性:

    值:當(dāng)前的進(jìn)度值
  • 最大:完成時(shí)的值
  • 該標(biāo)簽在此演示中本來是理想的選擇,盡管它在Chrome中得到了支持,但它僅出現(xiàn)在Firefox 6中。此外,這兩個(gè)瀏覽器都沒有提供許多樣式屬性,因此我將其放下以支持標(biāo)準(zhǔn)的P標(biāo)簽。這是小時(shí)候附加到Div的 具有ID“進(jìn)度”。
造型進(jìn)度欄

我們的p標(biāo)簽將在邊界框中顯示文件名的大小為250px:

對于綠色條本身,我創(chuàng)建了一個(gè)圖形,其寬度是進(jìn)度元素(500px)的兩倍。左250px是彩色的,右250px是透明的:
#progress p
{
	display: block;
	width: 240px;
	padding: 2px 5px;
	margin: 2px 0;
	border: 1px inset #446;
	border-radius: 5px;
}
該圖形用作進(jìn)度欄的背景圖像,并定位在“ x%0”中,其中x%表示剩余(未完成)的比例,即。 如何在HTML5和JavaScript中創(chuàng)建圖形文件上傳進(jìn)度條
    >進(jìn)度從“背景位置:100%0”開始,即剩余100%
  • >進(jìn)度以“背景位置:0%0”結(jié)束,即沒有什么剩下的
  • “背景位置:30%0”意味著70%已經(jīng)完成:
  • 如何在HTML5和JavaScript中創(chuàng)建圖形文件上傳進(jìn)度條
當(dāng)上傳成功或失敗時(shí),通過設(shè)置類來應(yīng)用純色:
#progress p
{
	display: block;
	width: 240px;
	padding: 2px 5px;
	margin: 2px 0;
	border: 1px inset #446;
	border-radius: 5px;
}

在JavaScript中實(shí)現(xiàn)進(jìn)度欄

現(xiàn)在,我們可以修改我們的uploadfile()函數(shù)。遇到有效的JPG文件時(shí),我們將新的P標(biāo)簽附加到#Progress元素,然后將文件名添加為文本:
#progress p.success
{
	background: #0c0 none 0 0 no-repeat;
}

#progress p.failed
{
	background: #c00 none 0 0 no-repeat;
}
現(xiàn)在,我們需要“進(jìn)度”事件處理程序功能。這將接收一個(gè)帶有.LOADAD和.TOTAL屬性的對象 - 計(jì)算新的背景問題是必要的一點(diǎn)數(shù)學(xué):
// upload JPEG files
function UploadFile(file) {

	var xhr = new XMLHttpRequest();
	if (xhr.upload && file.type == "image/jpeg" && file.size <= $id("MAX_FILE_SIZE").value) {
	
		// create progress bar
		var o = $id("progress");
		var progress = o.appendChild(document.createElement("p"));
		progress.appendChild(document.createTextNode("upload " + file.name));
如果您熟悉Ajax,則可以認(rèn)識(shí)到現(xiàn)有的StateChange事件處理程序。這確定了何時(shí)上傳完成并相應(yīng)地設(shè)計(jì)進(jìn)度欄(如果上傳成功,則將“成功”類設(shè)置):
		// progress bar
		xhr.upload.addEventListener("progress", function(e) {
			var pc = parseInt(100 - (e.loaded / e.total * 100));
			progress.style.backgroundPosition = pc + "% 0";
		}, false);
最后,我們像以前一樣將文件發(fā)送到我們的PHP服務(wù)器:
		// file received/failed
		xhr.onreadystatechange = function(e) {
			if (xhr.readyState == 4) {
				progress.className = (xhr.status == 200 ? "success" : "failure");
			}
		};
我們終于有了一個(gè)解決方案:
  1. 啟用文件拖動(dòng)并滴入網(wǎng)頁元素
  2. >
  3. >分析和顯示在客戶端上刪除文件
  4. 異步將文件上傳到服務(wù)器
  5. 顯示上傳期間的圖形進(jìn)度欄
  6. >使用漸進(jìn)式增強(qiáng)來支持大多數(shù)瀏覽器
  7. 不需要JavaScript庫。
  8. 但是,請查看演示頁面,但是請注意,這是在沒有PHP的服務(wù)器上托管的,因此不會(huì)發(fā)生文件上傳。要測試它,請下載文件以檢查代碼并將其托管在您自己的服務(wù)器上。 希望您喜歡這個(gè)系列,并考慮文件拖放如何幫助您的Web應(yīng)用程序。 如果您喜歡閱讀這篇文章,那么您會(huì)喜歡學(xué)習(xí);從大師那里學(xué)習(xí)新鮮技能和技術(shù)的地方。成員可以立即訪問SitePoint的所有電子書和交互式在線課程,例如Learn HTML5。
  9. >關(guān)于HTML5 JavaScript文件上傳進(jìn)度欄
的經(jīng)常詢問問題(常見問題解答)

>如何自定義進(jìn)度欄的外觀?

>可以使用CSS自定義進(jìn)度欄的外觀。您可以更改顏色,高度,寬度甚至進(jìn)度條的形狀。例如,要更改顏色,您可以使用“背景色”屬性。您也可以使用“邊界 - 拉迪烏斯”屬性使進(jìn)度條形圓形或圓形。請記住針對CSS中正確的類或ID以將這些更改應(yīng)用于進(jìn)度欄。

我可以將此進(jìn)度欄用于多個(gè)文件上傳嗎?

是的,您可以使用此進(jìn)度用于多個(gè)文件上傳的欄。但是,您需要修改JavaScript代碼以處理多個(gè)文件。您可以在輸入標(biāo)簽中使用“多個(gè)”屬性來選擇多個(gè)文件。然后,在您的JavaScript中,您需要循環(huán)瀏覽文件并單獨(dú)上傳它們,并為每個(gè)文件更新進(jìn)度欄。

>

>如何在進(jìn)度欄上顯示上傳完成的百分比? '活動(dòng)聽眾。您可以通過將加載的金額除以總量并乘以100來計(jì)算百分比。然后,將此值設(shè)置為Progress Bar元素的文本內(nèi)容。

為什么我的進(jìn)度欄在文件上傳期間不更新?

如果您的進(jìn)度欄在文件上傳過程中沒有更新,則可能是由于幾個(gè)原因所致。一個(gè)常見的原因是“進(jìn)度”事件聽眾無法正確設(shè)置。確保已將事件偵聽器添加到正確的對象中,并正確拼寫事件名稱。另外,檢查事件內(nèi)部的代碼是否正確更新了進(jìn)度欄的值和最大屬性。

我可以將此進(jìn)度欄與其他編程語言一起使用,例如PHP或Python?是的,您可以將此進(jìn)度欄與其他編程語言(如PHP或Python)一起使用。進(jìn)度欄是使用HTML和JavaScript實(shí)施的,這些HTML和JavaScript是客戶端技術(shù),可以與任何服務(wù)器端技術(shù)進(jìn)行交互。您將需要在JavaScript代碼中修改AJAX請求以將文件發(fā)送到您的服務(wù)器端腳本,并且您的服務(wù)器端腳本將需要處理文件上傳并返回進(jìn)度信息。

>我使Progress bar順利進(jìn)行動(dòng)畫?

>使進(jìn)度欄順利進(jìn)行動(dòng)畫,您可以使用CSS過渡。將“過渡”屬性添加到CSS中的進(jìn)度條元素,指定過渡的屬性(例如'width'),過渡的持續(xù)時(shí)間和時(shí)序函數(shù)(例如,'lineal' ,'sibe-out-out')。

>在文件上傳過程中如何處理錯(cuò)誤?

在文件上傳過程中處理錯(cuò)誤可以在'錯(cuò)誤'事件中完成聽眾。當(dāng)上傳期間發(fā)生錯(cuò)誤時(shí),該事件將觸發(fā)。如果偵聽器,您可以向用戶顯示錯(cuò)誤消息,并重置進(jìn)度欄。

我可以取消文件上傳并重置進(jìn)度欄嗎?文件上傳并重置進(jìn)度欄。要取消文件上傳,您可以在XMLHTTPRequest對象上調(diào)用“流產(chǎn)”方法。要重置進(jìn)度欄,您可以將其值屬性設(shè)置為0。

>如何限制上傳的文件大???

>限制可以在JavaScript代碼中完成的文件大小以進(jìn)行上傳。在發(fā)送AJAX請求之前。您可以從文件對象的“大小”屬性中獲取文件的大小,如果超出您的限制,請顯示錯(cuò)誤消息并中止上傳。

>我可以將此進(jìn)度欄用于其他類型的AJAX請求,而不僅僅是文件上傳?

是的,您可以將此進(jìn)度欄用于其他類型的AJAX請求,而不僅僅是文件上傳。對于任何類型的AJAX請求,“進(jìn)度”事件均可觸發(fā),而不僅僅是文件上傳。您將需要修改JavaScript代碼以發(fā)送適當(dāng)?shù)腁JAX請求,并根據(jù)請求的進(jìn)度更新進(jìn)度欄。

以上是如何在HTML5和JavaScript中創(chuàng)建圖形文件上傳進(jìn)度條的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
如何在node.js中提出HTTP請求? 如何在node.js中提出HTTP請求? Jul 13, 2025 am 02:18 AM

在Node.js中發(fā)起HTTP請求有三種常用方式:使用內(nèi)置模塊、axios和node-fetch。1.使用內(nèi)置的http/https模塊無需依賴,適合基礎(chǔ)場景,但需手動(dòng)處理數(shù)據(jù)拼接和錯(cuò)誤監(jiān)聽,例如用https.get()獲取數(shù)據(jù)或通過.write()發(fā)送POST請求;2.axios是基于Promise的第三方庫,語法簡潔且功能強(qiáng)大,支持async/await、自動(dòng)JSON轉(zhuǎn)換、攔截器等,推薦用于簡化異步請求操作;3.node-fetch提供類似瀏覽器fetch的風(fēng)格,基于Promise且語法簡單

JavaScript數(shù)據(jù)類型:原始與參考 JavaScript數(shù)據(jù)類型:原始與參考 Jul 13, 2025 am 02:43 AM

JavaScript的數(shù)據(jù)類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時(shí)復(fù)制副本,因此互不影響;引用類型如對象、數(shù)組和函數(shù)存儲(chǔ)的是內(nèi)存地址,指向同一對象的變量會(huì)相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問題。理解這兩類差異有助于編寫更穩(wěn)定可靠的代碼。

React與Angular vs Vue:哪個(gè)JS框架最好? React與Angular vs Vue:哪個(gè)JS框架最好? Jul 05, 2025 am 02:24 AM

選哪個(gè)JavaScript框架最好?答案是根據(jù)需求選擇最適合的。1.React靈活自由,適合需要高度定制、團(tuán)隊(duì)有架構(gòu)能力的中大型項(xiàng)目;2.Angular提供完整解決方案,適合企業(yè)級(jí)應(yīng)用和長期維護(hù)的大項(xiàng)目;3.Vue上手簡單,適合中小型項(xiàng)目或快速開發(fā)。此外,是否已有技術(shù)棧、團(tuán)隊(duì)規(guī)模、項(xiàng)目生命周期及是否需要SSR也都是選擇框架的重要因素??傊瑳]有絕對最好的框架,適合自己需求的就是最佳選擇。

JavaScript時(shí)間對象,某人構(gòu)建了一個(gè)eactexe,在Google Chrome上更快的網(wǎng)站等等 JavaScript時(shí)間對象,某人構(gòu)建了一個(gè)eactexe,在Google Chrome上更快的網(wǎng)站等等 Jul 08, 2025 pm 02:27 PM

JavaScript開發(fā)者們,大家好!歡迎閱讀本周的JavaScript新聞!本周我們將重點(diǎn)關(guān)注:Oracle與Deno的商標(biāo)糾紛、新的JavaScript時(shí)間對象獲得瀏覽器支持、GoogleChrome的更新以及一些強(qiáng)大的開發(fā)者工具。讓我們開始吧!Oracle與Deno的商標(biāo)之爭Oracle試圖注冊“JavaScript”商標(biāo)的舉動(dòng)引發(fā)爭議。Node.js和Deno的創(chuàng)建者RyanDahl已提交請?jiān)笗?,要求取消該商?biāo),他認(rèn)為JavaScript是一個(gè)開放標(biāo)準(zhǔn),不應(yīng)由Oracle

處理諾言:鏈接,錯(cuò)誤處理和承諾在JavaScript中 處理諾言:鏈接,錯(cuò)誤處理和承諾在JavaScript中 Jul 08, 2025 am 02:40 AM

Promise是JavaScript中處理異步操作的核心機(jī)制,理解鏈?zhǔn)秸{(diào)用、錯(cuò)誤處理和組合器是掌握其應(yīng)用的關(guān)鍵。1.鏈?zhǔn)秸{(diào)用通過.then()返回新Promise實(shí)現(xiàn)異步流程串聯(lián),每個(gè).then()接收上一步結(jié)果并可返回值或Promise;2.錯(cuò)誤處理應(yīng)統(tǒng)一使用.catch()捕獲異常,避免靜默失敗,并可在catch中返回默認(rèn)值繼續(xù)流程;3.組合器如Promise.all()(全成功才成功)、Promise.race()(首個(gè)完成即返回)和Promise.allSettled()(等待所有完成)

什么是緩存API?如何與服務(wù)人員使用? 什么是緩存API?如何與服務(wù)人員使用? Jul 08, 2025 am 02:43 AM

CacheAPI是瀏覽器提供的一種緩存網(wǎng)絡(luò)請求的工具,常與ServiceWorker配合使用,以提升網(wǎng)站性能和離線體驗(yàn)。1.它允許開發(fā)者手動(dòng)存儲(chǔ)如腳本、樣式表、圖片等資源;2.可根據(jù)請求匹配緩存響應(yīng);3.支持刪除特定緩存或清空整個(gè)緩存;4.通過ServiceWorker監(jiān)聽fetch事件實(shí)現(xiàn)緩存優(yōu)先或網(wǎng)絡(luò)優(yōu)先等策略;5.常用于離線支持、加快重復(fù)訪問速度、預(yù)加載關(guān)鍵資源及后臺(tái)更新內(nèi)容;6.使用時(shí)需注意緩存版本控制、存儲(chǔ)限制及與HTTP緩存機(jī)制的區(qū)別。

利用Array.Prototype方法用于JavaScript中的數(shù)據(jù)操作 利用Array.Prototype方法用于JavaScript中的數(shù)據(jù)操作 Jul 06, 2025 am 02:36 AM

JavaScript數(shù)組內(nèi)置方法如.map()、.filter()和.reduce()可簡化數(shù)據(jù)處理;1).map()用于一對一轉(zhuǎn)換元素生成新數(shù)組;2).filter()按條件篩選元素;3).reduce()用于聚合數(shù)據(jù)為單一值;使用時(shí)應(yīng)避免誤用導(dǎo)致副作用或性能問題。

JS綜述:深入研究JavaScript事件循環(huán) JS綜述:深入研究JavaScript事件循環(huán) Jul 08, 2025 am 02:24 AM

JavaScript的事件循環(huán)通過協(xié)調(diào)調(diào)用棧、WebAPI和任務(wù)隊(duì)列來管理異步操作。1.調(diào)用棧執(zhí)行同步代碼,遇到異步任務(wù)時(shí)交由WebAPI處理;2.WebAPI在后臺(tái)完成任務(wù)后將回調(diào)放入相應(yīng)的隊(duì)列(宏任務(wù)或微任務(wù));3.事件循環(huán)檢查調(diào)用棧是否為空,若為空則從隊(duì)列中取出回調(diào)推入調(diào)用棧執(zhí)行;4.微任務(wù)(如Promise.then)優(yōu)先于宏任務(wù)(如setTimeout)執(zhí)行;5.理解事件循環(huán)有助于避免阻塞主線程并優(yōu)化代碼執(zhí)行順序。

See all articles