\n   
<\/div>\n\n \n \n <\/body>\n <\/html><\/pre>\n

然後,您應(yīng)該創(chuàng)建一個(gè)舞臺(tái)並在其中繪製一些內(nèi)容,例如矩形、圓形或其他形狀:<\/p>\n

 \/\/ 創(chuàng)建舞臺(tái)\n var stage = acgraph.create('stage-container');\n \/\/ 繪制矩形\n var stage.rect(25, 50, 350, 300);<\/pre>\n

以下是 CodePen 上的示例,我們?cè)谄渲懈M(jìn)一步並繪製了死亡聖器符號(hào)。 <\/p>\n

我們的第一幅傑作<\/h2>\n

填充、描邊和圖案填充<\/h3>\n

可以使用填充設(shè)置和描邊設(shè)置對(duì)任何形狀或路徑進(jìn)行著色。所有內(nèi)容都有描邊(邊框),但只有形狀和閉合路徑才有填充。填充和描邊設(shè)置非常豐富,您可以將線性或圓形漸變用於填充和描邊。此外,線條可以是虛線的,並且支持具有多種平鋪模式的圖像填充。但這都是您幾乎可以在任何庫(kù)中都能找到的相當(dāng)標(biāo)準(zhǔn)的內(nèi)容。使 GraphicsJS 具有特殊性的是其網(wǎng)格和圖案填充功能,它不僅允許您直接使用 32 種(!) 可用的網(wǎng)格填充圖案,還允許您輕鬆創(chuàng)建由形狀或文本組成的自定義圖案。 <\/p>\n

現(xiàn)在,讓我們看看究竟可以實(shí)現(xiàn)什麼!我將繪製一幅男人站在房子附近的簡(jiǎn)筆劃,然後用不同的圖案和顏色填充來(lái)增強(qiáng)它。為了簡(jiǎn)單起見(jiàn),讓我們把它做成一幅幼稚的藝術(shù)畫(huà)(並儘量不要涉及到藝術(shù)粗野)。就是這樣:<\/p>\n

 \/\/ 創(chuàng)建舞臺(tái)\n var stage = acgraph.create('stage-container');\n\n \/\/ 繪制框架\n var frame = stage.rect(25, 50, 350, 300);\n\n \/\/ 繪制房子\n var walls = stage.rect(50, 250, 200, 100);\n var roof  = stage.path()\n   .moveTo(50, 250)\n   .lineTo(150, 180)\n   .lineTo(250, 250)\n   .close();\n\n \/\/ 繪制一個(gè)人\n var head = stage.circle(330, 280, 10);\n var neck = stage.path().moveTo(330, 290).lineTo(330, 300);\n var kilt = stage.triangleUp(330, 320, 20);\n var rightLeg = stage.path().moveTo(320, 330).lineTo(320, 340);\n var leftLeg = stage.path().moveTo(340, 330).lineTo(340, 340);<\/pre>\n

查看 CodePen 上的結(jié)果。 <\/p>\n

如您所見(jiàn),我們現(xiàn)在正在使用變量——所有在舞臺(tái)上繪製內(nèi)容的方法都會(huì)返回對(duì)所創(chuàng)建對(duì)象的引用,並且此鏈接可用於更改或刪除對(duì)象。 <\/p>\n

還要注意鍊式調(diào)用(例如 stage.path().moveTo(320, 330).lineTo(320, 340);<\/code>)如何在 GraphicsJS 中隨處可見(jiàn),它有助於縮短代碼。鍊式調(diào)用應(yīng)謹(jǐn)慎使用,但如果應(yīng)用得當(dāng),它確實(shí)使代碼更緊湊且更易於閱讀。 <\/p>

現(xiàn)在,讓我們把這個(gè)塗色頁(yè)交給一個(gè)孩子,讓他們來(lái)塗色。因?yàn)榧词故呛⒆右材苷莆找韵录夹g(shù):<\/p>\n

 \n \n \n   \n   GraphicsJS Basic Example<\/title>    \n <\/head>\n <body>
<h1><a href="http://www.miracleart.cn/">国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂</a></h1>\n   <div   class="377j5v51b"   id=\"stage-container\" style=\"width: 400px; height: 375px;\"><\/div>\n\n   <??>\n   <??>\n <\/body>\n <\/html><\/pre>\n<p>這就是我們示例現(xiàn)在的外觀。 <\/p>\n<p>現(xiàn)在,我們有一幅高地人在蘇格蘭短裙旁邊,他站在他的磚砌城堡附近,屋頂是稻草的圖片。我們甚至可以冒險(xiǎn)說(shuō)這確實(shí)是一件我們想要獲得版權(quán)的<em>藝術(shù)品<\/em>。讓我們使用基於自定義文本的圖案填充來(lái)做到這一點(diǎn):<\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 創(chuàng)建舞臺(tái)\n var stage = acgraph.create('stage-container');\n \/\/ 繪制矩形\n var stage.rect(25, 50, 350, 300);<\/pre>\n<p>如您所見(jiàn),這很容易做到:您創(chuàng)建一個(gè)文本對(duì)象的實(shí)例,然後在舞臺(tái)上形成一個(gè)圖案,並將文本放入圖案中。 <\/p>\n<p>查看 CodePen 上的彩色版權(quán)房屋\/graphicsjs。 <\/p>\n<h2>在不到 50 行代碼中創(chuàng)建一個(gè)益智藝術(shù)遊戲<\/h2>\n<p>在本文的下一部分,我想向您展示如何在不到 50 行代碼中使用 GraphicsJS 創(chuàng)建一個(gè)類似 Cookie Clicker 的遊戲。 <\/p>\n<p>遊戲名稱為<em>“風(fēng)中清掃街道”<\/em>,玩家扮演一名清道夫的角色,在秋天的多風(fēng)下午清掃街道。該遊戲使用 GraphicsJS 圖庫(kù)中程序生成的葉子示例中的一些代碼。 <\/p>\n<p>您可以在 CodePen(或文章結(jié)尾)上查看完成的遊戲。 <\/p>\n<h3>圖層、zIndex 和虛擬 DOM<\/h3>\n<p>我們首先創(chuàng)建一個(gè)舞臺(tái)(如前所述),然後聲明一些初始變量:<\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 創(chuàng)建舞臺(tái)\n var stage = acgraph.create('stage-container');\n\n \/\/ 繪制框架\n var frame = stage.rect(25, 50, 350, 300);\n\n \/\/ 繪制房子\n var walls = stage.rect(50, 250, 200, 100);\n var roof  = stage.path()\n   .moveTo(50, 250)\n   .lineTo(150, 180)\n   .lineTo(250, 250)\n   .close();\n\n \/\/ 繪制一個(gè)人\n var head = stage.circle(330, 280, 10);\n var neck = stage.path().moveTo(330, 290).lineTo(330, 300);\n var kilt = stage.triangleUp(330, 320, 20);\n var rightLeg = stage.path().moveTo(320, 330).lineTo(320, 340);\n var leftLeg = stage.path().moveTo(340, 330).lineTo(340, 340);<\/pre>\n<p>對(duì)於這個(gè)遊戲,我們將使用圖層——GraphicsJS 中用於對(duì)元素進(jìn)行分組的對(duì)象。如果您想對(duì)元素應(yīng)用類似的更改(例如轉(zhuǎn)換),則必須對(duì)元素進(jìn)行分組。您可以在暫停模式下更改圖層(稍後將詳細(xì)介紹),這可以提高性能和用戶體驗(yàn)。 <\/p>\n<p>在此演示中,我們使用圖層功能來(lái)幫助我們將葉子組合在一起,並避免它們覆蓋標(biāo)籤(它告訴我們清掃了多少葉子)。為此,我們創(chuàng)建一個(gè)標(biāo)籤,然後調(diào)用 <code>stage.layer<\/code> 方法,該方法創(chuàng)建舞臺(tái)綁定圖層。我們將此圖層的 <code>zIndex<\/code> 屬性設(shè)置為低於標(biāo)籤的 <code>zIndex<\/code> 屬性。 <\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 給圖片著色\n \/\/ 精美的框架\n frame.stroke([\"red\", \"green\", \"blue\"], 2, \"2 2 2\");\n \/\/ 磚墻\n walls.fill(acgraph.hatchFill('horizontalbrick'));\n \/\/ 草屋頂\n roof.fill(\"#e4d96f\");\n \/\/ 格子呢裙\n kilt.fill(acgraph.hatchFill('plaid'));<\/pre>\n<p>執(zhí)行此操作後,無(wú)論我們?cè)趫D層中創(chuàng)建多少葉子,我們都可以確保它們不會(huì)覆蓋文本。 <\/p>\n<h3>轉(zhuǎn)換<\/h3>\n<p>接下來(lái),讓我們添加一個(gè)函數(shù)來(lái)繪製我們的葉子。這將使用方便的 GraphicsJS 轉(zhuǎn)換 API,該 API 允許您移動(dòng)、縮放、旋轉(zhuǎn)和剪切元素和元素組。當(dāng)與圖層和虛擬 DOM 結(jié)合使用時(shí),這是一個(gè)非常強(qiáng)大的工具。 <\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 169 是版權(quán)符號(hào)的字符代碼\n var  text = acgraph.text().text(String.fromCharCode(169)).opacity(0.2);\n var  pattern_font = stage.pattern(text.getBounds());\n pattern_font.addChild(text);\n \/\/ 用圖案填充整個(gè)圖像\n frame.fill(pattern_font);<\/pre>\n<p>您會(huì)看到每個(gè)路徑的創(chuàng)建方式相同,但隨後會(huì)進(jìn)行轉(zhuǎn)換。這將產(chǎn)生非常漂亮的隨機(jī)葉子圖案。 <\/p>\n<h3>處理事件<\/h3>\n<p>GraphicsJS 中的任何對(duì)象、舞臺(tái)和圖層都可以處理事件。支持的事件的完整列表可在 EventType API 中找到。舞臺(tái)有四個(gè)特殊的事件來(lái)控制渲染。 <\/p><p>在這個(gè)遊戲示例中,我們正在使用附加到葉子對(duì)象的事件偵聽(tīng)器,以便用戶將鼠標(biāo)懸停在它們上時(shí),它們會(huì)一個(gè)接一個(gè)地消失。為此,請(qǐng)將以下代碼添加到 <code>drawLeaves<\/code> 函數(shù)的底部,在 <code>return<\/code> 語(yǔ)句之前:<\/p>\n<pre class='brush:php;toolbar:false;'> <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n   <meta charset=\"utf-8\" \/>\n   <title>GraphicsJS Basic Example<\/title>    \n <\/head>\n <body>\n   <div   class="377j5v51b"   id=\"stage-container\" style=\"width: 400px; height: 375px;\"><\/div>\n\n   <??>\n   <??>\n <\/body>\n <\/html><\/pre>\n<p>在這裡,我們還可以看到我們正在使用圖層來(lái)計(jì)算葉子。 <\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 創(chuàng)建舞臺(tái)\n var stage = acgraph.create('stage-container');\n \/\/ 繪制矩形\n var stage.rect(25, 50, 350, 300);<\/pre>\n<p>請(qǐng)注意,我們實(shí)際上並沒(méi)有在這裡存儲(chǔ)葉子的數(shù)量。由於我們將葉子添加到特定圖層並從中刪除葉子,因此這使我們能夠跟蹤我們有多少個(gè)子元素(以及因此還剩下多少葉子)。 <\/p>\n<p>GraphicsJS 提供了一個(gè)虛擬 DOM,它是 HTML DOM 的抽象,輕量級(jí)且與瀏覽器特定的 SVG\/VML 實(shí)現(xiàn)分離。它對(duì)於執(zhí)行許多偉大的事情非常有用,例如跟蹤所有對(duì)象和圖層,對(duì)組應(yīng)用轉(zhuǎn)換以及在幫助下優(yōu)化渲染允許我們跟蹤和控制渲染過(guò)程的方法。 <\/p>\n<h3>性能優(yōu)化<\/h3>\n<p>虛擬 DOM 以及事件處理程序允許 GraphicsJS 用戶控制渲染。性能文章可以幫助您了解這些內(nèi)容之間的關(guān)係。 <\/p>\n<p>在遊戲中生成葉子時(shí),我們需要在添加新葉子時(shí)暫停渲染,並且只有在所有更改完成後才恢復(fù)渲染:<\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 創(chuàng)建舞臺(tái)\n var stage = acgraph.create('stage-container');\n\n \/\/ 繪制框架\n var frame = stage.rect(25, 50, 350, 300);\n\n \/\/ 繪制房子\n var walls = stage.rect(50, 250, 200, 100);\n var roof  = stage.path()\n   .moveTo(50, 250)\n   .lineTo(150, 180)\n   .lineTo(250, 250)\n   .close();\n\n \/\/ 繪制一個(gè)人\n var head = stage.circle(330, 280, 10);\n var neck = stage.path().moveTo(330, 290).lineTo(330, 300);\n var kilt = stage.triangleUp(330, 320, 20);\n var rightLeg = stage.path().moveTo(320, 330).lineTo(320, 340);\n var leftLeg = stage.path().moveTo(340, 330).lineTo(340, 340);<\/pre>\n<p>這種處理新元素的方法使新葉子幾乎可以立即出現(xiàn)。 <\/p>\n<p>最後,通過(guò)調(diào)用 <code>shakeTree()<\/code> 來(lái)啟動(dòng)所有內(nèi)容。 <\/p>\n<pre class='brush:php;toolbar:false;'> \/\/ 給圖片著色\n \/\/ 精美的框架\n frame.stroke([\"red\", \"green\", \"blue\"], 2, \"2 2 2\");\n \/\/ 磚墻\n walls.fill(acgraph.hatchFill('horizontalbrick'));\n \/\/ 草屋頂\n roof.fill(\"#e4d96f\");\n \/\/ 格子呢裙\n kilt.fill(acgraph.hatchFill('plaid'));<\/pre>\n<h3>最終結(jié)果<\/h3>\n<p>查看 CodePen 上的街道清掃工\/graphicsjs。 <\/p>\n<h2>結(jié)論<\/h2>\n<p>向 HTML5 的轉(zhuǎn)變改變了網(wǎng)絡(luò)。當(dāng)涉及到現(xiàn)代 Web 應(yīng)用程序甚至簡(jiǎn)單的網(wǎng)站時(shí),我們經(jīng)常會(huì)遇到需要圖像處理的任務(wù)。雖然不可能找到在每種情況下都能很好工作的解決方案,但您應(yīng)該考慮 GraphicsJS 庫(kù)。它是開(kāi)源的、健壯的,具有出色的瀏覽器支持和許多使其有趣、方便且當(dāng)然有用的功能。 <\/p>\n<p>我很樂(lè)意在下面的評(píng)論中聽(tīng)到您對(duì) GrphicsJS 的反饋。您是否已經(jīng)在使用它?您是否會(huì)考慮將其用於新項(xiàng)目?我很想知道原因,或者為什麼不使用它。我還正在編寫(xiě)主要 JavaScript 繪圖庫(kù)列表以及將比較和對(duì)比所有這些庫(kù)的文章。也可以隨意指出您希望在那裡看到的功能。 <\/p>\n<h2>進(jìn)一步閱讀的鏈接<\/h2>\n<ul>\n<li>常規(guī)信息<ul>\n<li>SVG<\/li>\n<li>Canvas<\/li>\n<li>SVG 與 Canvas<\/li>\n<\/ul>\n<\/li>\n<li>庫(kù)<ul>\n<li>GraphicsJS<\/li>\n<li>Rapha?l<\/li>\n<li>Snap.svg<\/li>\n<li>BonsaiJS<\/li>\n<\/ul>\n<\/li>\n<li>GraphicsJS<ul>\n<li>GitHub 上的 GraphicsJS<\/li>\n<li>GraphicsJS 文檔<\/li>\n<li>GraphicsJS API 參考<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>關(guān)於 GraphicsJS 的常見(jiàn)問(wèn)題<\/h2>\n<h3>GraphicsJS 與其他 JavaScript 圖形庫(kù)有何不同? <\/h3>\n<p>GraphicsJS 因其強(qiáng)大且輕量級(jí)的特性而脫穎而出。它是一個(gè)強(qiáng)大的庫(kù),允許開(kāi)發(fā)人員以高精度和高性能繪製和動(dòng)畫(huà)化任何圖形。與其他庫(kù)不同,GraphicsJS 提供了一套全面的功能,包括圖層、漸變、圖案等等,而不會(huì)影響速度或效率。它還支持所有現(xiàn)代瀏覽器,使其成為開(kāi)發(fā)人員的多功能選擇。 <\/p>\n<h3>如何開(kāi)始使用 GraphicsJS? <\/h3>\n<p>要開(kāi)始使用 GraphicsJS,您需要在 HTML 文件中包含 GraphicsJS 庫(kù)。您可以從官方網(wǎng)站下載該庫(kù),也可以使用 CDN。包含該庫(kù)後,您可以通過(guò)調(diào)用該庫(kù)提供的適當(dāng)函數(shù)和方法來(lái)開(kāi)始創(chuàng)建圖形。 <\/p>\n<h3>我可以使用 GraphicsJS 創(chuàng)建複雜的動(dòng)畫(huà)嗎? <\/h3>\n<p>是的,GraphicsJS 旨在輕鬆處理複雜的動(dòng)畫(huà)。它提供了一套豐富的動(dòng)畫(huà)功能,包括緩動(dòng)函數(shù)、延遲和持續(xù)時(shí)間設(shè)置。您可以動(dòng)畫(huà)化圖形的任何屬性,例如其位置、大小、顏色等等。這使得 GraphicsJS 成為創(chuàng)建交互式和動(dòng)態(tài)圖形的強(qiáng)大工具。 <\/p>\n<h3>GraphicsJS 是否與所有瀏覽器兼容? <\/h3>\n<p>GraphicsJS 旨在與所有現(xiàn)代瀏覽器兼容,包括 Chrome、Firefox、Safari 和 Internet Explorer。它使用 SVG 和 VML 進(jìn)行渲染,所有這些瀏覽器都支持它們。這確保您的圖形在不同的平臺(tái)和設(shè)備上看起來(lái)一致且性能良好。 <\/p>\n<h3>如何使用 GraphicsJS 創(chuàng)建漸變? <\/h3>\n<p>使用 GraphicsJS 創(chuàng)建漸變很簡(jiǎn)單。您可以使用漸變方法定義線性或徑向漸變,指定顏色和位置,然後將漸變應(yīng)用於任何圖形。這使您可以輕鬆創(chuàng)建豐富多彩的圖形。 <\/p>\n<h3>我可以使用 GraphicsJS 創(chuàng)建交互式圖形嗎? <\/h3>\n<p>是的,GraphicsJS 提供了一套事件處理功能,允許您創(chuàng)建交互式圖形。您可以將事件偵聽(tīng)器附加到任何圖形,使您可以響應(yīng)用戶的操作,例如點(diǎn)擊、鼠標(biāo)移動(dòng)等等。這使得 GraphicsJS 成為創(chuàng)建交互式 Web 應(yīng)用程序的絕佳選擇。 <\/p>\n<h3>GraphicsJS 是否支持圖層? <\/h3>\n<p>是的,GraphicsJS 支持圖層,允許您將圖形組織到單獨(dú)的組中。每個(gè)圖層都可以獨(dú)立操作,從而更易於管理複雜的圖形。您還可以控制每個(gè)圖層的可見(jiàn)性和 z 順序,從而對(duì)圖形進(jìn)行細(xì)粒度控制。 <\/p>\n<h3>如何使用 GraphicsJS 優(yōu)化我的圖形? <\/h3>\n<p>GraphicsJS 提供了幾項(xiàng)功能,可以幫助您優(yōu)化圖形。例如,您可以使用裁剪方法隱藏指定區(qū)域之外的圖形部分,從而減少所需的渲染量。您還可以使用緩存方法來(lái)存儲(chǔ)圖形的渲染輸出,從而提高經(jīng)常重新繪製圖形的性能。 <\/p>\n<h3>我可以使用 GraphicsJS 創(chuàng)建圖表和圖形嗎? <\/h3>\n<p>雖然 GraphicsJS 不是專門(mén)為創(chuàng)建圖表和圖形而設(shè)計(jì)的,但其強(qiáng)大的繪圖和動(dòng)畫(huà)功能使其可以創(chuàng)建任何類型的圖形,包括圖表和圖形。您可以使用庫(kù)的方法來(lái)繪製線條、曲線、矩形、圓形等等,從而創(chuàng)建各種圖表類型。 <\/p>\n<h3>GraphicsJS 是否免費(fèi)使用? <\/h3>\n<p>是的,GraphicsJS 是一個(gè)免費(fèi)的開(kāi)源庫(kù)。您可以在項(xiàng)目中免費(fèi)使用它。該庫(kù)也得到了積極維護(hù),確保它與最新的 Web 標(biāo)準(zhǔn)和技術(shù)保持同步。 <\/p>"}	</script>
	
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<script>var V_PATH="/";window.onerror=function(){ return true; };</script>
</head>

<body data-commit-time="2023-12-28T14:50:12+08:00" class="editor_body body2_2">
	<link rel="stylesheet" type="text/css" href="/static/csshw/stylehw.css">
<header>
    <div   id="377j5v51b"   class="head">
        <div   id="377j5v51b"   class="haed_left">
            <div   id="377j5v51b"   class="haed_logo">
                <a href="http://www.miracleart.cn/zh-tw/" title="" class="haed_logo_a">
                    <img src="/static/imghw/logo.png" alt="" class="haed_logoimg">
                </a>
            </div>
            <div   id="377j5v51b"   class="head_nav">
                <div   id="377j5v51b"   class="head_navs">
                    <a href="javascript:;" title="社群" class="head_nava head_nava-template1">社群</a>
                    <div   class="377j5v51b"   id="dropdown-template1" style="display: none;">
                        <div   id="377j5v51b"   class="languagechoose">
                            <a href="http://www.miracleart.cn/zh-tw/article.html" title="文章" class="languagechoosea on">文章</a>
                            <a href="http://www.miracleart.cn/zh-tw/faq/zt" title="合集" class="languagechoosea">合集</a>
                            <a href="http://www.miracleart.cn/zh-tw/wenda.html" title="問(wèn)答" class="languagechoosea">問(wèn)答</a>
                        </div>
                    </div>
                </div>

                <div   id="377j5v51b"   class="head_navs">
                    <a href="javascript:;" title="學(xué)習(xí)" class="head_nava head_nava-template1_1">學(xué)習(xí)</a>
                    <div   class="377j5v51b"   id="dropdown-template1_1" style="display: none;">
                        <div   id="377j5v51b"   class="languagechoose">
                            <a href="http://www.miracleart.cn/zh-tw/course.html" title="課程" class="languagechoosea on">課程</a>
                            <a href="http://www.miracleart.cn/zh-tw/dic/" title="程式設(shè)計(jì)字典" class="languagechoosea">程式設(shè)計(jì)字典</a>
                        </div>
                    </div>
                </div>

                <div   id="377j5v51b"   class="head_navs">
                    <a href="javascript:;" title="工具庫(kù)" class="head_nava head_nava-template1_2">工具庫(kù)</a>
                    <div   class="377j5v51b"   id="dropdown-template1_2" style="display: none;">
                        <div   id="377j5v51b"   class="languagechoose">
                            <a href="http://www.miracleart.cn/zh-tw/toolset/development-tools" title="開(kāi)發(fā)工具" class="languagechoosea on">開(kāi)發(fā)工具</a>
                            <a href="http://www.miracleart.cn/zh-tw/toolset/website-source-code" title="網(wǎng)站源碼" class="languagechoosea">網(wǎng)站源碼</a>
                            <a href="http://www.miracleart.cn/zh-tw/toolset/php-libraries" title="PHP 函式庫(kù)" class="languagechoosea">PHP 函式庫(kù)</a>
                            <a href="http://www.miracleart.cn/zh-tw/toolset/js-special-effects" title="JS特效" class="languagechoosea on">JS特效</a>
                            <a href="http://www.miracleart.cn/zh-tw/toolset/website-materials" title="網(wǎng)站素材" class="languagechoosea on">網(wǎng)站素材</a>
                            <a href="http://www.miracleart.cn/zh-tw/toolset/extension-plug-ins" title="擴(kuò)充插件" class="languagechoosea on">擴(kuò)充插件</a>
                        </div>
                    </div>
                </div>

                <div   id="377j5v51b"   class="head_navs">
                    <a href="http://www.miracleart.cn/zh-tw/ai" title="AI工具" class="head_nava head_nava-template1_3">AI工具</a>
                </div>

                <div   id="377j5v51b"   class="head_navs">
                    <a href="javascript:;" title="休閒" class="head_nava head_nava-template1_3">休閒</a>
                    <div   class="377j5v51b"   id="dropdown-template1_3" style="display: none;">
                        <div   id="377j5v51b"   class="languagechoose">
                            <a href="http://www.miracleart.cn/zh-tw/game" title="遊戲下載" class="languagechoosea on">遊戲下載</a>
                            <a href="http://www.miracleart.cn/zh-tw/mobile-game-tutorial/" title="遊戲教程" class="languagechoosea">遊戲教程</a>

                        </div>
                    </div>
                </div>
            </div>
        </div>
                    <div   id="377j5v51b"   class="head_search">
                <input id="key_words"  onkeydown="if (event.keyCode == 13) searchs('zh-tw')" class="search-input" type="text" autocomplete="off" name="keywords" required="required" placeholder="Block,address,transaction,news" value="">
                <a href="javascript:;" title="搜尋"  onclick="searchs('zh-tw')"><img src="/static/imghw/find.png" alt="搜尋"></a>
            </div>
                <div   id="377j5v51b"   class="head_right">
            <div   id="377j5v51b"   class="haed_language">
                <a href="javascript:;" class="layui-btn haed_language_btn">繁體中文<i class="layui-icon layui-icon-triangle-d"></i></a>
                <div   class="377j5v51b"   id="dropdown-template" style="display: none;">
                    <div   id="377j5v51b"   class="languagechoose">
                                                <a href="javascript:setlang('zh-cn');" title="簡(jiǎn)體中文" class="languagechoosea">簡(jiǎn)體中文</a>
                                                <a href="javascript:setlang('en');" title="English" class="languagechoosea">English</a>
                                                <a href="javascript:;" title="繁體中文" class="languagechoosea">繁體中文</a>
                                                <a href="javascript:setlang('ja');" title="日本語(yǔ)" class="languagechoosea">日本語(yǔ)</a>
                                                <a href="javascript:setlang('ko');" title="???" class="languagechoosea">???</a>
                                                <a href="javascript:setlang('ms');" title="Melayu" class="languagechoosea">Melayu</a>
                                                <a href="javascript:setlang('fr');" title="Fran?ais" class="languagechoosea">Fran?ais</a>
                                                <a href="javascript:setlang('de');" title="Deutsch" class="languagechoosea">Deutsch</a>
                                            </div>
                </div>
            </div>
            <span id="377j5v51b"    class="head_right_line"></span>
                            <div style="display: block;" id="login" class="haed_login ">
                    <a href="javascript:;"  title="Login" class="haed_logina ">Login</a>
                </div>
                <div style="display: block;" id="reg" class="head_signup login">
                    <a href="javascript:;"  title="singup" class="head_signupa">singup</a>
                </div>
            
        </div>
    </div>
</header>

	
	<main>
		<div   id="377j5v51b"   class="Article_Details_main">
			<div   id="377j5v51b"   class="Article_Details_main1">
							<div   id="377j5v51b"   class="Article_Details_main1L">
					<div   id="377j5v51b"   class="Article_Details_main1Lmain" id="Article_Details_main1Lmain">
						<div   id="377j5v51b"   class="Article_Details_main1L1">目錄</div>
						<div   id="377j5v51b"   class="Article_Details_main1L2" id="Article_Details_main1L2">
							<!-- 左側(cè)懸浮,文章定位標(biāo)題1 id="Article_Details_main1L2s_1"-->
															<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#關(guān)鍵要點(diǎn)" title="關(guān)鍵要點(diǎn)" >關(guān)鍵要點(diǎn)</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#為什麼選擇-GraphicsJS" title="為什麼選擇 GraphicsJS" >為什麼選擇 GraphicsJS</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#GraphicsJS-基礎(chǔ)知識(shí)" title="GraphicsJS 基礎(chǔ)知識(shí)" >GraphicsJS 基礎(chǔ)知識(shí)</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#我們的第一幅傑作" title="我們的第一幅傑作" >我們的第一幅傑作</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#填充-描邊和圖案填充" title="填充、描邊和圖案填充" >填充、描邊和圖案填充</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#在不到-行代碼中創(chuàng)建一個(gè)益智藝術(shù)遊戲" title="在不到 50 行代碼中創(chuàng)建一個(gè)益智藝術(shù)遊戲" >在不到 50 行代碼中創(chuàng)建一個(gè)益智藝術(shù)遊戲</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#圖層-zIndex-和虛擬-DOM" title="圖層、zIndex 和虛擬 DOM" >圖層、zIndex 和虛擬 DOM</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#轉(zhuǎn)換" title="轉(zhuǎn)換" >轉(zhuǎn)換</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#處理事件" title="處理事件" >處理事件</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#性能優(yōu)化" title="性能優(yōu)化" >性能優(yōu)化</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#最終結(jié)果" title="最終結(jié)果" >最終結(jié)果</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#結(jié)論" title="結(jié)論" >結(jié)論</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#進(jìn)一步閱讀的鏈接" title="進(jìn)一步閱讀的鏈接" >進(jìn)一步閱讀的鏈接</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#關(guān)於-GraphicsJS-的常見(jiàn)問(wèn)題" title="關(guān)於 GraphicsJS 的常見(jiàn)問(wèn)題" >關(guān)於 GraphicsJS 的常見(jiàn)問(wèn)題</a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#GraphicsJS-與其他-JavaScript-圖形庫(kù)有何不同" title="GraphicsJS 與其他 JavaScript 圖形庫(kù)有何不同? " >GraphicsJS 與其他 JavaScript 圖形庫(kù)有何不同? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#如何開(kāi)始使用-GraphicsJS" title="如何開(kāi)始使用 GraphicsJS? " >如何開(kāi)始使用 GraphicsJS? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#我可以使用-GraphicsJS-創(chuàng)建複雜的動(dòng)畫(huà)嗎" title="我可以使用 GraphicsJS 創(chuàng)建複雜的動(dòng)畫(huà)嗎? " >我可以使用 GraphicsJS 創(chuàng)建複雜的動(dòng)畫(huà)嗎? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#GraphicsJS-是否與所有瀏覽器兼容" title="GraphicsJS 是否與所有瀏覽器兼容? " >GraphicsJS 是否與所有瀏覽器兼容? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#如何使用-GraphicsJS-創(chuàng)建漸變" title="如何使用 GraphicsJS 創(chuàng)建漸變? " >如何使用 GraphicsJS 創(chuàng)建漸變? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#我可以使用-GraphicsJS-創(chuàng)建交互式圖形嗎" title="我可以使用 GraphicsJS 創(chuàng)建交互式圖形嗎? " >我可以使用 GraphicsJS 創(chuàng)建交互式圖形嗎? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#GraphicsJS-是否支持圖層" title="GraphicsJS 是否支持圖層? " >GraphicsJS 是否支持圖層? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#如何使用-GraphicsJS-優(yōu)化我的圖形" title="如何使用 GraphicsJS 優(yōu)化我的圖形? " >如何使用 GraphicsJS 優(yōu)化我的圖形? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#我可以使用-GraphicsJS-創(chuàng)建圖表和圖形嗎" title="我可以使用 GraphicsJS 創(chuàng)建圖表和圖形嗎? " >我可以使用 GraphicsJS 創(chuàng)建圖表和圖形嗎? </a>
								</div>
																<div   id="377j5v51b"   class="Article_Details_main1L2s ">
									<a href="#GraphicsJS-是否免費(fèi)使用" title="GraphicsJS 是否免費(fèi)使用? " >GraphicsJS 是否免費(fèi)使用? </a>
								</div>
														</div>
					</div>
				</div>
							<div   id="377j5v51b"   class="Article_Details_main1M">
					<div   id="377j5v51b"   class="phpgenera_Details_mainL1">
						<a href="http://www.miracleart.cn/zh-tw/" title="首頁(yè)"
							class="phpgenera_Details_mainL1a">首頁(yè)</a>
						<img src="/static/imghw/top_right.png" alt="" />
												<a href="http://www.miracleart.cn/zh-tw/web-designer.html"
							class="phpgenera_Details_mainL1a">web前端</a>
						<img src="/static/imghw/top_right.png" alt="" />
												<a href="http://www.miracleart.cn/zh-tw/js-tutorial.html"
							class="phpgenera_Details_mainL1a">js教程</a>
						<img src="/static/imghw/top_right.png" alt="" />
						<span>介紹Graphicsjs,一個(gè)功能強(qiáng)大的輕量級(jí)圖形庫(kù)</span>
					</div>
					
					<div   id="377j5v51b"   class="Articlelist_txts">
						<div   id="377j5v51b"   class="Articlelist_txts_info">
							<h1 class="Articlelist_txts_title">介紹Graphicsjs,一個(gè)功能強(qiáng)大的輕量級(jí)圖形庫(kù)</h1>
							<div   id="377j5v51b"   class="Articlelist_txts_info_head">
								<div   id="377j5v51b"   class="author_info">
									<a href="http://www.miracleart.cn/zh-tw/member/1242473.html"  class="author_avatar">
									<img class="lazy"  data-src="https://img.php.cn/upload/avatar/001/242/473/646b03ec7509a724.jpg" src="/static/imghw/default1.png" alt="Jack chen">
									</a>
									<div   id="377j5v51b"   class="author_detail">
																			<a href="http://www.miracleart.cn/zh-tw/member/1242473.html" class="author_name">Jack chen</a>
                                										</div>
								</div>
                			</div>
							<span id="377j5v51b"    class="Articlelist_txts_time">Feb 17, 2025 am	 10:42 AM</span>
														
						</div>
					</div>
					<hr />
					<div   id="377j5v51b"   class="article_main php-article">
						<div   id="377j5v51b"   class="article-list-left detail-content-wrap content">
						<ins class="adsbygoogle"
							style="display:block; text-align:center;"
							data-ad-layout="in-article"
							data-ad-format="fluid"
							data-ad-client="ca-pub-5902227090019525"
							data-ad-slot="3461856641">
						</ins>
						

					<p>HTML5:現(xiàn)代網(wǎng)絡(luò)的基石。如今,在創(chuàng)建交互式圖像時(shí),SVG 和 Canvas 通常是首選技術(shù)——Flash 已被遺忘,Silverlight 則成為網(wǎng)絡(luò)邊緣罕見(jiàn)的獨(dú)角獸,很少有人記得第三方插件。 </p>
<p>每種技術(shù)的優(yōu)缺點(diǎn)都有詳細(xì)記錄,但簡(jiǎn)而言之,SVG 更適合創(chuàng)建和處理交互式元素。這是因?yàn)?SVG 是一種基於 XML 的矢量格式,當(dāng)使用 <code><svg></svg></code> 標(biāo)籤將圖像加載到頁(yè)面中時(shí),其中的每個(gè)元素都可以在 SVG DOM 中使用。 </p>
<p>在本文中,我想向您介紹 GraphicsJS,這是一個(gè)基於 SVG 的全新強(qiáng)大的開(kāi)源 JavaScript 繪圖庫(kù)(對(duì)於舊版 IE 版本,它具有 VML 備用方案)。我將首先快速介紹其基礎(chǔ)知識(shí),然後藉助兩個(gè)簡(jiǎn)短而精彩的示例來(lái)展示該庫(kù)的功能:第一個(gè)示例完全關(guān)於藝術(shù),第二個(gè)示例說(shuō)明如何在不到50 行代碼中編寫(xiě)一個(gè)簡(jiǎn)單的益智藝術(shù)遊戲。 </p>
<h2 id="關(guān)鍵要點(diǎn)">關(guān)鍵要點(diǎn)</h2>
<ul>
<li>GraphicsJS 是一個(gè)新的、強(qiáng)大的、開(kāi)源的 JavaScript 繪圖庫(kù),基於 SVG,並為舊版 IE 版本提供 VML 備用方案。它輕量級(jí)且靈活,具有豐富的 JavaScript API。 </li>
<li>該庫(kù)由 AnyChart 發(fā)布,至少已在 AnyChart 的專有產(chǎn)品中使用三年來(lái)渲染圖表,確保其穩(wěn)健性。與 AnyChart 的 JavaScript 繪圖庫(kù)不同,GraphicsJS 可免費(fèi)用於商業(yè)和非營(yíng)利項(xiàng)目。 </li>
<li>GraphicsJS 具有跨瀏覽器兼容性,支持 Internet Explorer 6.0 、Safari 3.0 、Firefox 3.0  和 Opera 9.5 。它在舊版 IE 版本中以 VML 渲染,在所有其他瀏覽器中以 SVG 渲染。 </li>
<li>該庫(kù)允許將圖形和動(dòng)畫(huà)結(jié)合起來(lái),示例包括動(dòng)畫(huà)篝火、旋轉(zhuǎn)星系、降雨以及可玩的 15 拼圖遊戲。它還包含詳盡的文檔和全面的 API 參考。 </li>
<li>GraphicsJS 庫(kù)可用於創(chuàng)建交互式 Web 應(yīng)用程序,其功能包括圖層、漸變、圖案、事件處理和性能優(yōu)化。它還支持複雜的動(dòng)畫(huà)和轉(zhuǎn)換,使其成為開(kāi)發(fā)人員的多功能選擇。 </li>
</ul>
<h2 id="為什麼選擇-GraphicsJS">為什麼選擇 GraphicsJS</h2>
<p>有很多庫(kù)可以幫助開(kāi)發(fā)人員使用 SVG:Rapha?l、Snap.svg 和 BonsaiJS,僅舉幾例最佳庫(kù)。這些庫(kù)各有優(yōu)缺點(diǎn),但對(duì)其進(jìn)行徹底比較將是另一篇文章的主題。本文是關(guān)於 GraphicsJS 的,因此讓我解釋一下它有什麼優(yōu)點(diǎn)和特殊之處。 </p>
<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173976013882330.jpg" class="lazy" alt="Introducing GraphicsJS, a Powerful Lightweight Graphics Library "></p>
<p>首先,GraphicsJS 輕量級(jí)且具有非常靈活的 JavaScript API。它實(shí)現(xiàn)了許多豐富的文本功能,以及一個(gè)與瀏覽器特定 HTML DOM 實(shí)現(xiàn)分離的虛擬 DOM。 </p>
<p>其次,它是一個(gè)新的開(kāi)源 JavaScript 庫(kù),於去年秋季由 AnyChart(全球領(lǐng)先的交互式數(shù)據(jù)可視化軟件開(kāi)發(fā)商之一)發(fā)布。 AnyChart 至少已使用 GraphicsJS 三年(自 AnyChart 7.0 發(fā)布以來(lái))在其專有產(chǎn)品中渲染圖表,因此 GraphicsJS 已完全經(jīng)過(guò)實(shí)戰(zhàn)測(cè)試。 (免責(zé)聲明:我是 AnyChart 的研發(fā)主管和 GraphicsJS 的首席開(kāi)發(fā)人員)</p>
<p>第三,與 AnyChart 的 JavaScript 繪圖庫(kù)不同,GraphicsJS 可免費(fèi)用於商業(yè)和非營(yíng)利項(xiàng)目。它在 GitHub 上根據(jù) Apache 許可證提供。 </p>
<p>第四,GraphicsJS 具有跨瀏覽器兼容性,支持 Internet Explorer 6.0 、Safari 3.0 、Firefox 3.0  和 Opera 9.5 。它在舊版 IE 版本中以 VML 渲染,在所有其他瀏覽器中以 SVG 渲染。 </p>
<p>最後,GraphicsJS 允許您將圖形和動(dòng)畫(huà)完美地結(jié)合起來(lái)。查看其主要圖庫(kù),其中包含動(dòng)畫(huà)篝火、旋轉(zhuǎn)星系、降雨、程序生成的葉子、可玩的 15 拼圖遊戲等等。 GraphicsJS 在其詳盡的文檔和全面的 API 參考中包含更多示例。 </p>
<h2 id="GraphicsJS-基礎(chǔ)知識(shí)">GraphicsJS 基礎(chǔ)知識(shí)</h2>
<p>要開(kāi)始使用 GraphicsJS,您需要引用該庫(kù)並為繪圖創(chuàng)建一個(gè)塊級(jí) HTML 元素:</p>
<pre class='brush:php;toolbar:false;'> <!DOCTYPE html>
 <html lang="en">
 <head>
   <meta charset="utf-8" />
   <title>GraphicsJS Basic Example</title>    
 </head>
 <body>
   <div id="stage-container" style="width: 400px; height: 375px;"></div>

   <??>
   <??>
 </body>
 </html></pre>
<p>然後,您應(yīng)該創(chuàng)建一個(gè)舞臺(tái)並在其中繪製一些內(nèi)容,例如矩形、圓形或其他形狀:</p>
<pre class='brush:php;toolbar:false;'> // 創(chuàng)建舞臺(tái)
 var stage = acgraph.create('stage-container');
 // 繪制矩形
 var stage.rect(25, 50, 350, 300);</pre>
<p>以下是 CodePen 上的示例,我們?cè)谄渲懈M(jìn)一步並繪製了死亡聖器符號(hào)。 </p>
<h2 id="我們的第一幅傑作">我們的第一幅傑作</h2>
<h3 id="填充-描邊和圖案填充">填充、描邊和圖案填充</h3>
<p>可以使用填充設(shè)置和描邊設(shè)置對(duì)任何形狀或路徑進(jìn)行著色。所有內(nèi)容都有描邊(邊框),但只有形狀和閉合路徑才有填充。填充和描邊設(shè)置非常豐富,您可以將線性或圓形漸變用於填充和描邊。此外,線條可以是虛線的,並且支持具有多種平鋪模式的圖像填充。但這都是您幾乎可以在任何庫(kù)中都能找到的相當(dāng)標(biāo)準(zhǔn)的內(nèi)容。使 GraphicsJS 具有特殊性的是其網(wǎng)格和圖案填充功能,它不僅允許您直接使用 32 種(!) 可用的網(wǎng)格填充圖案,還允許您輕鬆創(chuàng)建由形狀或文本組成的自定義圖案。 </p>
<p>現(xiàn)在,讓我們看看究竟可以實(shí)現(xiàn)什麼!我將繪製一幅男人站在房子附近的簡(jiǎn)筆劃,然後用不同的圖案和顏色填充來(lái)增強(qiáng)它。為了簡(jiǎn)單起見(jiàn),讓我們把它做成一幅幼稚的藝術(shù)畫(huà)(並儘量不要涉及到藝術(shù)粗野)。就是這樣:</p>
<pre class='brush:php;toolbar:false;'> // 創(chuàng)建舞臺(tái)
 var stage = acgraph.create('stage-container');

 // 繪制框架
 var frame = stage.rect(25, 50, 350, 300);

 // 繪制房子
 var walls = stage.rect(50, 250, 200, 100);
 var roof  = stage.path()
   .moveTo(50, 250)
   .lineTo(150, 180)
   .lineTo(250, 250)
   .close();

 // 繪制一個(gè)人
 var head = stage.circle(330, 280, 10);
 var neck = stage.path().moveTo(330, 290).lineTo(330, 300);
 var kilt = stage.triangleUp(330, 320, 20);
 var rightLeg = stage.path().moveTo(320, 330).lineTo(320, 340);
 var leftLeg = stage.path().moveTo(340, 330).lineTo(340, 340);</pre>
<p>查看 CodePen 上的結(jié)果。 </p>
<p>如您所見(jiàn),我們現(xiàn)在正在使用變量——所有在舞臺(tái)上繪製內(nèi)容的方法都會(huì)返回對(duì)所創(chuàng)建對(duì)象的引用,並且此鏈接可用於更改或刪除對(duì)象。 </p>
<p>還要注意鍊式調(diào)用(例如 <code>stage.path().moveTo(320, 330).lineTo(320, 340);</code>)如何在 GraphicsJS 中隨處可見(jiàn),它有助於縮短代碼。鍊式調(diào)用應(yīng)謹(jǐn)慎使用,但如果應(yīng)用得當(dāng),它確實(shí)使代碼更緊湊且更易於閱讀。 </p><p>現(xiàn)在,讓我們把這個(gè)塗色頁(yè)交給一個(gè)孩子,讓他們來(lái)塗色。因?yàn)榧词故呛⒆右材苷莆找韵录夹g(shù):</p>
<pre class='brush:php;toolbar:false;'> <!DOCTYPE html>
 <html lang="en">
 <head>
   <meta charset="utf-8" />
   <title>GraphicsJS Basic Example</title>    
 </head>
 <body>
   <div id="stage-container" style="width: 400px; height: 375px;"></div>

   <??>
   <??>
 </body>
 </html></pre>
<p>這就是我們示例現(xiàn)在的外觀。 </p>
<p>現(xiàn)在,我們有一幅高地人在蘇格蘭短裙旁邊,他站在他的磚砌城堡附近,屋頂是稻草的圖片。我們甚至可以冒險(xiǎn)說(shuō)這確實(shí)是一件我們想要獲得版權(quán)的<em>藝術(shù)品</em>。讓我們使用基於自定義文本的圖案填充來(lái)做到這一點(diǎn):</p>
<pre class='brush:php;toolbar:false;'> // 創(chuàng)建舞臺(tái)
 var stage = acgraph.create('stage-container');
 // 繪制矩形
 var stage.rect(25, 50, 350, 300);</pre>
<p>如您所見(jiàn),這很容易做到:您創(chuàng)建一個(gè)文本對(duì)象的實(shí)例,然後在舞臺(tái)上形成一個(gè)圖案,並將文本放入圖案中。 </p>
<p>查看 CodePen 上的彩色版權(quán)房屋/graphicsjs。 </p>
<h2 id="在不到-行代碼中創(chuàng)建一個(gè)益智藝術(shù)遊戲">在不到 50 行代碼中創(chuàng)建一個(gè)益智藝術(shù)遊戲</h2>
<p>在本文的下一部分,我想向您展示如何在不到 50 行代碼中使用 GraphicsJS 創(chuàng)建一個(gè)類似 Cookie Clicker 的遊戲。 </p>
<p>遊戲名稱為<em>“風(fēng)中清掃街道”</em>,玩家扮演一名清道夫的角色,在秋天的多風(fēng)下午清掃街道。該遊戲使用 GraphicsJS 圖庫(kù)中程序生成的葉子示例中的一些代碼。 </p>
<p>您可以在 CodePen(或文章結(jié)尾)上查看完成的遊戲。 </p>
<h3 id="圖層-zIndex-和虛擬-DOM">圖層、zIndex 和虛擬 DOM</h3>
<p>我們首先創(chuàng)建一個(gè)舞臺(tái)(如前所述),然後聲明一些初始變量:</p>
<pre class='brush:php;toolbar:false;'> // 創(chuàng)建舞臺(tái)
 var stage = acgraph.create('stage-container');

 // 繪制框架
 var frame = stage.rect(25, 50, 350, 300);

 // 繪制房子
 var walls = stage.rect(50, 250, 200, 100);
 var roof  = stage.path()
   .moveTo(50, 250)
   .lineTo(150, 180)
   .lineTo(250, 250)
   .close();

 // 繪制一個(gè)人
 var head = stage.circle(330, 280, 10);
 var neck = stage.path().moveTo(330, 290).lineTo(330, 300);
 var kilt = stage.triangleUp(330, 320, 20);
 var rightLeg = stage.path().moveTo(320, 330).lineTo(320, 340);
 var leftLeg = stage.path().moveTo(340, 330).lineTo(340, 340);</pre>
<p>對(duì)於這個(gè)遊戲,我們將使用圖層——GraphicsJS 中用於對(duì)元素進(jìn)行分組的對(duì)象。如果您想對(duì)元素應(yīng)用類似的更改(例如轉(zhuǎn)換),則必須對(duì)元素進(jìn)行分組。您可以在暫停模式下更改圖層(稍後將詳細(xì)介紹),這可以提高性能和用戶體驗(yàn)。 </p>
<p>在此演示中,我們使用圖層功能來(lái)幫助我們將葉子組合在一起,並避免它們覆蓋標(biāo)籤(它告訴我們清掃了多少葉子)。為此,我們創(chuàng)建一個(gè)標(biāo)籤,然後調(diào)用 <code>stage.layer</code> 方法,該方法創(chuàng)建舞臺(tái)綁定圖層。我們將此圖層的 <code>zIndex</code> 屬性設(shè)置為低於標(biāo)籤的 <code>zIndex</code> 屬性。 </p>
<pre class='brush:php;toolbar:false;'> // 給圖片著色
 // 精美的框架
 frame.stroke(["red", "green", "blue"], 2, "2 2 2");
 // 磚墻
 walls.fill(acgraph.hatchFill('horizontalbrick'));
 // 草屋頂
 roof.fill("#e4d96f");
 // 格子呢裙
 kilt.fill(acgraph.hatchFill('plaid'));</pre>
<p>執(zhí)行此操作後,無(wú)論我們?cè)趫D層中創(chuàng)建多少葉子,我們都可以確保它們不會(huì)覆蓋文本。 </p>
<h3 id="轉(zhuǎn)換">轉(zhuǎn)換</h3>
<p>接下來(lái),讓我們添加一個(gè)函數(shù)來(lái)繪製我們的葉子。這將使用方便的 GraphicsJS 轉(zhuǎn)換 API,該 API 允許您移動(dòng)、縮放、旋轉(zhuǎn)和剪切元素和元素組。當(dāng)與圖層和虛擬 DOM 結(jié)合使用時(shí),這是一個(gè)非常強(qiáng)大的工具。 </p>
<pre class='brush:php;toolbar:false;'> // 169 是版權(quán)符號(hào)的字符代碼
 var  text = acgraph.text().text(String.fromCharCode(169)).opacity(0.2);
 var  pattern_font = stage.pattern(text.getBounds());
 pattern_font.addChild(text);
 // 用圖案填充整個(gè)圖像
 frame.fill(pattern_font);</pre>
<p>您會(huì)看到每個(gè)路徑的創(chuàng)建方式相同,但隨後會(huì)進(jìn)行轉(zhuǎn)換。這將產(chǎn)生非常漂亮的隨機(jī)葉子圖案。 </p>
<h3 id="處理事件">處理事件</h3>
<p>GraphicsJS 中的任何對(duì)象、舞臺(tái)和圖層都可以處理事件。支持的事件的完整列表可在 EventType API 中找到。舞臺(tái)有四個(gè)特殊的事件來(lái)控制渲染。 </p><p>在這個(gè)遊戲示例中,我們正在使用附加到葉子對(duì)象的事件偵聽(tīng)器,以便用戶將鼠標(biāo)懸停在它們上時(shí),它們會(huì)一個(gè)接一個(gè)地消失。為此,請(qǐng)將以下代碼添加到 <code>drawLeaves</code> 函數(shù)的底部,在 <code>return</code> 語(yǔ)句之前:</p>
<pre class='brush:php;toolbar:false;'> <!DOCTYPE html>
 <html lang="en">
 <head>
   <meta charset="utf-8" />
   <title>GraphicsJS Basic Example</title>    
 </head>
 <body>
   <div id="stage-container" style="width: 400px; height: 375px;"></div>

   <??>
   <??>
 </body>
 </html></pre>
<p>在這裡,我們還可以看到我們正在使用圖層來(lái)計(jì)算葉子。 </p>
<pre class='brush:php;toolbar:false;'> // 創(chuàng)建舞臺(tái)
 var stage = acgraph.create('stage-container');
 // 繪制矩形
 var stage.rect(25, 50, 350, 300);</pre>
<p>請(qǐng)注意,我們實(shí)際上並沒(méi)有在這裡存儲(chǔ)葉子的數(shù)量。由於我們將葉子添加到特定圖層並從中刪除葉子,因此這使我們能夠跟蹤我們有多少個(gè)子元素(以及因此還剩下多少葉子)。 </p>
<p>GraphicsJS 提供了一個(gè)虛擬 DOM,它是 HTML DOM 的抽象,輕量級(jí)且與瀏覽器特定的 SVG/VML 實(shí)現(xiàn)分離。它對(duì)於執(zhí)行許多偉大的事情非常有用,例如跟蹤所有對(duì)象和圖層,對(duì)組應(yīng)用轉(zhuǎn)換以及在幫助下優(yōu)化渲染允許我們跟蹤和控制渲染過(guò)程的方法。 </p>
<h3 id="性能優(yōu)化">性能優(yōu)化</h3>
<p>虛擬 DOM 以及事件處理程序允許 GraphicsJS 用戶控制渲染。性能文章可以幫助您了解這些內(nèi)容之間的關(guān)係。 </p>
<p>在遊戲中生成葉子時(shí),我們需要在添加新葉子時(shí)暫停渲染,並且只有在所有更改完成後才恢復(fù)渲染:</p>
<pre class='brush:php;toolbar:false;'> // 創(chuàng)建舞臺(tái)
 var stage = acgraph.create('stage-container');

 // 繪制框架
 var frame = stage.rect(25, 50, 350, 300);

 // 繪制房子
 var walls = stage.rect(50, 250, 200, 100);
 var roof  = stage.path()
   .moveTo(50, 250)
   .lineTo(150, 180)
   .lineTo(250, 250)
   .close();

 // 繪制一個(gè)人
 var head = stage.circle(330, 280, 10);
 var neck = stage.path().moveTo(330, 290).lineTo(330, 300);
 var kilt = stage.triangleUp(330, 320, 20);
 var rightLeg = stage.path().moveTo(320, 330).lineTo(320, 340);
 var leftLeg = stage.path().moveTo(340, 330).lineTo(340, 340);</pre>
<p>這種處理新元素的方法使新葉子幾乎可以立即出現(xiàn)。 </p>
<p>最後,通過(guò)調(diào)用 <code>shakeTree()</code> 來(lái)啟動(dòng)所有內(nèi)容。 </p>
<pre class='brush:php;toolbar:false;'> // 給圖片著色
 // 精美的框架
 frame.stroke(["red", "green", "blue"], 2, "2 2 2");
 // 磚墻
 walls.fill(acgraph.hatchFill('horizontalbrick'));
 // 草屋頂
 roof.fill("#e4d96f");
 // 格子呢裙
 kilt.fill(acgraph.hatchFill('plaid'));</pre>
<h3 id="最終結(jié)果">最終結(jié)果</h3>
<p>查看 CodePen 上的街道清掃工/graphicsjs。 </p>
<h2 id="結(jié)論">結(jié)論</h2>
<p>向 HTML5 的轉(zhuǎn)變改變了網(wǎng)絡(luò)。當(dāng)涉及到現(xiàn)代 Web 應(yīng)用程序甚至簡(jiǎn)單的網(wǎng)站時(shí),我們經(jīng)常會(huì)遇到需要圖像處理的任務(wù)。雖然不可能找到在每種情況下都能很好工作的解決方案,但您應(yīng)該考慮 GraphicsJS 庫(kù)。它是開(kāi)源的、健壯的,具有出色的瀏覽器支持和許多使其有趣、方便且當(dāng)然有用的功能。 </p>
<p>我很樂(lè)意在下面的評(píng)論中聽(tīng)到您對(duì) GrphicsJS 的反饋。您是否已經(jīng)在使用它?您是否會(huì)考慮將其用於新項(xiàng)目?我很想知道原因,或者為什麼不使用它。我還正在編寫(xiě)主要 JavaScript 繪圖庫(kù)列表以及將比較和對(duì)比所有這些庫(kù)的文章。也可以隨意指出您希望在那裡看到的功能。 </p>
<h2 id="進(jìn)一步閱讀的鏈接">進(jìn)一步閱讀的鏈接</h2>
<ul>
<li>常規(guī)信息<ul>
<li>SVG</li>
<li>Canvas</li>
<li>SVG 與 Canvas</li>
</ul>
</li>
<li>庫(kù)<ul>
<li>GraphicsJS</li>
<li>Rapha?l</li>
<li>Snap.svg</li>
<li>BonsaiJS</li>
</ul>
</li>
<li>GraphicsJS<ul>
<li>GitHub 上的 GraphicsJS</li>
<li>GraphicsJS 文檔</li>
<li>GraphicsJS API 參考</li>
</ul>
</li>
</ul>
<h2 id="關(guān)於-GraphicsJS-的常見(jiàn)問(wèn)題">關(guān)於 GraphicsJS 的常見(jiàn)問(wèn)題</h2>
<h3 id="GraphicsJS-與其他-JavaScript-圖形庫(kù)有何不同">GraphicsJS 與其他 JavaScript 圖形庫(kù)有何不同? </h3>
<p>GraphicsJS 因其強(qiáng)大且輕量級(jí)的特性而脫穎而出。它是一個(gè)強(qiáng)大的庫(kù),允許開(kāi)發(fā)人員以高精度和高性能繪製和動(dòng)畫(huà)化任何圖形。與其他庫(kù)不同,GraphicsJS 提供了一套全面的功能,包括圖層、漸變、圖案等等,而不會(huì)影響速度或效率。它還支持所有現(xiàn)代瀏覽器,使其成為開(kāi)發(fā)人員的多功能選擇。 </p>
<h3 id="如何開(kāi)始使用-GraphicsJS">如何開(kāi)始使用 GraphicsJS? </h3>
<p>要開(kāi)始使用 GraphicsJS,您需要在 HTML 文件中包含 GraphicsJS 庫(kù)。您可以從官方網(wǎng)站下載該庫(kù),也可以使用 CDN。包含該庫(kù)後,您可以通過(guò)調(diào)用該庫(kù)提供的適當(dāng)函數(shù)和方法來(lái)開(kāi)始創(chuàng)建圖形。 </p>
<h3 id="我可以使用-GraphicsJS-創(chuàng)建複雜的動(dòng)畫(huà)嗎">我可以使用 GraphicsJS 創(chuàng)建複雜的動(dòng)畫(huà)嗎? </h3>
<p>是的,GraphicsJS 旨在輕鬆處理複雜的動(dòng)畫(huà)。它提供了一套豐富的動(dòng)畫(huà)功能,包括緩動(dòng)函數(shù)、延遲和持續(xù)時(shí)間設(shè)置。您可以動(dòng)畫(huà)化圖形的任何屬性,例如其位置、大小、顏色等等。這使得 GraphicsJS 成為創(chuàng)建交互式和動(dòng)態(tài)圖形的強(qiáng)大工具。 </p>
<h3 id="GraphicsJS-是否與所有瀏覽器兼容">GraphicsJS 是否與所有瀏覽器兼容? </h3>
<p>GraphicsJS 旨在與所有現(xiàn)代瀏覽器兼容,包括 Chrome、Firefox、Safari 和 Internet Explorer。它使用 SVG 和 VML 進(jìn)行渲染,所有這些瀏覽器都支持它們。這確保您的圖形在不同的平臺(tái)和設(shè)備上看起來(lái)一致且性能良好。 </p>
<h3 id="如何使用-GraphicsJS-創(chuàng)建漸變">如何使用 GraphicsJS 創(chuàng)建漸變? </h3>
<p>使用 GraphicsJS 創(chuàng)建漸變很簡(jiǎn)單。您可以使用漸變方法定義線性或徑向漸變,指定顏色和位置,然後將漸變應(yīng)用於任何圖形。這使您可以輕鬆創(chuàng)建豐富多彩的圖形。 </p>
<h3 id="我可以使用-GraphicsJS-創(chuàng)建交互式圖形嗎">我可以使用 GraphicsJS 創(chuàng)建交互式圖形嗎? </h3>
<p>是的,GraphicsJS 提供了一套事件處理功能,允許您創(chuàng)建交互式圖形。您可以將事件偵聽(tīng)器附加到任何圖形,使您可以響應(yīng)用戶的操作,例如點(diǎn)擊、鼠標(biāo)移動(dòng)等等。這使得 GraphicsJS 成為創(chuàng)建交互式 Web 應(yīng)用程序的絕佳選擇。 </p>
<h3 id="GraphicsJS-是否支持圖層">GraphicsJS 是否支持圖層? </h3>
<p>是的,GraphicsJS 支持圖層,允許您將圖形組織到單獨(dú)的組中。每個(gè)圖層都可以獨(dú)立操作,從而更易於管理複雜的圖形。您還可以控制每個(gè)圖層的可見(jiàn)性和 z 順序,從而對(duì)圖形進(jìn)行細(xì)粒度控制。 </p>
<h3 id="如何使用-GraphicsJS-優(yōu)化我的圖形">如何使用 GraphicsJS 優(yōu)化我的圖形? </h3>
<p>GraphicsJS 提供了幾項(xiàng)功能,可以幫助您優(yōu)化圖形。例如,您可以使用裁剪方法隱藏指定區(qū)域之外的圖形部分,從而減少所需的渲染量。您還可以使用緩存方法來(lái)存儲(chǔ)圖形的渲染輸出,從而提高經(jīng)常重新繪製圖形的性能。 </p>
<h3 id="我可以使用-GraphicsJS-創(chuàng)建圖表和圖形嗎">我可以使用 GraphicsJS 創(chuàng)建圖表和圖形嗎? </h3>
<p>雖然 GraphicsJS 不是專門(mén)為創(chuàng)建圖表和圖形而設(shè)計(jì)的,但其強(qiáng)大的繪圖和動(dòng)畫(huà)功能使其可以創(chuàng)建任何類型的圖形,包括圖表和圖形。您可以使用庫(kù)的方法來(lái)繪製線條、曲線、矩形、圓形等等,從而創(chuàng)建各種圖表類型。 </p>
<h3 id="GraphicsJS-是否免費(fèi)使用">GraphicsJS 是否免費(fèi)使用? </h3>
<p>是的,GraphicsJS 是一個(gè)免費(fèi)的開(kāi)源庫(kù)。您可以在項(xiàng)目中免費(fèi)使用它。該庫(kù)也得到了積極維護(hù),確保它與最新的 Web 標(biāo)準(zhǔn)和技術(shù)保持同步。 </p><p>以上是介紹Graphicsjs,一個(gè)功能強(qiáng)大的輕量級(jí)圖形庫(kù)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!</p>


						</div>
					</div>
					<div   id="377j5v51b"   class="wzconShengming_sp">
						<div   id="377j5v51b"   class="bzsmdiv_sp">本網(wǎng)站聲明</div>
						<div>本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn</div>
					</div>
				</div>

				<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5902227090019525"
     data-ad-slot="2507867629"></ins>



				<div   id="377j5v51b"   class="AI_ToolDetails_main4sR">


				<ins class="adsbygoogle"
        style="display:block"
        data-ad-client="ca-pub-5902227090019525"
        data-ad-slot="3653428331"
        data-ad-format="auto"
        data-full-width-responsive="true"></ins>
    


					<!-- <div   id="377j5v51b"   class="phpgenera_Details_mainR4">
						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
									src="/static/imghw/hotarticle2.png" alt="" />
								<h2>熱門(mén)文章</h2>
							</div>
							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796828723.html" title="Agnes Tachyon Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Agnes Tachyon Build Guide |漂亮的德比志</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>2 週前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796827210.html" title="Oguri Cap Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Oguri Cap Build Guide |漂亮的德比志</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>2 週前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796821436.html" title="沙丘:覺(jué)醒 - 高級(jí)行星學(xué)家Quest演練" class="phpgenera_Details_mainR4_bottom_title">沙丘:覺(jué)醒 - 高級(jí)行星學(xué)家Quest演練</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>4 週前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796821278.html" title="約會(huì)一切:德克和哈珀關(guān)係指南" class="phpgenera_Details_mainR4_bottom_title">約會(huì)一切:德克和哈珀關(guān)係指南</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>1 個(gè)月前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796821868.html" title="Palia:Rasquellywag的Riches Quest演練" class="phpgenera_Details_mainR4_bottom_title">Palia:Rasquellywag的Riches Quest演練</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>4 週前</span>
										<span>By DDD</span>
									</div>
								</div>
														</div>
							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
								<a href="http://www.miracleart.cn/zh-tw/article.html">顯示更多</a>
							</div>
						</div>
					</div> -->


											<div   id="377j5v51b"   class="phpgenera_Details_mainR3">
							<div   id="377j5v51b"   class="phpmain1_4R_readrank">
								<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/hottools2.png" alt="" />
									<h2>熱AI工具</h2>
								</div>
								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_bottom">
																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173410641626608.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undress AI Tool" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_title">
													<h3>Undress AI Tool</h3>
												</a>
												<p>免費(fèi)脫衣圖片</p>
											</div>
										</div>
																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411540686492.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undresser.AI Undress" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_title">
													<h3>Undresser.AI Undress</h3>
												</a>
												<p>人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片</p>
											</div>
										</div>
																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411552797167.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="AI Clothes Remover" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_title">
													<h3>AI Clothes Remover</h3>
												</a>
												<p>用於從照片中去除衣服的線上人工智慧工具。</p>
											</div>
										</div>
																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411529149311.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Clothoff.io" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_title">
													<h3>Clothoff.io</h3>
												</a>
												<p>AI脫衣器</p>
											</div>
										</div>
																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/ai/video-swap" title="Video Face Swap" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173414504068133.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Video Face Swap" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/ai/video-swap" title="Video Face Swap" class="phpmain_tab2_mids_title">
													<h3>Video Face Swap</h3>
												</a>
												<p>使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!</p>
											</div>
										</div>
																</div>
								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
									<a href="http://www.miracleart.cn/zh-tw/ai">顯示更多</a>
								</div>
							</div>
						</div>
					


					<div   id="377j5v51b"   class="phpgenera_Details_mainR4">
						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
									src="/static/imghw/hotarticle2.png" alt="" />
								<h2>熱門(mén)文章</h2>
							</div>
							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796828723.html" title="Agnes Tachyon Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Agnes Tachyon Build Guide |漂亮的德比志</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>2 週前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796827210.html" title="Oguri Cap Build Guide |漂亮的德比志" class="phpgenera_Details_mainR4_bottom_title">Oguri Cap Build Guide |漂亮的德比志</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>2 週前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796821436.html" title="沙丘:覺(jué)醒 - 高級(jí)行星學(xué)家Quest演練" class="phpgenera_Details_mainR4_bottom_title">沙丘:覺(jué)醒 - 高級(jí)行星學(xué)家Quest演練</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>4 週前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796821278.html" title="約會(huì)一切:德克和哈珀關(guān)係指南" class="phpgenera_Details_mainR4_bottom_title">約會(huì)一切:德克和哈珀關(guān)係指南</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>1 個(gè)月前</span>
										<span>By Jack chen</span>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/1796821868.html" title="Palia:Rasquellywag的Riches Quest演練" class="phpgenera_Details_mainR4_bottom_title">Palia:Rasquellywag的Riches Quest演練</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<span>4 週前</span>
										<span>By DDD</span>
									</div>
								</div>
														</div>
							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
								<a href="http://www.miracleart.cn/zh-tw/article.html">顯示更多</a>
							</div>
						</div>
					</div>


											<div   id="377j5v51b"   class="phpgenera_Details_mainR3">
							<div   id="377j5v51b"   class="phpmain1_4R_readrank">
								<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/hottools2.png" alt="" />
									<h2>熱工具</h2>
								</div>
								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_bottom">
																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/92" title="記事本++7.3.1" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab96f0f39f7357.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="記事本++7.3.1" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/92" title="記事本++7.3.1" class="phpmain_tab2_mids_title">
													<h3>記事本++7.3.1</h3>
												</a>
												<p>好用且免費(fèi)的程式碼編輯器</p>
											</div>
										</div>
																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/93" title="SublimeText3漢化版" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab97a3baad9677.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3漢化版" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/93" title="SublimeText3漢化版" class="phpmain_tab2_mids_title">
													<h3>SublimeText3漢化版</h3>
												</a>
												<p>中文版,非常好用</p>
											</div>
										</div>
																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/121" title="禪工作室 13.0.1" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab97ecd1ab2670.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="禪工作室 13.0.1" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/121" title="禪工作室 13.0.1" class="phpmain_tab2_mids_title">
													<h3>禪工作室 13.0.1</h3>
												</a>
												<p>強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境</p>
											</div>
										</div>
																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58d0e0fc74683535.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Dreamweaver CS6" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_title">
													<h3>Dreamweaver CS6</h3>
												</a>
												<p>視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具</p>
											</div>
										</div>
																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
											<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/500" title="SublimeText3 Mac版" class="phpmain_tab2_mids_top_img">
												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58d34035e2757995.png?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 Mac版" />
											</a>
											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
												<a href="http://www.miracleart.cn/zh-tw/toolset/development-tools/500" title="SublimeText3 Mac版" class="phpmain_tab2_mids_title">
													<h3>SublimeText3 Mac版</h3>
												</a>
												<p>神級(jí)程式碼編輯軟體(SublimeText3)</p>
											</div>
										</div>
																	</div>
								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
									<a href="http://www.miracleart.cn/zh-tw/ai">顯示更多</a>
								</div>
							</div>
						</div>
										

					
					<div   id="377j5v51b"   class="phpgenera_Details_mainR4">
						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
									src="/static/imghw/hotarticle2.png" alt="" />
								<h2>熱門(mén)話題</h2>
							</div>
							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/gmailyxdlrkzn" title="gmail信箱登陸入口在哪裡" class="phpgenera_Details_mainR4_bottom_title">gmail信箱登陸入口在哪裡</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/eyess.png" alt="" />
											<span>8639</span>
										</div>
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/tiezi.png" alt="" />
											<span>17</span>
										</div>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/java-tutorial" title="Java教學(xué)" class="phpgenera_Details_mainR4_bottom_title">Java教學(xué)</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/eyess.png" alt="" />
											<span>1786</span>
										</div>
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/tiezi.png" alt="" />
											<span>16</span>
										</div>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/cakephp-tutor" title="CakePHP 教程" class="phpgenera_Details_mainR4_bottom_title">CakePHP 教程</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/eyess.png" alt="" />
											<span>1729</span>
										</div>
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/tiezi.png" alt="" />
											<span>56</span>
										</div>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/laravel-tutori" title="Laravel 教程" class="phpgenera_Details_mainR4_bottom_title">Laravel 教程</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/eyess.png" alt="" />
											<span>1581</span>
										</div>
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/tiezi.png" alt="" />
											<span>29</span>
										</div>
									</div>
								</div>
															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
									<a href="http://www.miracleart.cn/zh-tw/faq/php-tutorial" title="PHP教程" class="phpgenera_Details_mainR4_bottom_title">PHP教程</a>
									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/eyess.png" alt="" />
											<span>1445</span>
										</div>
										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
											<img src="/static/imghw/tiezi.png" alt="" />
											<span>31</span>
										</div>
									</div>
								</div>
														</div>
							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
								<a href="http://www.miracleart.cn/zh-tw/faq/zt">顯示更多</a>
							</div>
						</div>
					</div>
				</div>
			</div>
							<div   id="377j5v51b"   class="Article_Details_main2">
					<div   id="377j5v51b"   class="phpgenera_Details_mainL4">
						<div   id="377j5v51b"   class="phpmain1_2_top">
							<a href="javascript:void(0);" class="phpmain1_2_top_title">Related knowledge<img
									src="/static/imghw/index2_title2.png" alt="" /></a>
						</div>
						<div   id="377j5v51b"   class="phpgenera_Details_mainL4_info">

													<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796822063.html" title="Java vs. JavaScript:清除混亂" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175035046165294.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Java vs. JavaScript:清除混亂" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796822063.html" title="Java vs. JavaScript:清除混亂" class="phphistorical_Version2_mids_title">Java vs. JavaScript:清除混亂</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 20, 2025 am	 12:27 AM</span>
								<p class="Articlelist_txts_p">Java和JavaScript是不同的編程語(yǔ)言,各自適用於不同的應(yīng)用場(chǎng)景。 Java用於大型企業(yè)和移動(dòng)應(yīng)用開(kāi)發(fā),而JavaScript主要用於網(wǎng)頁(yè)開(kāi)發(fā)。</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796821632.html" title="JavaScript評(píng)論:簡(jiǎn)短說(shuō)明" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175026483186295.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript評(píng)論:簡(jiǎn)短說(shuō)明" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796821632.html" title="JavaScript評(píng)論:簡(jiǎn)短說(shuō)明" class="phphistorical_Version2_mids_title">JavaScript評(píng)論:簡(jiǎn)短說(shuō)明</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 19, 2025 am	 12:40 AM</span>
								<p class="Articlelist_txts_p">JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796827639.html" title="如何在JS中與日期和時(shí)間合作?" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/431/639/175130445135407.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="如何在JS中與日期和時(shí)間合作?" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796827639.html" title="如何在JS中與日期和時(shí)間合作?" class="phphistorical_Version2_mids_title">如何在JS中與日期和時(shí)間合作?</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jul 01, 2025 am	 01:27 AM</span>
								<p class="Articlelist_txts_p">JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開(kāi)始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問(wèn)題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見(jiàn)錯(cuò)誤。</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796828200.html" title="為什麼要將標(biāo)籤放在的底部?" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175139053194540.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="為什麼要將標(biāo)籤放在的底部?" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796828200.html" title="為什麼要將標(biāo)籤放在的底部?" class="phphistorical_Version2_mids_title">為什麼要將標(biāo)籤放在的底部?</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jul 02, 2025 am	 01:22 AM</span>
								<p class="Articlelist_txts_p">PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796822037.html" title="JavaScript與Java:開(kāi)發(fā)人員的全面比較" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175035006093854.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript與Java:開(kāi)發(fā)人員的全面比較" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796822037.html" title="JavaScript與Java:開(kāi)發(fā)人員的全面比較" class="phphistorical_Version2_mids_title">JavaScript與Java:開(kāi)發(fā)人員的全面比較</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 20, 2025 am	 12:21 AM</span>
								<p class="Articlelist_txts_p">JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796828191.html" title="什麼是在DOM中冒泡和捕獲的事件?" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175139034116786.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="什麼是在DOM中冒泡和捕獲的事件?" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796828191.html" title="什麼是在DOM中冒泡和捕獲的事件?" class="phphistorical_Version2_mids_title">什麼是在DOM中冒泡和捕獲的事件?</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jul 02, 2025 am	 01:19 AM</span>
								<p class="Articlelist_txts_p">事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。 1.事件捕獲通過(guò)addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助於精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796822137.html" title="JavaScript:探索用於高效編碼的數(shù)據(jù)類型" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175035157160537.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript:探索用於高效編碼的數(shù)據(jù)類型" />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796822137.html" title="JavaScript:探索用於高效編碼的數(shù)據(jù)類型" class="phphistorical_Version2_mids_title">JavaScript:探索用於高效編碼的數(shù)據(jù)類型</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 20, 2025 am	 12:46 AM</span>
								<p class="Articlelist_txts_p">javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)</p>
							</div>
														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
								<a href="http://www.miracleart.cn/zh-tw/faq/1796824597.html" title="如何減少JavaScript應(yīng)用程序的有效載荷大???" class="phphistorical_Version2_mids_img">
									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175087047055234.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="如何減少JavaScript應(yīng)用程序的有效載荷大?。? />
								</a>
								<a href="http://www.miracleart.cn/zh-tw/faq/1796824597.html" title="如何減少JavaScript應(yīng)用程序的有效載荷大???" class="phphistorical_Version2_mids_title">如何減少JavaScript應(yīng)用程序的有效載荷大???</a>
								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 26, 2025 am	 12:54 AM</span>
								<p class="Articlelist_txts_p">如果JavaScript應(yīng)用加載慢、性能差,問(wèn)題往往出在payload太大,解決方法包括:1.使用代碼拆分(CodeSplitting),通過(guò)React.lazy()或構(gòu)建工具將大bundle拆分為多個(gè)小文件,按需加載以減少首次下載量;2.移除未使用的代碼(TreeShaking),利用ES6模塊機(jī)制清除“死代碼”,確保引入的庫(kù)支持該特性;3.壓縮和合併資源文件,啟用Gzip/Brotli和Terser壓縮JS,合理合併文件並優(yōu)化靜態(tài)資源;4.替換重型依賴,選用輕量級(jí)庫(kù)如day.js、fetch</p>
							</div>
													</div>

													<a href="http://www.miracleart.cn/zh-tw/web-designer.html" class="phpgenera_Details_mainL4_botton">
								<span>See all articles</span>
								<img src="/static/imghw/down_right.png" alt="" />
							</a>
											</div>
				</div>
					</div>
	</main>
	<footer>
    <div   id="377j5v51b"   class="footer">
        <div   id="377j5v51b"   class="footertop">
            <img src="/static/imghw/logo.png" alt="">
            <p>公益線上PHP培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!</p>
        </div>
        <div   id="377j5v51b"   class="footermid">
            <a href="http://www.miracleart.cn/zh-tw/about/us.html">關(guān)於我們</a>
            <a href="http://www.miracleart.cn/zh-tw/about/disclaimer.html">免責(zé)聲明</a>
            <a href="http://www.miracleart.cn/zh-tw/update/article_0_1.html">Sitemap</a>
        </div>
        <div   id="377j5v51b"   class="footerbottom">
            <p>
                ? php.cn All rights reserved
            </p>
        </div>
    </div>
</footer>

<input type="hidden" id="verifycode" value="/captcha.html">




		<link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all' />
	
	
	
	
	

	
	






<footer>
<div class="friendship-link">
<p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
<a href="http://www.miracleart.cn/" title="国产av日韩一区二区三区精品">国产av日韩一区二区三区精品</a>

<div class="friend-links">


</div>
</div>

</footer>


<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
</body><div id="ctouk" class="pl_css_ganrao" style="display: none;"><pre id="ctouk"><sub id="ctouk"><meter id="ctouk"><thead id="ctouk"></thead></meter></sub></pre><ol id="ctouk"><strike id="ctouk"></strike></ol><label id="ctouk"><progress id="ctouk"><tt id="ctouk"><delect id="ctouk"></delect></tt></progress></label><small id="ctouk"></small><kbd id="ctouk"></kbd><b id="ctouk"><del id="ctouk"><mark id="ctouk"><noframes id="ctouk"></noframes></mark></del></b><address id="ctouk"></address><style id="ctouk"></style><nobr id="ctouk"><strong id="ctouk"><legend id="ctouk"></legend></strong></nobr><ruby id="ctouk"><em id="ctouk"></em></ruby><rt id="ctouk"><listing id="ctouk"><em id="ctouk"><samp id="ctouk"></samp></em></listing></rt><wbr id="ctouk"><output id="ctouk"><center id="ctouk"><small id="ctouk"></small></center></output></wbr><samp id="ctouk"></samp><meter id="ctouk"><ul id="ctouk"><form id="ctouk"></form></ul></meter><div id="ctouk"></div><optgroup id="ctouk"></optgroup><output id="ctouk"><center id="ctouk"><tr id="ctouk"></tr></center></output><delect id="ctouk"></delect><strike id="ctouk"></strike><i id="ctouk"></i><object id="ctouk"></object><option id="ctouk"></option><font id="ctouk"><address id="ctouk"><style id="ctouk"><sub id="ctouk"></sub></style></address></font><xmp id="ctouk"><source id="ctouk"><strike id="ctouk"></strike></source></xmp><label id="ctouk"></label><label id="ctouk"></label><cite id="ctouk"><strong id="ctouk"></strong></cite><strong id="ctouk"></strong><rt id="ctouk"><listing id="ctouk"><em id="ctouk"></em></listing></rt><p id="ctouk"></p><pre id="ctouk"></pre><p id="ctouk"></p><listing id="ctouk"><cite id="ctouk"><object id="ctouk"></object></cite></listing><li id="ctouk"></li><i id="ctouk"></i><delect id="ctouk"></delect><thead id="ctouk"></thead><track id="ctouk"></track><bdo id="ctouk"></bdo><abbr id="ctouk"><delect id="ctouk"></delect></abbr><samp id="ctouk"></samp><div id="ctouk"><th id="ctouk"><cite id="ctouk"><ins id="ctouk"></ins></cite></th></div><kbd id="ctouk"></kbd><td id="ctouk"><em id="ctouk"></em></td><output id="ctouk"><progress id="ctouk"><sub id="ctouk"></sub></progress></output><strike id="ctouk"><cite id="ctouk"></cite></strike><dfn id="ctouk"><style id="ctouk"></style></dfn><dd id="ctouk"></dd><delect id="ctouk"></delect><strong id="ctouk"></strong><em id="ctouk"></em><abbr id="ctouk"><samp id="ctouk"><tt id="ctouk"><thead id="ctouk"></thead></tt></samp></abbr><dfn id="ctouk"></dfn><blockquote id="ctouk"><dfn id="ctouk"><tr id="ctouk"><span id="ctouk"></span></tr></dfn></blockquote><thead id="ctouk"><pre id="ctouk"><ol id="ctouk"><p id="ctouk"></p></ol></pre></thead><abbr id="ctouk"><dfn id="ctouk"><ol id="ctouk"><form id="ctouk"></form></ol></dfn></abbr><kbd id="ctouk"><address id="ctouk"><b id="ctouk"></b></address></kbd><label id="ctouk"></label><option id="ctouk"><abbr id="ctouk"><tbody id="ctouk"><xmp id="ctouk"></xmp></tbody></abbr></option><meter id="ctouk"></meter><nobr id="ctouk"><noframes id="ctouk"><label id="ctouk"></label></noframes></nobr><legend id="ctouk"></legend><pre id="ctouk"><form id="ctouk"><acronym id="ctouk"></acronym></form></pre><big id="ctouk"><thead id="ctouk"><fieldset id="ctouk"></fieldset></thead></big><small id="ctouk"></small><wbr id="ctouk"><tfoot id="ctouk"><pre id="ctouk"><form id="ctouk"></form></pre></tfoot></wbr><sub id="ctouk"><dd id="ctouk"><dfn id="ctouk"></dfn></dd></sub><video id="ctouk"></video><li id="ctouk"></li><nav id="ctouk"><acronym id="ctouk"><div id="ctouk"></div></acronym></nav><tbody id="ctouk"></tbody><ins id="ctouk"></ins><del id="ctouk"><var id="ctouk"></var></del><ins id="ctouk"><big id="ctouk"><tr id="ctouk"></tr></big></ins><acronym id="ctouk"><em id="ctouk"></em></acronym><form id="ctouk"><td id="ctouk"><object id="ctouk"><fieldset id="ctouk"></fieldset></object></td></form><em id="ctouk"></em><thead id="ctouk"><del id="ctouk"></del></thead><menuitem id="ctouk"><del id="ctouk"></del></menuitem><strong id="ctouk"></strong><dl id="ctouk"><output id="ctouk"></output></dl><dfn id="ctouk"><th id="ctouk"><delect id="ctouk"><pre id="ctouk"></pre></delect></th></dfn><pre id="ctouk"></pre><th id="ctouk"></th><nav id="ctouk"><delect id="ctouk"></delect></nav><abbr id="ctouk"><rp id="ctouk"><div id="ctouk"></div></rp></abbr><strike id="ctouk"></strike><ruby id="ctouk"></ruby><table id="ctouk"></table><progress id="ctouk"></progress><fieldset id="ctouk"></fieldset><rp id="ctouk"><pre id="ctouk"><sup id="ctouk"><tbody id="ctouk"></tbody></sup></pre></rp><pre id="ctouk"><option id="ctouk"></option></pre><mark id="ctouk"></mark><big id="ctouk"><form id="ctouk"></form></big><nobr id="ctouk"></nobr><mark id="ctouk"><progress id="ctouk"><tfoot id="ctouk"></tfoot></progress></mark><meter id="ctouk"></meter><thead id="ctouk"></thead><menuitem id="ctouk"></menuitem></div>

</html>