国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

Feb 25, 2025 am 10:53 AM

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

鑰匙要點

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

新的進度標簽提供了兩個屬性:

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

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

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

在JavaScript中實現(xiàn)進度欄

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

#progress p.failed
{
	background: #c00 none 0 0 no-repeat;
}
現(xiàn)在,我們需要“進度”事件處理程序功能。這將接收一個帶有.LOADAD和.TOTAL屬性的對象 - 計算新的背景問題是必要的一點數(shù)學:
// 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,則可以認識到現(xiàn)有的StateChange事件處理程序。這確定了何時上傳完成并相應(yīng)地設(shè)計進度欄(如果上傳成功,則將“成功”類設(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");
			}
		};
我們終于有了一個解決方案:
  1. 啟用文件拖動并滴入網(wǎng)頁元素
  2. >
  3. >分析和顯示在客戶端上刪除文件
  4. 異步將文件上傳到服務(wù)器
  5. 顯示上傳期間的圖形進度欄
  6. >使用漸進式增強來支持大多數(shù)瀏覽器
  7. 不需要JavaScript庫。
  8. 但是,請查看演示頁面,但是請注意,這是在沒有PHP的服務(wù)器上托管的,因此不會發(fā)生文件上傳。要測試它,請下載文件以檢查代碼并將其托管在您自己的服務(wù)器上。 希望您喜歡這個系列,并考慮文件拖放如何幫助您的Web應(yīng)用程序。 如果您喜歡閱讀這篇文章,那么您會喜歡學習;從大師那里學習新鮮技能和技術(shù)的地方。成員可以立即訪問SitePoint的所有電子書和交互式在線課程,例如Learn HTML5。
  9. >關(guān)于HTML5 JavaScript文件上傳進度欄
的經(jīng)常詢問問題(常見問題解答)

>如何自定義進度欄的外觀?

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

我可以將此進度欄用于多個文件上傳嗎?

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

>

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

為什么我的進度欄在文件上傳期間不更新?

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

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

>我使Progress bar順利進行動畫?

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

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

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

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

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

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

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

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用于不同的應(yīng)用場景。Java用于大型企業(yè)和移動應(yīng)用開發(fā),而JavaScript主要用于網(wǎng)頁開發(fā)。

JavaScript評論:簡短說明 JavaScript評論:簡短說明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時間合作? 如何在JS中與日期和時間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時間處理需注意以下幾點:1.創(chuàng)建Date對象有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點能有效避免常見錯誤。

為什么要將標簽放在的底部? 為什么要將標簽放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

什么是在DOM中冒泡和捕獲的事件? 什么是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標元素,冒泡是從目標元素向上傳播到頂層。1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實現(xiàn);2.事件冒泡是默認行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委托,提高動態(tài)內(nèi)容處理效率;5.捕獲可用于提前攔截事件,如日志記錄或錯誤處理。了解這兩個階段有助于精確控制JavaScript響應(yīng)用戶操作的時機和方式。

JavaScript:探索用于高效編碼的數(shù)據(jù)類型 JavaScript:探索用于高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

如何減少JavaScript應(yīng)用程序的有效載荷大??? 如何減少JavaScript應(yīng)用程序的有效載荷大??? Jun 26, 2025 am 12:54 AM

如果JavaScript應(yīng)用加載慢、性能差,問題往往出在payload太大,解決方法包括:1.使用代碼拆分(CodeSplitting),通過React.lazy()或構(gòu)建工具將大bundle拆分為多個小文件,按需加載以減少首次下載量;2.移除未使用的代碼(TreeShaking),利用ES6模塊機制清除“死代碼”,確保引入的庫支持該特性;3.壓縮和合并資源文件,啟用Gzip/Brotli和Terser壓縮JS,合理合并文件并優(yōu)化靜態(tài)資源;4.替換重型依賴,選用輕量級庫如day.js、fetch

See all articles