ggjgEeNW-#KL&6|>YlWI-f|Y?l)s~T-(tE~mg$|h)
zC^0!JZV6EH_e6wbc6S)zm~G<1&wEFgY&Za1%IaVZ)RO3dsfoNlp4uP%<#kaOiY)QY
zV^c78vHe3Q?lG1=+uz+Av#dyBQK0lXLScDlYOMapVO;>(OD(EJZmsP>QN#i2G;?tc
z?$zSVjo=!_Qr=I0ZKq%vb=Oe$^F5dQJHX(@9}zNL!_7OZTzR|;Smg-PO{I}<{}5?>
zO*VMAuc_7;)KLSsMlSevTVv?P#%HUt{}KaPeDk4&4nFtE$uV}T!LmPm_CuhnIR`mW6Pou7>Q|LN0-^vDNGBRUU3vh(bSRn@RW
z4K-pdu$}-WxhfXUHO@hPP+LnCJ3=r6d~V28>U3+;vz&u*fODnyCNExkqr9>D@)Uua
zXgf{64N3l*29Ryufjs?Vcd5e_hh)!toyx;tvv^%FMMg^nK$SdCOmdTU)y
zXPO2AGy+a$hqlt@i!oFtTbCXJ^{tiX_XY91pyn$}7d$^SUB)w%_+^-kIY`HKOLxWQ
zu-hFVYUmH;lJ^bJ$`ga)zd4*zyO-17IY$8ZicNfo!7@nNp7-_I<(cklZb}Yy+*o0T
z#Wvq)4rRk1yMK}ZX01PLU0q95r?;7R@uCbi;*Z;DN;AryRHyG1PxaUgilh6(k9|hG_M%A}Gl*2Y(DaS5`B-a_4Q8E2Bi))&<7~i_YYSs
zLI^nE!Z&g3*XNeMW2#|$bvUY=c?V&4kER~}@o+VT!7KariZs>jxGzp=urzR6bfQ+K
zW&U+ZJL$?0v_sTFA2EzR*MRyX{eiA}tamZ5K}SQBI^J)m8Z5me#o%>i^)A!FVEvvA
zxYw-AzdTe=S{tac+wQ3IPc1bZ|A7~4P2+;YkwKum`jTUl1>q`bbKKo3{5h~^a@#{Y
z;C(?k-p5<0oj^=QocIkA>$$ShTas`5TshUgXqPsTY}A#>8QZ1|xR!Bb7gI`yr^130
z*j%-yr%{+!$dZMBV=ASIYQ6VkuZPVo`V{&cxtd1Z2MfgyOV<9yxg`3PnpGvlMY1(C
zTp~+pt^JB5`(QTf1f#Gex!V-fU>L8xq4O3Ai4!=-RgSTJp9%A=pJdU>_eC33VrTIR
z=!#6E^vGG)9Odwjv;-$WO=4Gw->=iY!H=sm`qR^6g(rC462>;<{9p5$4tCKc#w&Ca40#6VPG(6W
zyIjRGJpaDC<7~asL%8Qo^SZwdp3jFf2m*F33hmj
zbtWppp;)ArVyA;=g`vi7g5A0uX;BzWD8Aw^K^5v{Gzc^lzEn^xBUf>wrs;h1nro0#
zuzfh6x8mS_0xrEUwWm`DXByZ?NJOxq@=G!1o$|l1X8UjHdGl>2Rq~ci(GvoSHBLf0_akyH!
z{NJD5h-cvb2r7Ot`a!M>4Tqp^_eEqE+A*UsN5=^3r`VWwpRCUjD^$3%lRu_B*Sw{Xr8G
literal 0
HcmV?d00001
From b292cf165bd913bc4b23441a1e394209e9766e78 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 00:38:52 +0900
Subject: [PATCH 67/82] =?UTF-8?q?2024/03/08=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/api/pannernode/orientationy/index.md | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 files/ja/web/api/pannernode/orientationy/index.md
diff --git a/files/ja/web/api/pannernode/orientationy/index.md b/files/ja/web/api/pannernode/orientationy/index.md
new file mode 100644
index 00000000000000..3fba11db006a5e
--- /dev/null
+++ b/files/ja/web/api/pannernode/orientationy/index.md
@@ -0,0 +1,39 @@
+---
+title: "PannerNode: orientationY プロパティ"
+short-title: orientationY
+slug: Web/API/PannerNode/orientationY
+l10n:
+ sourceCommit: 1a91b0b63f0cbaca9125bd48d4e5bc8afed2a7a3
+---
+
+{{ APIRef("Web Audio API") }}
+
+**`orientationY`** は {{ domxref("PannerNode") }} インターフェイスのプロパティで、音声ソースが向いている方向の Y (垂直)成分を 3D 直交座標空間で表示します。
+
+完全ベクトルは ({{domxref("PannerNode.positionX", "positionX")}}、{{domxref("PannerNode.positionY", "positionY")}}、{{domxref("PannerNode.positionZ", "positionZ")}}) として与えられた音声ソースの位置と、({{domxref("PannerNode.orientationX", "orientationX")}}、{{domxref("PannerNode.orientationY", "orientationY")}}、{{domxref("PannerNode.orientationZ", "orientationZ")}}) として与えられた音声ソースの向き (つまり、音声ソースが向いている方向) によって定義されます。
+
+音の指向性({{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}}、{{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}}、{{domxref("PannerNode.coneOuterGain", "coneOuterGain")}} の属性を使用して指定されている)に応じて、音の方向 (orientation) は、再生中の音が知覚される音量を変化させることがあります。音が聞き手の方に向けられている場合は、聞き手から離れたところに向けられている場合よりも大きな音になります。
+
+このプロパティに含まれる {{domxref("AudioParam")}} は読み取り専用ですが、{{domxref("AudioParam.value")}} プロパティに新しい値を代入することで、引数の値を変更できます。
+
+## 値
+
+{{domxref("AudioParam")}} の `value` は、音声ソースが向いている方向の Y 成分であり、3D 直交座標空間での値です。
+
+## 例
+
+例のコードの付いては [`PannerNode.orientationX`](/ja/docs/Web/API/PannerNode/orientationX#例) を参照してください。これは、 {{domxref("PannerNode")}} の方向引数を {{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}} および {{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}} と結合して変更した場合の体積への影響を示しています。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
+- {{domxref("PannerNode")}}
From 408212bf29d706d2e0838e95243fe25066531395 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 00:42:06 +0900
Subject: [PATCH 68/82] =?UTF-8?q?2024/03/08=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/api/pannernode/orientationz/index.md | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 files/ja/web/api/pannernode/orientationz/index.md
diff --git a/files/ja/web/api/pannernode/orientationz/index.md b/files/ja/web/api/pannernode/orientationz/index.md
new file mode 100644
index 00000000000000..63dbc15e56e86c
--- /dev/null
+++ b/files/ja/web/api/pannernode/orientationz/index.md
@@ -0,0 +1,39 @@
+---
+title: "PannerNode: orientationZ プロパティ"
+short-title: orientationZ
+slug: Web/API/PannerNode/orientationZ
+l10n:
+ sourceCommit: 1a91b0b63f0cbaca9125bd48d4e5bc8afed2a7a3
+---
+
+{{ APIRef("Web Audio API") }}
+
+**`orientationY`** は {{ domxref("PannerNode") }} インターフェイスのプロパティで、音声ソースが向いている方向の Z (奥行)成分を 3D 直交座標空間で表示します。
+
+完全ベクトルは ({{domxref("PannerNode.positionX", "positionX")}}、{{domxref("PannerNode.positionY", "positionY")}}、{{domxref("PannerNode.positionZ", "positionZ")}}) として与えられた音声ソースの位置と、({{domxref("PannerNode.orientationX", "orientationX")}}、{{domxref("PannerNode.orientationY", "orientationY")}}、{{domxref("PannerNode.orientationZ", "orientationZ")}}) として与えられた音声ソースの向き (つまり、音声ソースが向いている方向) によって定義されます。
+
+音の指向性({{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}}、{{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}}、{{domxref("PannerNode.coneOuterGain", "coneOuterGain")}} の属性を使用して指定されている)に応じて、音の方向 (orientation) は、再生中の音が知覚される音量を変化させることがあります。音が聞き手の方に向けられている場合は、聞き手から離れたところに向けられている場合よりも大きな音になります。
+
+このプロパティに含まれる {{domxref("AudioParam")}} は読み取り専用ですが、{{domxref("AudioParam.value")}} プロパティに新しい値を代入することで、引数の値を変更できます。
+
+## 値
+
+{{domxref("AudioParam")}} の `value` は、音声ソースが向いている方向の Z 成分であり、3D 直交座標空間での値です。
+
+## 例
+
+例のコードの付いては [`PannerNode.orientationX`](/ja/docs/Web/API/PannerNode/orientationX#例) を参照してください。これは、 {{domxref("PannerNode")}} の方向引数を {{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}} および {{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}} と結合して変更した場合の体積への影響を示しています。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
+- {{domxref("PannerNode")}}
From a309397bd2550f614a32be633bc87a237101aad6 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 00:45:32 +0900
Subject: [PATCH 69/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/api/pannernode/panningmodel/index.md | 36 +++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 files/ja/web/api/pannernode/panningmodel/index.md
diff --git a/files/ja/web/api/pannernode/panningmodel/index.md b/files/ja/web/api/pannernode/panningmodel/index.md
new file mode 100644
index 00000000000000..f6d7f9f8334554
--- /dev/null
+++ b/files/ja/web/api/pannernode/panningmodel/index.md
@@ -0,0 +1,36 @@
+---
+title: "PannerNode: panningModel プロパティ"
+short-title: panningModel
+slug: Web/API/PannerNode/panningModel
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{ APIRef("Web Audio API") }}
+
+`panningModel` は {{ domxref("PannerNode") }} インターフェイスのプロパティで、 3D 空間で音声を配置するために使用する空間化アルゴリズムを決定する列挙値です。
+
+取りうる値は次の通りです。
+
+- `equalpower`: 一般に単純で効率的と見なされる等出力のパンニングアルゴリズムを表します。 `equalpower` が既定値です。
+- `HRTF`: `equalpower` よりも高品質なステレオ出力をレンダリングします。人間の被験者から測定したインパルスレスポンスによるコンボリューションを使用します。
+
+## 値
+
+列挙値です。 [`PanningModelType`](https://webaudio.github.io/web-audio-api/#idl-def-PanningModelType) を参照してください。
+
+## 例
+
+例のコードのについては [`BaseAudioContext.createPanner()`](/ja/docs/Web/API/BaseAudioContext/createPanner#examples) を参照してください。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
From 233a51573063017583c662809dd5e353341d5e0e Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 00:54:28 +0900
Subject: [PATCH 70/82] =?UTF-8?q?2024/03/08=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ja/web/api/pannernode/positionx/index.md | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 files/ja/web/api/pannernode/positionx/index.md
diff --git a/files/ja/web/api/pannernode/positionx/index.md b/files/ja/web/api/pannernode/positionx/index.md
new file mode 100644
index 00000000000000..8bb55519706133
--- /dev/null
+++ b/files/ja/web/api/pannernode/positionx/index.md
@@ -0,0 +1,54 @@
+---
+title: "PannerNode: positionX プロパティ"
+short-title: positionX
+slug: Web/API/PannerNode/positionX
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{ APIRef("Web Audio API") }}
+
+**`positionX`** は {{ domxref("PannerNode")}} インターフェイスのプロパティで、水平軸(左右)に対応する、 3D 直交座標での音声ソースの位置の X 座標を指定します。
+
+完全にベクトルを定義するのは、 ({{domxref("PannerNode.positionX", "positionX")}}, {{domxref("PannerNode.positionY", "positionY")}}, {{domxref("PannerNode.positionZ", "positionZ")}}) で指定された音声ソースの位置と、 ({{domxref("PannerNode.orientationX", "orientationX")}}, {{domxref("PannerNode.orientationY", "orientationY")}}, {{domxref("PannerNode.orientationZ", "orientationZ")}}) で指定された音声ソースの方向(つまり、それが向いている方向)です。
+
+音の指向性(属性 {{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}}, {{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}}, {{domxref("PannerNode.coneOuterGain", "codeOuterGain")}} を使用して指定)によって、使用する音の方向が、知覚される音量を変えるこ とがあります。音が聞き手の方を向いている場合は、音が聞き手から離れている場合よりも大きくなります。
+
+このプロパティが保持している {{domxref("AudioParam")}} は読み取り専用ですが、 {{domxref("AudioParam.value")}} プロパティに新しい値を割り当てることで、引数の値を変更することができます。
+
+## 値
+
+{{domxref("AudioParam")}} で、その `value` は音声ソースの位置の X 座標(3D 直交座標)です。既定値は 0 です。
+
+## 例
+
+次の例は発振器を発振し、 1 秒後に左に、 2 秒後に右に、 3 秒後に中央にパンします。
+
+```js
+const context = new AudioContext();
+
+const osc = new OscillatorNode(context);
+const panner = new PannerNode(context);
+
+panner.positionX.setValueAtTime(-1, context.currentTime + 1);
+panner.positionX.setValueAtTime(1, context.currentTime + 2);
+panner.positionX.setValueAtTime(0, context.currentTime + 3);
+
+osc.connect(panner).connect(context.destination);
+
+osc.start(0);
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
+- {{domxref("PannerNode")}}
From a26e1bc7e4103a85e011944a09400ada7146669a Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 00:59:08 +0900
Subject: [PATCH 71/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ja/web/api/pannernode/positiony/index.md | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 files/ja/web/api/pannernode/positiony/index.md
diff --git a/files/ja/web/api/pannernode/positiony/index.md b/files/ja/web/api/pannernode/positiony/index.md
new file mode 100644
index 00000000000000..f4ca52ed4560a2
--- /dev/null
+++ b/files/ja/web/api/pannernode/positiony/index.md
@@ -0,0 +1,53 @@
+---
+title: "PannerNode: positionY プロパティ"
+short-title: positionY
+slug: Web/API/PannerNode/positionY
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{ APIRef("Web Audio API") }}
+
+**`positionY`** は {{ domxref("PannerNode")}} インターフェイスのプロパティで、垂直軸(上下)に対応する、 3D 直交座標での音声ソースの位置の Y 座標を指定します。完全にベクトルを定義するのは、 ({{domxref("PannerNode.positionX", "positionX")}}, {{domxref("PannerNode.positionY", "positionY")}}, {{domxref("PannerNode.positionZ", "positionZ")}}) で指定された音声ソースの位置と、 ({{domxref("PannerNode.orientationX", "orientationX")}}, {{domxref("PannerNode.orientationY", "orientationY")}}, {{domxref("PannerNode.orientationZ", "orientationZ")}}) で指定された音声ソースの方向(つまり、それが向いている方向)です。
+
+音の指向性(属性 {{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}}, {{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}}, {{domxref("PannerNode.coneOuterGain", "codeOuterGain")}} を使用して指定)によって、使用する音の方向が、知覚される音量を変えることがあります。音が聞き手の方を向いている場合は、音が聞き手から離れている場合よりも大きくなります。
+
+このプロパティが保持している {{domxref("AudioParam")}} は読み取り専用ですが、 {{domxref("AudioParam.value")}} プロパティに新しい値を割り当てることで、引数の値を変更することができます。
+
+## 値
+
+{{domxref("AudioParam")}} で、その `value` は音声ソースの位置の Y 座標(3D 直交座標)です。既定値は 0 です。
+
+## 例
+
+次の例は、発振器を開始し、 1 秒後にリスナーの上へ、 2 秒後にリスナーの下へ、 3 秒後に中央へパンします。この場合、単純なモノラル波なので、変化は主に発振器の音色に影響することに注意してください。
+
+```js
+const context = new AudioContext();
+
+const osc = new OscillatorNode(context);
+const panner = new PannerNode(context);
+panner.panningModel = "HRTF";
+
+panner.positionY.setValueAtTime(1, context.currentTime + 1);
+panner.positionY.setValueAtTime(-1, context.currentTime + 2);
+panner.positionY.setValueAtTime(0, context.currentTime + 3);
+
+osc.connect(panner).connect(context.destination);
+
+osc.start(0);
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
+- {{domxref("PannerNode")}}
From d608dfb158b355cbbcdb29b9190a41b3944c53d9 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Thu, 21 Mar 2024 02:46:02 +0900
Subject: [PATCH 72/82] =?UTF-8?q?2024/03/08=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3=20(#18725)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 2024/03/08 時点の英語版に基づき新規翻訳
* Update files/ja/web/api/pannernode/positionz/index.md
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
.../ja/web/api/pannernode/positionz/index.md | 56 +++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 files/ja/web/api/pannernode/positionz/index.md
diff --git a/files/ja/web/api/pannernode/positionz/index.md b/files/ja/web/api/pannernode/positionz/index.md
new file mode 100644
index 00000000000000..ff684d33f76aa4
--- /dev/null
+++ b/files/ja/web/api/pannernode/positionz/index.md
@@ -0,0 +1,56 @@
+---
+title: "PannerNode: positionZ プロパティ"
+short-title: positionZ
+slug: Web/API/PannerNode/positionZ
+l10n:
+ sourceCommit: 1a91b0b63f0cbaca9125bd48d4e5bc8afed2a7a3
+---
+
+{{ APIRef("Web Audio API") }}
+
+**`positionZ`** は {{ domxref("PannerNode")}} インターフェイスのプロパティで、奥行軸(背後とリスナーの前)に対応する、 3D 直交座標での音声ソースの位置の Z 座標を指定します。完全にベクトルを定義するのは、 ({{domxref("PannerNode.positionX", "positionX")}}, {{domxref("PannerNode.positionY", "positionY")}}, {{domxref("PannerNode.positionZ", "positionZ")}}) で指定された音声ソースの位置と、 ({{domxref("PannerNode.orientationX", "orientationX")}}, {{domxref("PannerNode.orientationY", "orientationY")}}, {{domxref("PannerNode.orientationZ", "orientationZ")}}) で指定された音声ソースの方向(つまり、それが向いている方向)です。
+
+音の指向性(属性 {{domxref("PannerNode.coneInnerAngle", "coneInnerAngle")}}, {{domxref("PannerNode.coneOuterAngle", "coneOuterAngle")}}, {{domxref("PannerNode.coneOuterGain", "codeOuterGain")}} を使用して指定)によって、使用する音の方向が、知覚される音量を変えるこ とがあります。音が聞き手の方を向いている場合は、音が聞き手から離れている場合よりも大きくなります。
+
+このプロパティが保持している {{domxref("AudioParam")}} は読み取り専用ですが、 {{domxref("AudioParam.value")}} プロパティに新しい値を割り当てることで、引数の値を変更することができます。
+
+## 値
+
+{{domxref("AudioParam")}} で、その `value` は音声ソースの位置の Z 座標(3D 直交座標)です。既定値は 0 です。
+
+## 例
+
+次の例では、発振器を開始させ、 1 秒後にリスナーの前に移動させ、 2 秒後にリスナーの後ろに移動させ、 3 秒後にリスナーの位置に戻します。
+1 秒後にリスナーの前へ、 2 つ目にリスナーの後ろへ、 3 つ目にリスナーの位置へ戻ります。
+3 つ目。この場合、変化は主に音色と音量に影響することに注意してください。
+音の大きさに影響します。
+
+```js
+const context = new AudioContext();
+
+const osc = new OscillatorNode(context);
+const panner = new PannerNode(context);
+panner.panningModel = "HRTF";
+
+panner.positionZ.setValueAtTime(1, context.currentTime + 1);
+panner.positionZ.setValueAtTime(-1, context.currentTime + 2);
+panner.positionZ.setValueAtTime(0, context.currentTime + 3);
+
+osc.connect(panner).connect(context.destination);
+
+osc.start(0);
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
+- {{domxref("PannerNode")}}
From 1f36f0150e4a186551b33c127e93115d0da784b2 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 01:15:45 +0900
Subject: [PATCH 73/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/api/pannernode/refdistance/index.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 files/ja/web/api/pannernode/refdistance/index.md
diff --git a/files/ja/web/api/pannernode/refdistance/index.md b/files/ja/web/api/pannernode/refdistance/index.md
new file mode 100644
index 00000000000000..7ddf0c028ed032
--- /dev/null
+++ b/files/ja/web/api/pannernode/refdistance/index.md
@@ -0,0 +1,77 @@
+---
+title: "PannerNode: refDistance プロパティ"
+short-title: refDistance
+slug: Web/API/PannerNode/refDistance
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{ APIRef("Web Audio API") }}
+
+`refDistance` は {{ domxref("PannerNode") }} インターフェイスのプロパティで、音声ソースがリスナーから遠ざかるにつれて音量を縮小する参照距離、つまり音量の縮小が効果を始める距離を表す倍精度浮動小数点値です。この値は、すべての距離モデルで使用します。
+
+`refDistance` プロパティの既定値は `1` です。
+
+## 値
+
+非負の数値。値を 0 未満に設定すると {{jsxref("RangeError")}} が発生します。
+
+### 例外
+
+- {{jsxref("RangeError")}}
+ - : プロパティに受け入れられる範囲外の値が指定された場合に発生します。
+
+## 例
+
+この例では、{{ domxref("PannerNode.refDistance", "refDistance") }} の値を変えることで、音が聞き手から遠ざかるにつれて音量が減衰する様子を示します。 {{ domxref("PannerNode.rolloffFactor", "rolloffFactor") }} とは異なり、この値を変えると、音が参照点を通過するまで音量の減衰されます。
+
+```js
+const context = new AudioContext();
+// all our test tones will last this many seconds
+const NOTE_LENGTH = 6;
+// this is how far we'll move the sound
+const Z_DISTANCE = 20;
+
+// this function creates a graph for the test tone with a given refDistance
+// and schedules it to move away from the listener along the Z (depth-wise) axis
+// at the given start time, resulting in a decrease in volume (decay)
+const scheduleTestTone = (refDistance, startTime) => {
+ const osc = new OscillatorNode(context);
+
+ const panner = new PannerNode(context);
+ panner.refDistance = refDistance;
+
+ // set the initial Z position, then schedule the ramp
+ panner.positionZ.setValueAtTime(0, startTime);
+ panner.positionZ.linearRampToValueAtTime(Z_DISTANCE, startTime + NOTE_LENGTH);
+
+ osc.connect(panner).connect(context.destination);
+
+ osc.start(startTime);
+ osc.stop(startTime + NOTE_LENGTH);
+};
+
+// this tone should decay immediately and fairly quickly
+scheduleTestTone(1, context.currentTime);
+// this tone should decay slower and later than the previous one
+scheduleTestTone(4, context.currentTime + NOTE_LENGTH);
+// this tone should decay only slightly, and only start decaying fairly late
+scheduleTestTone(7, context.currentTime + NOTE_LENGTH * 2);
+```
+
+このコードを実行すると、波形は次のようになります。
+
+![ウェブオーディオで生み出される、 3 つの発振器音の波形を視覚化したものです。それぞれの発振器は同じ速度でリスナーから遠ざかっていきますが、 refDistances が異なるため、結果として音量が減衰します。](screen_shot_2018-10-11_at_23.14.32.png)
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
From d14e09ad0fcc794de44bb5cc176171443edf7fd6 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 01:25:14 +0900
Subject: [PATCH 74/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/api/pannernode/rollofffactor/index.md | 82 +++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 files/ja/web/api/pannernode/rollofffactor/index.md
diff --git a/files/ja/web/api/pannernode/rollofffactor/index.md b/files/ja/web/api/pannernode/rollofffactor/index.md
new file mode 100644
index 00000000000000..52d0e3befc4be9
--- /dev/null
+++ b/files/ja/web/api/pannernode/rollofffactor/index.md
@@ -0,0 +1,82 @@
+---
+title: "PannerNode: rolloffFactor プロパティ"
+short-title: rolloffFactor
+slug: Web/API/PannerNode/rolloffFactor
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{ APIRef("Web Audio API") }}
+
+`rolloffFactor` は {{ domxref("PannerNode") }} インターフェイスのプロパティで、ソースがリスナーから離れるにつれて音量が縮小する速さを記述する倍精度浮動小数点値です。この値はすべての距離モデルで使用します。 `rolloffFactor` プロパティの既定値は `1` です。
+
+## 値
+
+数値で、その範囲はパナーの {{ domxref("PannerNode.distanceModel", "distanceModel") }} によって変わり、以下の通りとなります(負の値は許されません)。
+
+- "`linear`"
+ - : 0 から 1 までの範囲です。
+- "`inverse`"
+ - : 0 から `Infinity` までの範囲です。
+- "`exponential`"
+ - : 0 から `Infinity` までの範囲です。
+
+### 例外
+
+- {{jsxref("RangeError")}}
+ - : プロパティに受け入れられる範囲外の値が指定された場合に発生します。
+
+## 例
+
+この例では、 {{ domxref("PannerNode.rolloffFactor", "rolloffFactor") }} の値の違いによって、リスナーからの距離が離れるにつれて、テストトーンの音量がどのように減少していくかを示しています:
+
+```js
+const context = new AudioContext();
+// all our test tones will last this many seconds
+const NOTE_LENGTH = 4;
+// this is how far we'll move the sound
+const Z_DISTANCE = 20;
+
+// this function creates a graph for the test tone with a given rolloffFactor
+// and schedules it to move away from the listener along the Z (depth-wise) axis
+// at the given start time, resulting in a decrease in volume (decay)
+const scheduleTestTone = (rolloffFactor, startTime) => {
+ const osc = new OscillatorNode(context);
+
+ const panner = new PannerNode(context);
+ panner.rolloffFactor = rolloffFactor;
+
+ // set the initial Z position, then schedule the ramp
+ panner.positionZ.setValueAtTime(0, startTime);
+ panner.positionZ.linearRampToValueAtTime(Z_DISTANCE, startTime + NOTE_LENGTH);
+
+ osc.connect(panner).connect(context.destination);
+
+ osc.start(startTime);
+ osc.stop(startTime + NOTE_LENGTH);
+};
+
+// this tone should decay fairly quickly
+scheduleTestTone(1, context.currentTime);
+// this tone should decay slower than the previous one
+scheduleTestTone(0.5, context.currentTime + NOTE_LENGTH);
+// this tone should decay only slightly
+scheduleTestTone(0.1, context.currentTime + NOTE_LENGTH * 2);
+```
+
+このコードを実行すると、波形は次のようになります:
+
+![ウェブオーディオでは、 3 つの発振器の音色を波形で視覚化しています。各発振器は同じ速度で遠ざかりますが、 RolloffFactors が異なるため、音量が減衰します。](screen_shot_2018-10-11_at_23.22.37.png)
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
+- [ウェブオーディオ空間化の基本](/ja/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics)
From 82eb7ad63a6407eb4045692dc5c7d91be16a1e50 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 01:41:06 +0900
Subject: [PATCH 75/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ja/web/api/pannernode/pannernode/index.md | 89 +++++++++++++++++++
1 file changed, 89 insertions(+)
create mode 100644 files/ja/web/api/pannernode/pannernode/index.md
diff --git a/files/ja/web/api/pannernode/pannernode/index.md b/files/ja/web/api/pannernode/pannernode/index.md
new file mode 100644
index 00000000000000..4a0ace2011f525
--- /dev/null
+++ b/files/ja/web/api/pannernode/pannernode/index.md
@@ -0,0 +1,89 @@
+---
+title: "PannerNode: PannerNode() コンストラクター"
+short-title: PannerNode()
+slug: Web/API/PannerNode/PannerNode
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{APIRef("Web Audio API")}}
+
+**`PannerNode()`** は[ウェブオーディオ API](/ja/docs/Web/API/Web_Audio_API) のコンストラクターで、新しい {{domxref("PannerNode")}} オブジェクトインスタンスを生成します。
+
+## 構文
+
+```js-nolint
+new PannerNode(context)
+new PannerNode(context, options)
+```
+
+### 引数
+
+- `context`
+ - : ノードを関連付けたい音声コンテキストを表す {{domxref("BaseAudioContext")}} です。
+- `options` {{optional_inline}}
+
+ - : `PannerNode` に設定したいプロパティを定義する [`PannerOptions`](https://webaudio.github.io/web-audio-api/#idl-def-PannerOptions) 辞書オブジェクトです。
+
+ - `panningModel`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.panningModel")}} (既定値は `equalpower` です。)
+ - `distanceModel`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.distanceModel")}} (既定値は `inverse` です。)
+ - `positionX`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.positionX")}} (既定値は `0` です。)
+ - `positionY`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.positionY")}} (既定値は `0` です。)
+ - `positionZ`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.positionZ")}} (既定値は `0` です。)
+ - `orientationX`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.orientationX")}} (既定値は `1` です。)
+ - `orientationY`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.orientationY")}} (既定値は `0` です。)
+ - `orientationZ`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.orientationZ")}} (既定値は `0` です。)
+ - `refDistance`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.refDistance")}} です。既定値は `1` であり、負の値は許可されません。
+ - `maxDistance`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.maxDistance")}} です。既定値は `10000` であり、正でない値は許可されません。
+ - `rolloffFactor`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.rolloffFactor")}} です。既定値は `1` であり、負の値は許可されません。
+ - `coneInnerAngle`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.coneInnerAngle")}} (既定値は `360` です。)
+ - `coneOuterAngle`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.coneOuterAngle")}} (既定値は `360` です。)
+ - `coneOuterGain`
+ - : {{domxref("PannerNode")}} に設定したい {{domxref("PannerNode.coneOuterGain")}} です。既定値は `0` であり、値は 0 ~ 1 の範囲を取ることができます。
+ - `channelCount`
+ - : ノードへの任意の入力への[アップミキシングとダウンミキシング](/ja/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#up-mixing_and_down-mixing)接続時に使用するチャンネル数を決定するための整数を表します。(詳細は {{domxref("AudioNode.channelCount")}} を参照してください。)使用法と正確な定義は `channelCountMode` の値に依存します。
+ - `channelCountMode`
+ - : ノードの入出力間でチャンネルを照合する方法を記述する列挙値を表します。(既定値を含む詳細は {{domxref("AudioNode.channelCountMode")}} を参照してください。)
+ - `channelInterpretation`
+ - : チャンネルの意味を記述する列挙値を表します。この解釈によって、音声の[アップミキシングやダウンミキシング](/ja/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#up-mixing_and_down-mixing)がどのように行われるかを定義します。可能な値は "speakers" または "discrete" です。(既定値を含む詳細は {{domxref("AudioNode.channelCountMode")}} を参照してください。)
+
+### 例外
+
+- {{jsxref("RangeError")}}
+ - : `refDistance`、`maxDistance`、`rolloffFactor` プロパティに受け入れられる範囲外の値が指定された場合に発生します。
+- `InvalidStateError` {{domxref("DOMException")}}
+ - : `coneOuterGain` プロパティに受け入れられる範囲外 (0 ~ 1) の値が指定された場合に発生します。
+
+## 例
+
+```js
+const ctx = new AudioContext();
+
+const options = {
+ positionX: 1,
+ maxDistance: 5000,
+};
+
+const myPanner = new PannerNode(ctx, options);
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
From 43325e11862de796b1496fbff1af5d99cf1156f3 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 01:46:23 +0900
Subject: [PATCH 76/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/pannernode/setorientation/index.md | 52 +++++++++++++++++++
1 file changed, 52 insertions(+)
create mode 100644 files/ja/web/api/pannernode/setorientation/index.md
diff --git a/files/ja/web/api/pannernode/setorientation/index.md b/files/ja/web/api/pannernode/setorientation/index.md
new file mode 100644
index 00000000000000..d0d623c5ec9990
--- /dev/null
+++ b/files/ja/web/api/pannernode/setorientation/index.md
@@ -0,0 +1,52 @@
+---
+title: "PannerNode: setOrientation() メソッド"
+short-title: setOrientation()
+slug: Web/API/PannerNode/setOrientation
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{APIRef("Web Audio API")}}{{Deprecated_Header}}
+
+> **メモ:** この非推奨メソッドを置き換えるために推奨される方法は、 [`orientationX`](/ja/docs/Web/API/PannerNode/orientationX), [`orientationY`](/ja/docs/Web/API/PannerNode/orientationY), [`orientationZ`](/ja/docs/Web/API/PannerNode/orientationZ) 属性を直接設定することです。
+
+`setOrientation()` は {{ domxref("PannerNode") }} インターフェイスのメソッドで、音声ソースの再生方向を定義します。
+
+音にとても指向性がある場合、これは大きな効果があります。 3 つのコーン関連の属性 {{domxref("PannerNode.coneInnerAngle")}}、{{domxref("PannerNode.coneOuterAngle")}}、{{domxref("PannerNode.coneOuterGain")}} によって制御できます。このような場合、リスナーから遠ざかった音はとても小さく、あるいは無音にさえなります。
+
+3 つの引数 `x`, `y`, `z` は単位を持たず、正しい直交座標系を用いて 3 次元空間の方向ベクトルを記述します。方向ベクトルの既定値は `(1, 0, 0)` です。
+
+## 構文
+
+```js-nolint
+setOrientation(x, y, z)
+```
+
+### 引数
+
+- `x`
+ - : 3D 空間におけるパンナーの方向ベクトルの x 値。
+- `y`
+ - : 3D 空間におけるパンナーの方向ベクトルの y 値。
+- `z`
+ - : 3D 空間におけるパンナーの方向ベクトルの z 値。
+
+### Return value
+
+None ({{jsxref("undefined")}}).
+
+## 例
+
+例のコードのについては [`BaseAudioContext.createPanner()`](/ja/docs/Web/API/BaseAudioContext/createPanner#examples) を参照してください。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
From 14b5537d3a94a1256dc4fef97237da873333f9f4 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 01:50:42 +0900
Subject: [PATCH 77/82] =?UTF-8?q?2023/04/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/api/pannernode/setposition/index.md | 50 +++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100644 files/ja/web/api/pannernode/setposition/index.md
diff --git a/files/ja/web/api/pannernode/setposition/index.md b/files/ja/web/api/pannernode/setposition/index.md
new file mode 100644
index 00000000000000..3bf22ffdc5d277
--- /dev/null
+++ b/files/ja/web/api/pannernode/setposition/index.md
@@ -0,0 +1,50 @@
+---
+title: "PannerNode: setPosition() メソッド"
+short-title: setPosition()
+slug: Web/API/PannerNode/setPosition
+l10n:
+ sourceCommit: 312081aabba3885b35a81107b3c2fc53428896c5
+---
+
+{{APIRef("Web Audio API")}}{{Deprecated_Header}}
+
+> **メモ:** この非推奨メソッドを置き換えるために推奨される方法は、 [`positionX`](/ja/docs/Web/API/PannerNode/positionX), [`positionY`](/ja/docs/Web/API/PannerNode/positionY), [`positionZ`](/ja/docs/Web/API/PannerNode/positionZ) 属性を直接設定することです。
+
+`setPosition()` は {{ domxref("PannerNode") }} インターフェイスのメソッドで、リスナー({{domxref("BaseAudioContext.listener")}} 属性に格納されている {{domxref("AudioListener")}} オブジェクトで表されます)に対する音源の相対位置を定義します。 3 つの引数 `x`, `y`, `z` は単位がなく、正しい直交座標系を使用して 3D 空間における音源の位置を記述します。
+
+`setPosition()` メソッドの位置の既定値は `(0, 0, 0)` です。
+
+## 構文
+
+```js-nolint
+setPosition(x, y, z)
+```
+
+### 引数
+
+- `x`
+ - : 3D 空間におけるパンナーの x 位置指定。
+- `y`
+ - : 3D 空間におけるパンナーの y 位置指定。
+- `z`
+ - : 3D 空間におけるパンナーの z 位置指定。
+
+### 返値
+
+なし ({{jsxref("undefined")}})。
+
+## 例
+
+例のコードのについては [`BaseAudioContext.createPanner()`](/ja/docs/Web/API/BaseAudioContext/createPanner#examples) を参照してください。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [ウェブオーディオ API の使用](/ja/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)
From 482d9c49516aeda22b7854413073cfdeb6a5e5b2 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO
Date: Sat, 16 Mar 2024 01:53:51 +0900
Subject: [PATCH 78/82] =?UTF-8?q?2023/04/29=20=E6=99=82=E7=82=B9=E3=81=AE?=
=?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
files/ja/web/api/pannernode/index.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/files/ja/web/api/pannernode/index.md b/files/ja/web/api/pannernode/index.md
index 32bf0c890618ae..f18cf0ec0f61b7 100644
--- a/files/ja/web/api/pannernode/index.md
+++ b/files/ja/web/api/pannernode/index.md
@@ -1,6 +1,8 @@
---
title: PannerNode
slug: Web/API/PannerNode
+l10n:
+ sourceCommit: 4e9294d45c5d338be7799cc6d65f1867b87d7fc0
---
{{ APIRef("Web Audio API") }}
@@ -43,7 +45,7 @@ slug: Web/API/PannerNode
- {{domxref("PannerNode.PannerNode", "PannerNode()")}}
- : 新しい `PannerNode` オブジェクトを作成します。
-## プロパティ
+## インスタンスプロパティ
_親である {{domxref("AudioNode")}} からプロパティを継承しています。_
@@ -78,7 +80,7 @@ _親である {{domxref("AudioNode")}} からプロパティを継承してい
- {{domxref("PannerNode.rolloffFactor")}}
- : 音源が聴取者から離れていく際に起きる音量の低減量を定めます。この値は、全ての距離モデルで利用されます。
-## メソッド
+## インスタンスメソッド
_親である {{domxref("AudioNode")}} のメソッドを継承しています。_
@@ -86,12 +88,10 @@ _親である {{domxref("AudioNode")}} のメソッドを継承しています
- : 聞き手({{domxref("BaseAudioContext.listener")}} 属性に格納された {{domxref("AudioListener")}} オブジェクトで表される)からの音源の相対位置を定義します。
- {{domxref("PannerNode.setOrientation()")}} {{deprecated_inline}}
- : 音源が再生されている方向を設定します。
-- {{domxref("PannerNode.setVelocity()")}} {{deprecated_inline}}
- - : 音源の速度を表したベクトルです。移動する速さと方向を表しています。以前の仕様では下流に接続された{{domxref("AudioBufferSourceNode")}} のピッチを上げ下げするために、{{domxref("PannerNode")}} は速度を表す属性を持っていました。この機能は明確に定義されておらず、問題も多かったため、現在の仕様からは削除されています。
## 例
-コード例については [`BaseAudioContext.createPanner()`](/ja/docs/Web/API/BaseAudioContext/createPanner#example) を参照してください。
+コード例については [`BaseAudioContext.createPanner()`](/ja/docs/Web/API/BaseAudioContext/createPanner#例) を参照してください。
## 仕様書
From 3d7dc934abd295f10683a5317e27a0f087048646 Mon Sep 17 00:00:00 2001
From: Raika Toriyama
Date: Tue, 19 Mar 2024 14:16:32 +0900
Subject: [PATCH 79/82] Update index.md
---
files/ja/web/api/window/localstorage/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/files/ja/web/api/window/localstorage/index.md b/files/ja/web/api/window/localstorage/index.md
index f1c9627872d1a3..37ca39a886e3b6 100644
--- a/files/ja/web/api/window/localstorage/index.md
+++ b/files/ja/web/api/window/localstorage/index.md
@@ -10,7 +10,7 @@ l10n:
**`localStorage`** は {{domxref("window")}} プロパティの読み取り専用プロパティで、この {{DOMxRef("Document")}} の {{glossary("origin")}} における {{DOMxRef("Storage")}} オブジェクトにアクセスできます。格納されたデータは、ブラウザーのセッションを跨いで保存されます。
-`localStorage` は {{DOMxRef("Window.sessionStorage", "sessionStorage")}} によく似ていまが、 `localStorage` のデータには期限がないのに対し、 `sessionStorage` のデータはページセッションが終了したとき、すなわちページが閉じられたときにクリアされます。(「プライベートブラウジング」や「プライバシーモード」のセッションに読み込まれた文書の `localStorage` のデータは、最後の「プライベート」タブが閉じられたときにクリアされます。)
+`localStorage` は {{DOMxRef("Window.sessionStorage", "sessionStorage")}} によく似ていますが、 `localStorage` のデータには期限がないのに対し、 `sessionStorage` のデータはページセッションが終了したとき、すなわちページが閉じられたときにクリアされます。(「プライベートブラウジング」や「プライバシーモード」のセッションに読み込まれた文書の `localStorage` のデータは、最後の「プライベート」タブが閉じられたときにクリアされます。)
## 値
From 5f2cf1b7ac38ce3d7cba66ddb3d4757aa30eb794 Mon Sep 17 00:00:00 2001
From: A1lo
Date: Thu, 21 Mar 2024 09:52:56 +0800
Subject: [PATCH 80/82] zh-cn: add the translation of some metrics (#18795)
* zh-cn: add the translation of some metrics
* Apply suggestions from code review
Co-authored-by: Jason Lam
---------
Co-authored-by: Jason Lam
---
.../glossary/first_contentful_paint/index.md | 20 ++++++++++++++++
.../glossary/first_meaningful_paint/index.md | 19 +++++++++++++++
.../largest_contentful_paint/index.md | 24 +++++++++++++++++++
3 files changed, 63 insertions(+)
create mode 100644 files/zh-cn/glossary/first_contentful_paint/index.md
create mode 100644 files/zh-cn/glossary/first_meaningful_paint/index.md
create mode 100644 files/zh-cn/glossary/largest_contentful_paint/index.md
diff --git a/files/zh-cn/glossary/first_contentful_paint/index.md b/files/zh-cn/glossary/first_contentful_paint/index.md
new file mode 100644
index 00000000000000..82307f356e877a
--- /dev/null
+++ b/files/zh-cn/glossary/first_contentful_paint/index.md
@@ -0,0 +1,20 @@
+---
+title: 首次内容绘制
+slug: Glossary/First_contentful_paint
+l10n:
+ sourceCommit: 835d6632d59993861a0458510402787f8a2c3cb3
+---
+
+{{GlossarySidebar}}
+
+**首次内容绘制**(FCP)是指浏览器渲染 DOM 中的第一部分内容,向用户提供页面正在加载的第一次反馈的时间。在首次内容绘制完成时,问题“它正在发生吗?”的答案为“是”。
+
+*首次内容绘制*时间戳是指浏览器首次渲染任何文本、图像(包括背景图像)、视频、已绘制的画布或非空 SVG 的时间。这不包括任何 iframe 的内容,但包括待加载 web 字体的文本。这是用户可以开始查看页面内容的时间。
+
+## 参见
+
+- [首次绘制](/zh-CN/docs/Glossary/First_paint)
+- [`PerformancePaintTiming`](/zh-CN/docs/Web/API/PerformancePaintTiming)
+- [最大内容绘制](/zh-CN/docs/Glossary/Largest_contentful_paint)
+- [首次有效绘制](/zh-CN/docs/Glossary/First_meaningful_paint)
+- [首次内容绘制](https://web.dev/articles/fcp),web.dev
diff --git a/files/zh-cn/glossary/first_meaningful_paint/index.md b/files/zh-cn/glossary/first_meaningful_paint/index.md
new file mode 100644
index 00000000000000..2d888cc51bd848
--- /dev/null
+++ b/files/zh-cn/glossary/first_meaningful_paint/index.md
@@ -0,0 +1,19 @@
+---
+title: 首次有效绘制
+slug: Glossary/First_meaningful_paint
+l10n:
+ sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34
+---
+
+{{GlossarySidebar}}
+
+**首次有效绘制**(FMP)是在发生最大的首屏布局更改并加载 web 字体后进行的绘制。在首次有效绘制后,问题“这是否有用?”的答案变成了“是”。
+
+FMP 对页面加载中的微小差异非常敏感。这可能导致不一致(双峰分布)的结果。该指标的定义依赖于特定于浏览器的实现细节,这意味着它无法标准化,并且尚未在所有的 web 浏览器中实现。
+
+> **警告:** 首次有效绘制(FMP)已在 Lighthouse 6.0 中弃用。在未来,请考虑使用 [LargestContentfulPaint API](https://wicg.github.io/largest-contentful-paint/)。
+
+## 参见
+
+- [首次内容绘制](/zh-CN/docs/Glossary/First_contentful_paint)
+- [最大内容绘制](https://wicg.github.io/largest-contentful-paint/)
diff --git a/files/zh-cn/glossary/largest_contentful_paint/index.md b/files/zh-cn/glossary/largest_contentful_paint/index.md
new file mode 100644
index 00000000000000..78e02005a2a58f
--- /dev/null
+++ b/files/zh-cn/glossary/largest_contentful_paint/index.md
@@ -0,0 +1,24 @@
+---
+title: 最大内容绘制
+slug: Glossary/Largest_contentful_paint
+l10n:
+ sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34
+---
+
+{{GlossarySidebar}}
+
+**最大内容绘制**(LCP)性能指标提供了在视口内可见的最大图像或文本块的渲染时间(从页面开始加载时开始记录)。
+
+确定 LCP 时会考虑以下元素:
+
+- {{HTMLElement("img")}} 元素。
+- SVG 中的 [``](/zh-CN/docs/Web/SVG/Element/image) 元素。
+- {{HTMLElement("video")}} 元素的封面图像。
+- 具有 {{cssxref("background-image")}} 的元素。
+- 文本节点(例如 {{HTMLElement("p")}})分组。
+
+## 参见
+
+- [`LargestContentfulPaint`](/zh-CN/docs/Web/API/LargestContentfulPaint)
+- [首次内容绘制](/zh-CN/docs/Glossary/First_contentful_paint)
+- [首次绘制](/zh-CN/docs/Glossary/First_paint)
From c88f17b525fd31287709f55758b23ad876b6d694 Mon Sep 17 00:00:00 2001
From: Jason Ren <40999116+jasonren0403@users.noreply.github.com>
Date: Thu, 21 Mar 2024 13:36:55 +0800
Subject: [PATCH 81/82] [zh-cn] update `` html element (#18794)
---
files/zh-cn/web/html/element/tr/index.md | 423 +++++++++++++++++++----
1 file changed, 365 insertions(+), 58 deletions(-)
diff --git a/files/zh-cn/web/html/element/tr/index.md b/files/zh-cn/web/html/element/tr/index.md
index b83ec922b2e664..77980e711e0aea 100644
--- a/files/zh-cn/web/html/element/tr/index.md
+++ b/files/zh-cn/web/html/element/tr/index.md
@@ -1,105 +1,412 @@
---
-title:
+title:
:表格行元素
slug: Web/HTML/Element/tr
+l10n:
+ sourceCommit: fffabdeeb9a069e40a070dadeedc93298b2aca7e
---
-**HTML `
` 元素**定义表格中的行。同一行可同时出现{{HTMLElement("td")}} 和{{HTMLElement("th")}} 元素。
+{{HTMLSidebar}}
-
-
+[HTML](/zh-CN/docs/Web/HTML) **``** 元素定义了表格中的一行单元格。然后可以使用 {{HTMLElement("td")}}(数据单元格)和 {{HTMLElement("th")}}(标题单元格)元素的组合来建立该行的单元格。
+
+{{EmbedInteractiveExample("pages/tabbed/tr.html","tabbed-taller")}}
+
+## 属性
+
+此元素包含[全局属性](/zh-CN/docs/Web/HTML/Global_attributes)。
+
+### 已废弃的属性
+
+以下属性已被弃用,不应再使用。下文记录了这些属性,仅供更新现有代码时参考。
+
+- `align` {{deprecated_inline}}
+
+ - : 指定每行单元格的水平对齐方式。可能的{{Glossary("enumerated", "枚举")}}值包括 `left`、`center`、`right`、`justify` 和 `char`。如果支持,`char` 值将根据 [`char`](#char) 属性中定义的字符和 [`charoff`](#charoff) 属性定义的偏移量对文本内容进行对齐。请使用 {{cssxref("text-align")}} CSS 属性代替,因为该属性已被弃用。
+
+- `bgcolor` {{deprecated_inline}}
+
+ - : 定义每行单元格的背景颜色。值是 HTML 颜色;可以是以“`#`”为前缀的 [6 位十六进制 RGB 代码](/zh-CN/docs/Web/CSS/hex-color),也可以是[颜色关键字](/zh-CN/docs/Web/CSS/named-color)。不支持其他 CSS {{cssxref("color_value", "<color>")}} 值。请使用 {{cssxref("background-color")}} CSS 属性代替,因为该属性已被弃用。
+
+- `char` {{deprecated_inline}}
+
+ - : 指定内容与每行单元格中一个字符的对齐方式。当尝试对齐数字或货币值时,典型值包括句号(`.`)。如果 [`align`](#align) 未设置为 `char`,该属性将被忽略。
+
+- `charoff` {{deprecated_inline}}
+
+ - : 指定由 [`char`](#char) 属性指定的对齐字符偏移行单元格内容的字符数。
+
+- `valign` {{deprecated_inline}}
+
+ - : 指定每行单元格的垂直对齐方式。可能的{{Glossary("enumerated", "枚举")}}值包括 `baseline`、`bottom`、`middle` 和 `top`。请使用 {{cssxref("vertical-align")}} CSS 属性代替,因为该属性已被弃用。
+
+## 使用说明
+
+- `
` 可以作为其 {{HTMLElement("table")}} 父元素的直接子元素,但前提是 `` 没有 {{HTMLElement("tbody")}} 子元素,并且只能位于任何 {{HTMLElement("caption")}}、{{HTMLElement("colgroup")}} 和 {{HTMLElement("thead")}} 元素之后。否则,父元素必须是 {{HTMLElement("thead")}}、{{HTMLElement("tbody")}} 或 {{HTMLElement("tfoot")}} 元素。
+- CSS 伪类 {{cssxref(":nth-of-type")}}、{{cssxref(":first-of-type")}} 和 {{cssxref(":last-of-type")}} 通常用于选择所需的行集及其数据和标题单元格({{HTMLElement("td")}} 和 {{HTMLElement("th")}} 元素)。
+
+## 示例
+
+参见 {{HTMLElement("table")}} 以获取介绍通用标准和最佳实践的完整表格示例。
+
+### 基本行设置
+
+本例演示了一个有四行三列的表格,其中第一列包含行数据单元格的标题。
+
+#### HTML
+
+四个 `` 元素用于创建四个表格行。每行包含三个单元格——一个标题单元格({{HTMLElement("th")}})和两个数据单元格({{HTMLElement("td")}})——形成三列。在每个标题单元格上设置的 [`scope`](/zh-CN/docs/Web/HTML/Element/th#scope) 属性指定了它们与哪些单元格相关,在本示例中就是与 `row`(行)中的所有数据单元格相关。
+
+```html
+
- Content categories |
- None |
+ A |
+ Alfa |
+ AL fah |
- Permitted content |
- Zero or more {{HTMLElement("td")}} or {{HTMLElement("th")}} elements, or a mix of them |
+ B |
+ Bravo |
+ BRAH voh |
- Tag omission |
- Start tag is mandatory. End tag may be omitted if the {{HTMLElement("tr")}} element is immediately followed by a {{HTMLElement("tr")}} element, or if the parent table group ({{HTMLElement("thead")}}, {{HTMLElement("tbody")}} or {{HTMLElement("tfoot")}}) element doesn't have any more content |
+ C |
+ Charlie |
+ CHAR lee |
- Permitted parents |
- {{HTMLElement("table")}}, {{HTMLElement("thead")}}, {{HTMLElement("tbody")}} or {{HTMLElement("tfoot")}} element |
+ D |
+ Delta |
+ DELL tah |
+
+
+```
+
+#### CSS
+
+CSS {{cssxref(":nth-of-type")}} 伪类用于选择每一个“奇数”行,并将这些行的 {{cssxref("background-color")}} 设置为稍暗的色调,从而产生所谓的“斑马条纹”效果。这种交替的背景使表格中的数据行更容易解析和阅读——想象一下有许多行和列,并试图在某一行中找到一些数据的情景。此外,行标题单元格({{HTMLElement("th")}} 元素)用 {{cssxref("background-color")}} 突出显示,以区别于数据单元格({{HTMLElement("td")}} 元素)。
+
+```css
+tr:nth-of-type(odd) {
+ background-color: #eee;
+}
+
+tr th[scope="row"] {
+ background-color: #d6ecd4;
+}
+```
+
+```css hidden
+table {
+ border-collapse: collapse;
+ border: 2px solid rgb(140 140 140);
+ font-family: sans-serif;
+ font-size: 0.8rem;
+ letter-spacing: 1px;
+}
+
+th,
+td {
+ border: 1px solid rgb(160 160 160);
+ padding: 8px 10px;
+}
+```
+
+#### 结果
+
+{{EmbedLiveSample("基本行设置", 650, 140)}}
+
+### 标题行
+
+本示例扩展了[上一示例](#基本行设置)中的基本表格,在表格的第一行添加了标题行。
+
+#### HTML
+
+我们添加了额外的表格行(`
`)作为第一行,其中的列标题单元格({{HTMLElement("th")}})为每列提供了一个标题。我们将这一行放在 {{HTMLElement("thead")}} 分组元素中,以表示这是表格的表头。[`scope`](/zh-CN/docs/Web/HTML/Element/th#scope) 属性被添加到该页眉行中的每个表头单元格(``)中,以明确指定每个表头单元格与其所在列中的所有单元格相关,即使这些单元格位于 {{HTMLElement("tbody")}} 中。
+
+```html
+
+
+ 符号 |
+ 代码 |
+ 发音 |
+
+
+ A |
+ Alfa |
+ AL fah |
+
+
+ B |
+ Bravo |
+ BRAH voh |
- Permitted ARIA roles |
- Any |
+ C |
+ Charlie |
+ CHAR lee |
- DOM interface |
- {{domxref("HTMLTableRowElement")}} |
+ D |
+ Delta |
+ DELL tah |
-
+```
-## Attributes
+#### CSS
-表格标签支持 [全局特性](/zh-CN/docs/HTML/Global_attributes)。还有一些过期的特性,你应该避免使用它们,但是可以了解它们,会在你阅读旧代码的时候有所帮助。
+CSS 与[上一示例](#基本行设置)几乎没有变化,只是增加了一些样式来突出显示“标题行”,从而使各列的标题从其他单元格中脱颖而出。
-- `align` {{Deprecated_inline}}
+```css
+tr:nth-of-type(odd) {
+ background-color: #eee;
+}
- - : 该枚举属性指定每个单元格中内容的水平对齐方式,可使用的属性值如下:
+tr th[scope="col"] {
+ background-color: #505050;
+ color: #fff;
+}
- - `left`, 内容在单元格中左对齐
- - `center`, 内容在单元格中居中
- - `right`, 内容在单元格中右对齐
- - `justify`, 增加文本内容之间的空白以伸展这行文本,使得该单元格中的多行文本具有相同的长度。
- - `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](/zh-CN/docs/Web/HTML/Element/tr#char) and [`charoff`](/zh-CN/docs/Web/HTML/Element/tr#charoff) attributes. If this attribute is not set, the parent node's value is inherited.
+tr th[scope="row"] {
+ background-color: #d6ecd4;
+}
+```
- > **备注:** Do not use this attribute as it is obsolete (not supported) in the latest standard.
- >
- > - To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS {{cssxref("text-align")}} property on it.
- > - To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](/zh-CN/docs/Web/HTML/Element/tr#char) as the value of the {{cssxref("text-align")}} property.
+```css hidden
+table {
+ border-collapse: collapse;
+ border: 2px solid rgb(140 140 140);
+ font-family: sans-serif;
+ font-size: 0.8rem;
+ letter-spacing: 1px;
+}
-- `bgcolor` {{Deprecated_inline}}
+th,
+td {
+ border: 1px solid rgb(160 160 160);
+ padding: 8px 10px;
+}
+```
- - : This attribute defines the background color of each cell of the row. It can be either an [hexadecimal `#RRGGBB` or `#RGB` value]() or a [color keyword](/zh-CN/docs/Web/CSS/color_value#Color_keywords).
+#### 结果
- > **备注:** the {{HTMLElement("tr")}} element should be styled using [CSS](/zh-CN/docs/CSS). To give a similar effect to the **bgcolor** attribute, use the [CSS](/zh-CN/docs/CSS) property {{cssxref("background-color")}}.
+{{EmbedLiveSample("标题行", 650, 170)}}
-- `char` {{Deprecated_inline}}
+### 行排序
- - : This attribute is used to set the character to align the cells in a column on. Typical values for this include a period (.) when attempting to align numbers or monetary values. If [`align`](/zh-CN/docs/Web/HTML/Element/tr#align) is not set to `char`, this attribute is ignored.
+目前还没有对 {{HTMLElement("table")}} 的行(` |
` 元素)进行排序的原生方法。但是可以使用 {{jsxref("Array.prototype.sort()")}}, {{domxref("Node.removeChild")}} 和 {{domxref("Node.appendChild")}} 在 JavaScript 中实现自定 `sort()` 函数,对 {{domxref("HTMLCollection")}} 的 `
` 元素进行排序。
- > **备注:** Do not use this attribute as it is obsolete (and not supported) in the latest standard. To achieve the same effect as the [`char`](/zh-CN/docs/Web/HTML/Element/tr#char), in CSS3, you can use the character set using the [`char`](/zh-CN/docs/Web/HTML/Element/tr#char) attribute as the value of the {{cssxref("text-align")}} property.
+#### HTML
-- `charoff` {{Deprecated_inline}}
+在这个基本表格中使用了 {{HTMLElement("tbody")}} 元素来标记表格的主体部分,并包含三行({{HTMLElement("tr")}} 元素)数据({{HTMLElement("td")}} 元素),创建了一列按降序排列的数字。
- - : This attribute is used to indicate the number of characters to offset the column data from the alignment characters specified by the **char** attribute.
+```html
+
+
+
+ 3 |
+
+
+ 2 |
+
+
+ 1 |
+
+
+
+```
- > **备注:** Do not use this attribute as it is obsolete (and not supported) in the latest standard.
+#### JavaScript
-- `valign` {{Deprecated_inline}}
+在下面的 JavaScript 代码中,创建的 `sort()` 函数被附加到 {{HTMLElement("tbody")}} 元素上,这样它就能按照数值递增的顺序对表格单元格进行排序,并相应地更新显示内容。
- - : This attribute specifies the vertical alignment of the text within each row of cells of the table header. Possible values for this attribute are:
+```js
+HTMLTableSectionElement.prototype.sort = function (cb) {
+ Array.from(this.rows)
+ .sort(cb)
+ .forEach((e) => this.appendChild(this.removeChild(e)));
+};
- - `baseline`, which will put the text as close to the bottom of the cell as it is possible, but align it on the [baseline](https://en.wikipedia.org/wiki/Baseline_%28typography%29) of the characters instead of the bottom of them. If characters are all of the size, this has the same effect as `bottom`.
- - `bottom`, which will put the text as close to the bottom of the cell as it is possible;
- - `middle`, which will center the text in the cell;
- - and `top`, which will put the text as close to the top of the cell as it is possible.
+document
+ .querySelector("table")
+ .tBodies[0].sort((a, b) => a.textContent.localeCompare(b.textContent));
+```
- > **备注:** Do not use this attribute as it is obsolete (and not supported) in the latest standard: instead set the CSS {{cssxref("vertical-align")}} property on it.
+```css hidden
+table {
+ border-collapse: collapse;
+ border: 2px solid rgb(140 140 140);
+ font-family: sans-serif;
+ font-size: 0.8rem;
+ letter-spacing: 1px;
+}
-## Examples
+td {
+ border: 1px solid rgb(160 160 160);
+ padding: 4px 8px;
+}
+```
-See {{HTMLElement("table")}} for examples on `
`.
+#### 结果
-## Specifications
+{{EmbedLiveSample('行排序', '650', '80')}}
-{{Specifications}}
+### 点击表头单元格以进行排序
-## Browser compatibility
+本示例扩展了[上一示例](#行排序)中的基本表格,使排序具有交互性,并可独立于多列。
-{{Compat}}
+#### HTML
-## See also
+在表格主体({{HTMLElement("tbody")}} 元素)中的每一行(`
` 元素)上添加一个额外的数据单元格({{HTMLElement("td")}} 元素),以创建第二列,按字母升序排列。使用 {{HTMLElement("thead")}} 元素,在主体部分之前添加标题部分,以引入包含表头单元格的标题行({{HTMLElement("th")}} 元素)。在下面的 JavaScript 代码中使用这些标题单元格,使其可以点击,然后在每次点击激活时执行相应的排序。
-- Other table-related HTML Elements: {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}};
-- CSS properties and pseudo-classes that may be specially useful to style the `
` element:
+```html
+
+
+
+ 数字 |
+ 字母 |
+
+
+
+
+ 3 |
+ A |
+
+
+ 2 |
+ B |
+
+
+ 1 |
+ C |
+
+
+
+```
- - the {{cssxref(":nth-child")}} pseudo-class to set the alignment on the cells of the column;
- - the {{cssxref("text-align")}} property to align all cells content on the same character, like '.'.<
+#### JavaScript
-{{HTMLSidebar}}
+{{domxref("HTMLDocument", "文档")}}中的每个 {{HTMLElement("table")}} 的每个表头({{HTMLElement("th")}}元素)都添加了一个点击事件处理程序;它会根据行中包含的数据单元格({{HTMLElement("td")}} 元素)的内容对 {{HTMLElement("tbody")}} 的所有行(`
` 元素)进行排序。
+
+> **备注:** 此解决方案假设 {{HTMLElement("td")}} 元素由原始文本填充,没有后代元素。
+
+```js
+const allTables = document.querySelectorAll("table");
+
+for (const table of allTables) {
+ const tBody = table.tBodies[0];
+ const rows = Array.from(tBody.rows);
+ const headerCells = table.tHead.rows[0].cells;
+
+ for (const th of headerCells) {
+ const cellIndex = th.cellIndex;
+
+ th.addEventListener("click", () => {
+ rows.sort((tr1, tr2) => {
+ const tr1Text = tr1.cells[cellIndex].textContent;
+ const tr2Text = tr2.cells[cellIndex].textContent;
+ return tr1Text.localeCompare(tr2Text);
+ });
+
+ tBody.append(...rows);
+ });
+ }
+}
+```
+
+```css hidden
+table {
+ border-collapse: collapse;
+ border: 2px solid rgb(140 140 140);
+ font-family: sans-serif;
+ font-size: 0.8rem;
+ letter-spacing: 1px;
+}
+
+th,
+td {
+ border: 1px solid rgb(160 160 160);
+ padding: 4px 8px;
+}
+
+th {
+ background-color: #505050;
+ color: #fff;
+ cursor: pointer;
+}
+```
+
+#### 结果
+
+{{EmbedLiveSample('点击表头单元格以进行排序', '650', '100')}}
+
+> **备注:** 为了保证可用性和无障碍性,每个可排序列的标题单元格都必须可识别为排序按钮,并且每个标题单元格都必须以可视方式定义列当前是按升序还是降序排序,并使用 [`aria-sort`](/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-sort) 属性。更多信息请参阅 [ARIA 创作实践指南](https://www.w3.org/WAI/ARIA/apg/)的[可排序表格示例](https://www.w3.org/WAI/ARIA/apg/patterns/table/examples/sortable-table/)。
+
+## 技术概要
+
+
+
+
+
+ 内容分类
+ |
+ 无 |
+
+
+ 允许的内容 |
+
+ 允许使用零个或多个 {{HTMLElement("td")}} 和/或 {{HTMLElement("th")}} 元素;也允许使用{{Glossary("script-supporting element", "脚本支持元素")}}({{HTMLElement("script")}} 和 {{HTMLElement("template")}})。
+ |
+
+
+ 标签省略 |
+
+ 开始标记是必需的。如果 {{HTMLElement("tr")}} 元素后面紧跟着一个 {{HTMLElement("tr")}} 元素,或者该行是其父表组({{HTMLElement("thead")}}、{{HTMLElement("tbody")}} 或 {{HTMLElement("tfoot")}})元素中的最后一个元素,则可以省略结束标记。
+ |
+
+
+ 允许的父元素 |
+
+ {{HTMLElement("table")}}(仅当表格没有 {{HTMLElement("tbody")}} 子元素时,即便如此,也只能在任何 {{HTMLElement("caption")}}、{{HTMLElement("colgroup")}} 和 {{HTMLElement("thead")}} 元素之后);否则,父元素必须是 {{HTMLElement("thead")}}、{{HTMLElement("tbody")}} 或 {{HTMLElement("tfoot")}} 元素。
+ |
+
+
+ 隐含的 ARIA 角色 |
+
+ row
+ |
+
+
+ 允许的 ARIA 角色 |
+ 任意 |
+
+
+ DOM 接口 |
+ {{DOMxRef("HTMLTableRowElement")}} |
+
+
+
+
+## 规范
+
+{{Specifications}}
+
+## 浏览器兼容性
+
+{{Compat}}
+
+## 参见
+
+- [学习:HTML 表格](/zh-CN/docs/Learn/HTML/Tables)
+- {{HTMLElement("caption")}}、{{HTMLElement("col")}}、{{HTMLElement("colgroup")}}、{{HTMLElement("table")}}、{{HTMLElement("tbody")}}、{{HTMLElement("td")}}、{{HTMLElement("tfoot")}}、{{HTMLElement("th")}}、{{HTMLElement("thead")}}:其他与表格相关的元素
+- {{cssxref("background-color")}}:用于设置单元格背景颜色的 CSS 属性
+- {{cssxref("border")}}:用于控制行单元格边框的 CSS 属性
+- {{cssxref("text-align")}}:使每行单元格内容水平对齐的 CSS 属性
+- {{cssxref("vertical-align")}}:使每行单元格内容垂直对齐的 CSS 属性
+- {{cssxref(":nth-of-type")}}、{{cssxref(":first-of-type")}}、{{cssxref(":last-of-type")}}:选择特定单元格的伪类
From 9f08ca0afaad99b9431c5be9a56811948dcdce71 Mon Sep 17 00:00:00 2001
From: Jason Lam
Date: Thu, 21 Mar 2024 14:11:40 +0800
Subject: [PATCH 82/82] [zh-cn]: update the translation of const in statement
section (#18798)
---
.../reference/statements/const/index.md | 137 ++++++++++--------
1 file changed, 80 insertions(+), 57 deletions(-)
diff --git a/files/zh-cn/web/javascript/reference/statements/const/index.md b/files/zh-cn/web/javascript/reference/statements/const/index.md
index 1874f032d2a842..8278a03b60ee6f 100644
--- a/files/zh-cn/web/javascript/reference/statements/const/index.md
+++ b/files/zh-cn/web/javascript/reference/statements/const/index.md
@@ -1,116 +1,139 @@
---
title: const
slug: Web/JavaScript/Reference/Statements/const
+l10n:
+ sourceCommit: 4f86aad2b0b66c0d2041354ec81400c574ab56ca
---
{{jsSidebar("Statements")}}
-常量是块级范围的,非常类似用 [let](/zh-CN/docs/Web/JavaScript/Reference/Statements/let) 语句定义的变量。但常量的值是无法(通过重新赋值)改变的,也不能被重新声明。
+**`const`** 声明用于声明块作用域的局部变量。常量的值不能通过使用[赋值运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Assignment)重新赋值来更改,但是如果常量是一个[对象](/zh-CN/docs/Web/JavaScript/Data_structures#objects),它的属性可以被添加、更新或删除。
{{EmbedInteractiveExample("pages/js/statement-const.html")}}
## 语法
-```plain
-const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];
+```js-nolint
+const name1 = value1;
+const name1 = value1, name2 = value2;
+const name1 = value1, name2 = value2, /* …, */ nameN = valueN;
```
- `nameN`
- - : 常量名称,可以是任意合法的{{Glossary("identifier","标识符")}}。
+ - : 要声明的变量的名称。每个变量名称必须是合法的 JavaScript [标识符](/zh-CN/docs/Web/JavaScript/Reference/Lexical_grammar#标识符)或[解构绑定模式](/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)。
- `valueN`
- - : 常量值,可以是任意合法的表达式。
+ - : 变量的初始值。它可以是任何合法的表达式。
## 描述
-此声明创建一个常量,其作用域可以是全局或本地声明的块。与[`var`](/zh-CN/docs/Web/JavaScript/Reference/Statements/var)变量不同,全局常量不会变为 window 对象的属性。需要一个常数的初始化器;也就是说,你必须在声明的同一语句中指定它的值(这是有道理的,因为以后不能更改)。
+`const` 声明与 {{jsxref("Statements/let", "let")}} 非常相似:
-**`const` 声明**创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。例如,在引用内容是对象的情况下,这意味着可以改变对象的内容(例如,其参数)。
+- `const` 声明的作用域既可以是块级作用域,也可以是函数作用域。
+- `const` 声明只有在声明的位置之后才能访问(参见[暂时性死区](/zh-CN/docs/Web/JavaScript/Reference/Statements/let#暂时性死区))。因此,`const` 声明通常被视为[非提升](/zh-CN/docs/Glossary/Hoisting)的声明方式。
+- 当在脚本的顶层声明时,`const` 声明不会在 {{jsxref("globalThis")}} 上创建属性。
+- 在同一作用域中,`const` 声明不能被任何其他声明[重新声明](/zh-CN/docs/Web/JavaScript/Reference/Statements/let#重新声明)。
+- `const` 是[*声明*而不是*语句*](/zh-CN/docs/Web/JavaScript/Reference/Statements#语句和声明的区别)。这意味着你不能将单独的 `const` 声明用作块的主体(这是合理的,因为无法访问变量)。
-关于“[暂存死区](/zh-CN/docs/Web/JavaScript/Reference/Statements/let#Temporal_dead_zone_and_errors_with_let)”的所有讨论都适用于[`let`](/zh-CN/docs/Web/JavaScript/Reference/Statements/let)和`const`。
+ ```js-nolint example-bad
+ if (true) const a = 1; // SyntaxError: Lexical declaration cannot appear in a single-statement context
+ ```
-一个常量不能和它所在作用域内的其他变量或函数拥有相同的名称。
+一个常量需要一个初始值。你必须在声明同时指定它的值。(这是合理的,因为它在声明后不能被改变。)
+
+```js-nolint example-bad
+const FOO; // SyntaxError: Missing initializer in const declaration
+```
+
+`const` 声明创建了一个对值的不可变引用。它并*不*意味着它所持有的值是不可变的,只是变量标识符不能被重新赋值。例如,在内容是对象的情况下,这意味着对象的内容(例如属性)是可以被修改的。你应该将 `const` 声明理解为“创建一个*身份*保持不变”的标识符(变量),而不是“保持*值*不变的标识符”——换言之,是“创建不可变的{{Glossary("binding", "绑定")}}”,而不是“不可变的值”。
+
+许多代码风格指南(包括 [MDN 的指南](/zh-CN/docs/MDN/Writing_guidelines/Writing_style_guide/Code_style_guide/JavaScript#变量声明)建议当变量在其作用域中不会重新赋值时使用 `const` 而不是 {{jsxref("Statements/let", "let")}}。这样可以清晰地表达变量的类型(或值,如果是原始类型的情况下)永远不会改变的意图。对非原始值可能改变的情况下其他人可能更喜欢使用 `let`。
+
+紧跟在 `const` 关键字后面的列表被称为[_绑定_](/zh-CN/docs/Glossary/Binding)_列表_,用逗号分隔,其中逗号*不是*[逗号运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Comma_operator),`=` 符号*不是*[赋值运算符](/zh-CN/docs/Web/JavaScript/Reference/Operators/Assignment)。后面变量的初始值可以引用处在列表前面的变量。
## 示例
### const 基本用法
-常量在声明的时候可以使用大小写,但通常情况下全部用大写字母。
+常量在声明的时候可以使用大小写,但通常情况下全部用大写字母,特别是对于原始值,因为它们确实是不可变的。
```js
-// 定义常量 MY_FAV 并赋值 7
+// 定义常量 MY_FAV 并赋值为 7
const MY_FAV = 7;
-// 报错 - Uncaught TypeError: Assignment to constant variable.
-MY_FAV = 20;
-
-// MY_FAV is 7
-console.log("my favorite number is: " + MY_FAV);
-
-// 尝试重新声明会报错
-// Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared
-const MY_FAV = 20;
+console.log(`我最喜欢的数字是:${MY_FAV}`);
+```
-// MY_FAV 保留给上面的常量,这个操作会失败
-var MY_FAV = 20;
+```js-nolint example-bad
+// 对常量变量重新赋值会引发错误
+MY_FAV = 20; // TypeError: Assignment to constant variable
-// 也会报错
-let MY_FAV = 20;
+// 重新声明常量会引发错误
+const MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declared
+var MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declared
+let MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declared
```
-### 块作用域
+### 块级作用域
-注意块作用域的性质很重要
+请务必注意块作用域的特性。
-```js
-if (MY_FAV === 7) {
- // 没问题,并且创建了一个块作用域变量 MY_FAV
- // (works equally well with let to declare a block scoped non const variable)
- let MY_FAV = 20;
+```js-nolint
+const MY_FAV = 7;
- // MY_FAV 现在为 20
- console.log("my favorite number is " + MY_FAV);
+if (MY_FAV === 7) {
+ // 没有问题,因为它在新的块级作用域中
+ const MY_FAV = 20;
+ console.log(MY_FAV); // 20
- // 这被提升到全局上下文并引发错误
- var MY_FAV = 20;
+ // var 声明的范围不限于块,因此会引发错误
+ var MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declared
}
-// MY_FAV 依旧为 7
-console.log("my favorite number is " + MY_FAV);
+console.log(MY_FAV); // 7
```
-### 常量要求一个初始值
+### 定义对象和数组常量
-```js
-// 报错
-// Uncaught SyntaxError: Missing initializer in const declaration
+`const` 也适用于对象和数组。尝试覆盖该对象会引发错误“Assignment to constant variable”。
-const FOO;
+```js example-bad
+const MY_OBJECT = { key: "值" };
+MY_OBJECT = { OTHER_KEY: "值" };
```
-### 常量可以定义成对象和数组
-
-常量可以定义成对象和数组
+然而,对象的键不受保护,因此以下语句可以正常执行。
```js
-const MY_OBJECT = { key: "value" };
+MY_OBJECT.key = "其他值";
+```
-// 重写对象和上面一样会失败
-// Uncaught TypeError: Assignment to constant variable.
-MY_OBJECT = { OTHER_KEY: "value" };
+你可能需要使用 {{jsxref("Object.freeze()")}} 来使对象不可变。
-// 对象属性并不在保护的范围内
-// 下面这个声明会成功执行
-MY_OBJECT.key = "otherValue"; // Use Object.freeze() to make object immutable
+这对数据同样适用。尝试覆盖该数组会引发错误“Assignment to constant variable”。
-// 也可以用来定义数组
+```js example-bad
const MY_ARRAY = [];
-// 可以向数组填充数据
-MY_ARRAY.push("A"); // ["A"]
-// 但是,将一个新数组赋给变量会引发错误
-// Uncaught TypeError: Assignment to constant variable.
MY_ARRAY = ["B"];
```
+同样地,数组的元素不受保护,因此以下语句可以正常执行。
+
+```js
+MY_ARRAY.push("A"); // ["A"]
+```
+
+### 带解构赋值的声明
+
+每个 `=` 后面的左侧也可以是绑定模式。这允许一次创建多个变量。
+
+```js
+const result = /(a+)(b+)(c+)/.exec("aaabcc");
+const [, a, b, c] = result;
+console.log(a, b, c); // "aaa" "b" "cc"
+```
+
+有关更多信息,请参阅[解构赋值](/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)。
+
## 规范
{{Specifications}}