From 0bb62a90b4af7433a68a439a5eb5d83af73d1304 Mon Sep 17 00:00:00 2001 From: Mehdi <40258654+seven-deuce@users.noreply.github.com> Date: Thu, 16 May 2019 14:41:41 +0400 Subject: [PATCH 1/6] correction 2 --- content/docs/reference-events.md | 112 +++++++++++++++---------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/content/docs/reference-events.md b/content/docs/reference-events.md index 745c6a71e..f430a0a79 100644 --- a/content/docs/reference-events.md +++ b/content/docs/reference-events.md @@ -6,13 +6,13 @@ layout: docs category: Reference --- -This reference guide documents the `SyntheticEvent` wrapper that forms part of React's Event System. See the [Handling Events](/docs/handling-events.html) guide to learn more. +این صفحه، مرجع `SyntheticEvent` می‌باشد که بخشی از سیستم رویدادهای ری‌اکت (React's Event System) را تشکیل می‌دهد. برای یادگیری بیشتر، [Handling Events](/docs/handling-events.html) را ببینید. -## Overview {#overview} + ## مرور کلی {#overview} -Your event handlers will be passed instances of `SyntheticEvent`, a cross-browser wrapper around the browser's native event. It has the same interface as the browser's native event, including `stopPropagation()` and `preventDefault()`, except the events work identically across all browsers. +`SyntheticEvent` روکشی است بر رویدادهای ذاتی خود مرورگر که در تمام مرورگر‌ها کار می‌کند. کنترل کننده‌های رویداد (event handlers) شما instance هایی از `SyntheticEvent` دریافت خواهند شد. رابط آن همانند رویدادهای ذاتی مرورگر است و شامل `stopPropagation()` و `preventDefault()` هم هست. با این تفاوت که رویدادها در تمام مرورگر‌ها عین هم کار می‌کنند. -If you find that you need the underlying browser event for some reason, simply use the `nativeEvent` attribute to get it. Every `SyntheticEvent` object has the following attributes: +اگر فکر می‌کنید که در جایی باید رویداد ذاتی خود مرورگر را استفاده کنید، کافی است که `nativeEvent` را به عنوان یک attribute اضافه کنید تا به آن دسترسی یابید. هر آبجکت `SyntheticEvent`، attribute های زیر دارد: ```javascript boolean bubbles @@ -30,16 +30,16 @@ DOMEventTarget target number timeStamp string type ``` - -> Note: + +> توجه: > -> As of v0.14, returning `false` from an event handler will no longer stop event propagation. Instead, `e.stopPropagation()` or `e.preventDefault()` should be triggered manually, as appropriate. +> از نسخه ی 0.14، بازگشت دادن `false` از یک کنترل کننده ی رویداد، مانع انتشار یک رویداد نمی شود. بجای آن، `e.stopPropagation()` یا `e.preventDefault()` ، هر کدام به درخور موقعیت باید اجرا شوند. -### Event Pooling {#event-pooling} +### جمع آوری رویداد (event-pooling) {#event-pooling} +`SyntheticEvent` جمع آوری می‌شود. یعنی اینکه آبجکت `SyntheticEvent` پس از آنکه callback اش فراخوانی شد، تمام دارایی‌های خود را از دست خواهد داد و استفاده ی مجدد خواهد شد. +این به خاطر ارتقای کارکرد است. +از همین رو، شما نمی توانید به طور غیرهمزمان (asynchronous) به رویداد دسترسی داشته باشید. -The `SyntheticEvent` is pooled. This means that the `SyntheticEvent` object will be reused and all properties will be nullified after the event callback has been invoked. -This is for performance reasons. -As such, you cannot access the event in an asynchronous way. ```javascript function onClick(event) { @@ -52,23 +52,23 @@ function onClick(event) { console.log(eventType); // => "click" }, 0); - // Won't work. this.state.clickEvent will only contain null values. + // کار نخواهد کرد. this.state.clickEvent فقط حاوی متغیرهای تهی خواهد بود. this.setState({clickEvent: event}); - // You can still export event properties. + // همچنان قادر خواهید بود که دارایی‌های رویداد را صادر کنید this.setState({eventType: event.type}); } ``` -> Note: +> توجه: > -> If you want to access the event properties in an asynchronous way, you should call `event.persist()` on the event, which will remove the synthetic event from the pool and allow references to the event to be retained by user code. +> اگر می‌خواهید که به دارایی‌های رویداد، به طور غیرهمزمان دسترسی داشته باشید باید `event.persist()` را در رویداد فراخوانی کنید. این موجب خواهد شد که رویداد سینتاتیک از روند برهم گذاری خارج شود و ارجاعات داده شده به آن رویداد در کد کاربر حفظ شود. -## Supported Events {#supported-events} +## رویدادهای پشتیبانی شده {#supported-events} -React normalizes events so that they have consistent properties across different browsers. +ری‌اکت فرایند نرمال سازی را روی رویدادها انجام می دهد تا در مرورگرهای مختلف، ویژگی های یکسانی داشته باشند. -The event handlers below are triggered by an event in the bubbling phase. To register an event handler for the capture phase, append `Capture` to the event name; for example, instead of using `onClick`, you would use `onClickCapture` to handle the click event in the capture phase. +کنترل کنندگان رویدادهایی که در زیر می بینید، در فاز bubbling اجرا می شوند. اگر می خواهید که رویدادی در فاز capture اجرا شود، `Capture` را به نام رویداد اضافه کنید. مثلا بجای `onClick`، بنویسید `onClickCapture`. - [Clipboard Events](#clipboard-events) - [Composition Events](#composition-events) @@ -89,17 +89,17 @@ The event handlers below are triggered by an event in the bubbling phase. To reg * * * -## Reference {#reference} +## مرجع {#reference} ### Clipboard Events {#clipboard-events} -Event names: +نام رویدادها ``` onCopy onCut onPaste ``` -Properties: +ویژگی‌ها ```javascript DOMDataTransfer clipboardData @@ -109,13 +109,13 @@ DOMDataTransfer clipboardData ### Composition Events {#composition-events} -Event names: +نام رویدادها ``` onCompositionEnd onCompositionStart onCompositionUpdate ``` -Properties: +ویژگی‌ها ```javascript string data @@ -126,13 +126,13 @@ string data ### Keyboard Events {#keyboard-events} -Event names: +نام رویدادها ``` onKeyDown onKeyPress onKeyUp ``` -Properties: +ویژگی‌ها ```javascript boolean altKey @@ -149,21 +149,21 @@ boolean shiftKey number which ``` -The `key` property can take any of the values documented in the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values). +`key` می‌تواند هر کدام از متغیرهای ذکر شده در [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values) را داشته باشد. * * * ### Focus Events {#focus-events} -Event names: +نام رویدادها ``` onFocus onBlur ``` -These focus events work on all elements in the React DOM, not just form elements. +رویدادهای فوق برای تمام المنت‌های React DOM کار خواهد کرد و نه فقط المنت‌های فرم. -Properties: +ویژگی‌ها ```javascript DOMEventTarget relatedTarget @@ -173,19 +173,18 @@ DOMEventTarget relatedTarget ### Form Events {#form-events} -Event names: +نام رویدادها ``` onChange onInput onInvalid onSubmit ``` - -For more information about the onChange event, see [Forms](/docs/forms.html). +برای اطلاعات بیشتر در مورد رویداد onChange، [Forms](/docs/forms.html) را ببینید. * * * ### Mouse Events {#mouse-events} -Event names: +نام رویدادها ``` onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit @@ -193,9 +192,9 @@ onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp ``` -The `onMouseEnter` and `onMouseLeave` events propagate from the element being left to the one being entered instead of ordinary bubbling and do not have a capture phase. +رویدادهای `onMouseEnter` و `onMouseLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد. -Properties: +ویژگی‌ها ```javascript boolean altKey @@ -218,18 +217,18 @@ boolean shiftKey ### Pointer Events {#pointer-events} -Event names: +نام رویدادها ``` onPointerDown onPointerMove onPointerUp onPointerCancel onGotPointerCapture onLostPointerCapture onPointerEnter onPointerLeave onPointerOver onPointerOut ``` -The `onPointerEnter` and `onPointerLeave` events propagate from the element being left to the one being entered instead of ordinary bubbling and do not have a capture phase. +رویدادهای `onPointerEnter` و `onPointerLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد. -Properties: +ویژگی‌ها -As defined in the [W3 spec](https://www.w3.org/TR/pointerevents/), pointer events extend [Mouse Events](#mouse-events) with the following properties: +طبق [W3 spec](https://www.w3.org/TR/pointerevents/)، رویدادهای متعلق به نشانگر ماوس، رویدادهای مربوط به ماوس ([Mouse Events](#mouse-events)) را با ویژگی‌های زیر توسعه می‌دهند. ```javascript number pointerId @@ -244,17 +243,18 @@ string pointerType boolean isPrimary ``` -A note on cross-browser support: +نکته ای در مورد پشتیبانی در مرورگرهای مختلف: -Pointer events are not yet supported in every browser (at the time of writing this article, supported browsers include: Chrome, Firefox, Edge, and Internet Explorer). React deliberately does not polyfill support for other browsers because a standard-conform polyfill would significantly increase the bundle size of `react-dom`. +رویدادهای متعلق به نشانگر ماوس در تمام مرورگرها پشتیبانی نمی شوند. در زمان نوشتن این مقاله مرورگرهایی که از آن پشتیبانی می‌کنند عبارتند از: کروم، فایرفاکس، اج، و اینترنت اکسپلورر. ری‌اکت تعمدا از کد جایگزین برای پشتیبانی در مرورگرهای دیگر استفاده نمی کند، چون این کد باعث افزایش چشمگیر حجم `react-dom` می‌شود. -If your application requires pointer events, we recommend adding a third party pointer event polyfill. +اگر اپلیکیشن شما نیازمند رویدادهای نشانگر ماوس است، توصیه می‌کنیم که از کدهای جایگزین third party استفاده کنید. + * * * ### Selection Events {#selection-events} -Event names: +نام رویدادها ``` onSelect @@ -264,13 +264,13 @@ onSelect ### Touch Events {#touch-events} -Event names: +نام رویدادها ``` onTouchCancel onTouchEnd onTouchMove onTouchStart ``` -Properties: +ویژگی‌ها ```javascript boolean altKey @@ -287,13 +287,13 @@ DOMTouchList touches ### UI Events {#ui-events} -Event names: +نام رویدادها ``` onScroll ``` -Properties: +ویژگی‌ها ```javascript number detail @@ -304,13 +304,13 @@ DOMAbstractView view ### Wheel Events {#wheel-events} -Event names: +نام رویدادها ``` onWheel ``` -Properties: +ویژگی‌ها ```javascript number deltaMode @@ -323,7 +323,7 @@ number deltaZ ### Media Events {#media-events} -Event names: +نام رویدادها ``` onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted @@ -336,7 +336,7 @@ onTimeUpdate onVolumeChange onWaiting ### Image Events {#image-events} -Event names: +نام رویدادها ``` onLoad onError @@ -346,13 +346,13 @@ onLoad onError ### Animation Events {#animation-events} -Event names: +نام رویدادها ``` onAnimationStart onAnimationEnd onAnimationIteration ``` -Properties: +ویژگی‌ها ```javascript string animationName @@ -364,13 +364,13 @@ float elapsedTime ### Transition Events {#transition-events} -Event names: +نام رویدادها ``` onTransitionEnd ``` -Properties: +ویژگی‌ها ```javascript string propertyName @@ -382,7 +382,7 @@ float elapsedTime ### Other Events {#other-events} -Event names: +نام رویدادها ``` onToggle From 70c1c971b0a1eb279e3b306446c2a54ae5713193 Mon Sep 17 00:00:00 2001 From: Mehdi <40258654+seven-deuce@users.noreply.github.com> Date: Fri, 17 May 2019 10:02:10 +0400 Subject: [PATCH 2/6] clean --- content/docs/reference-events.md | 388 ------------------------------- 1 file changed, 388 deletions(-) diff --git a/content/docs/reference-events.md b/content/docs/reference-events.md index f430a0a79..8b1378917 100644 --- a/content/docs/reference-events.md +++ b/content/docs/reference-events.md @@ -1,389 +1 @@ ---- -id: events -title: SyntheticEvent -permalink: docs/events.html -layout: docs -category: Reference ---- -این صفحه، مرجع `SyntheticEvent` می‌باشد که بخشی از سیستم رویدادهای ری‌اکت (React's Event System) را تشکیل می‌دهد. برای یادگیری بیشتر، [Handling Events](/docs/handling-events.html) را ببینید. - - ## مرور کلی {#overview} - -`SyntheticEvent` روکشی است بر رویدادهای ذاتی خود مرورگر که در تمام مرورگر‌ها کار می‌کند. کنترل کننده‌های رویداد (event handlers) شما instance هایی از `SyntheticEvent` دریافت خواهند شد. رابط آن همانند رویدادهای ذاتی مرورگر است و شامل `stopPropagation()` و `preventDefault()` هم هست. با این تفاوت که رویدادها در تمام مرورگر‌ها عین هم کار می‌کنند. - -اگر فکر می‌کنید که در جایی باید رویداد ذاتی خود مرورگر را استفاده کنید، کافی است که `nativeEvent` را به عنوان یک attribute اضافه کنید تا به آن دسترسی یابید. هر آبجکت `SyntheticEvent`، attribute های زیر دارد: - -```javascript -boolean bubbles -boolean cancelable -DOMEventTarget currentTarget -boolean defaultPrevented -number eventPhase -boolean isTrusted -DOMEvent nativeEvent -void preventDefault() -boolean isDefaultPrevented() -void stopPropagation() -boolean isPropagationStopped() -DOMEventTarget target -number timeStamp -string type -``` - -> توجه: -> -> از نسخه ی 0.14، بازگشت دادن `false` از یک کنترل کننده ی رویداد، مانع انتشار یک رویداد نمی شود. بجای آن، `e.stopPropagation()` یا `e.preventDefault()` ، هر کدام به درخور موقعیت باید اجرا شوند. - -### جمع آوری رویداد (event-pooling) {#event-pooling} -`SyntheticEvent` جمع آوری می‌شود. یعنی اینکه آبجکت `SyntheticEvent` پس از آنکه callback اش فراخوانی شد، تمام دارایی‌های خود را از دست خواهد داد و استفاده ی مجدد خواهد شد. -این به خاطر ارتقای کارکرد است. -از همین رو، شما نمی توانید به طور غیرهمزمان (asynchronous) به رویداد دسترسی داشته باشید. - - -```javascript -function onClick(event) { - console.log(event); // => nullified object. - console.log(event.type); // => "click" - const eventType = event.type; // => "click" - - setTimeout(function() { - console.log(event.type); // => null - console.log(eventType); // => "click" - }, 0); - - // کار نخواهد کرد. this.state.clickEvent فقط حاوی متغیرهای تهی خواهد بود. - this.setState({clickEvent: event}); - - // همچنان قادر خواهید بود که دارایی‌های رویداد را صادر کنید - this.setState({eventType: event.type}); -} -``` - -> توجه: -> -> اگر می‌خواهید که به دارایی‌های رویداد، به طور غیرهمزمان دسترسی داشته باشید باید `event.persist()` را در رویداد فراخوانی کنید. این موجب خواهد شد که رویداد سینتاتیک از روند برهم گذاری خارج شود و ارجاعات داده شده به آن رویداد در کد کاربر حفظ شود. - -## رویدادهای پشتیبانی شده {#supported-events} - -ری‌اکت فرایند نرمال سازی را روی رویدادها انجام می دهد تا در مرورگرهای مختلف، ویژگی های یکسانی داشته باشند. - -کنترل کنندگان رویدادهایی که در زیر می بینید، در فاز bubbling اجرا می شوند. اگر می خواهید که رویدادی در فاز capture اجرا شود، `Capture` را به نام رویداد اضافه کنید. مثلا بجای `onClick`، بنویسید `onClickCapture`. - -- [Clipboard Events](#clipboard-events) -- [Composition Events](#composition-events) -- [Keyboard Events](#keyboard-events) -- [Focus Events](#focus-events) -- [Form Events](#form-events) -- [Mouse Events](#mouse-events) -- [Pointer Events](#pointer-events) -- [Selection Events](#selection-events) -- [Touch Events](#touch-events) -- [UI Events](#ui-events) -- [Wheel Events](#wheel-events) -- [Media Events](#media-events) -- [Image Events](#image-events) -- [Animation Events](#animation-events) -- [Transition Events](#transition-events) -- [Other Events](#other-events) - -* * * - -## مرجع {#reference} - -### Clipboard Events {#clipboard-events} - -نام رویدادها - -``` -onCopy onCut onPaste -``` - -ویژگی‌ها - -```javascript -DOMDataTransfer clipboardData -``` - -* * * - -### Composition Events {#composition-events} - -نام رویدادها - -``` -onCompositionEnd onCompositionStart onCompositionUpdate -``` - -ویژگی‌ها - -```javascript -string data - -``` - -* * * - -### Keyboard Events {#keyboard-events} - -نام رویدادها - -``` -onKeyDown onKeyPress onKeyUp -``` - -ویژگی‌ها - -```javascript -boolean altKey -number charCode -boolean ctrlKey -boolean getModifierState(key) -string key -number keyCode -string locale -number location -boolean metaKey -boolean repeat -boolean shiftKey -number which -``` - -`key` می‌تواند هر کدام از متغیرهای ذکر شده در [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values) را داشته باشد. - -* * * - -### Focus Events {#focus-events} - -نام رویدادها - -``` -onFocus onBlur -``` - -رویدادهای فوق برای تمام المنت‌های React DOM کار خواهد کرد و نه فقط المنت‌های فرم. - -ویژگی‌ها - -```javascript -DOMEventTarget relatedTarget -``` - -* * * - -### Form Events {#form-events} - -نام رویدادها - -``` -onChange onInput onInvalid onSubmit -``` -برای اطلاعات بیشتر در مورد رویداد onChange، [Forms](/docs/forms.html) را ببینید. - -* * * - -### Mouse Events {#mouse-events} - -نام رویدادها - -``` -onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit -onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave -onMouseMove onMouseOut onMouseOver onMouseUp -``` - -رویدادهای `onMouseEnter` و `onMouseLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد. - -ویژگی‌ها - -```javascript -boolean altKey -number button -number buttons -number clientX -number clientY -boolean ctrlKey -boolean getModifierState(key) -boolean metaKey -number pageX -number pageY -DOMEventTarget relatedTarget -number screenX -number screenY -boolean shiftKey -``` - -* * * - -### Pointer Events {#pointer-events} - -نام رویدادها - -``` -onPointerDown onPointerMove onPointerUp onPointerCancel onGotPointerCapture -onLostPointerCapture onPointerEnter onPointerLeave onPointerOver onPointerOut -``` - -رویدادهای `onPointerEnter` و `onPointerLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد. - -ویژگی‌ها - -طبق [W3 spec](https://www.w3.org/TR/pointerevents/)، رویدادهای متعلق به نشانگر ماوس، رویدادهای مربوط به ماوس ([Mouse Events](#mouse-events)) را با ویژگی‌های زیر توسعه می‌دهند. - -```javascript -number pointerId -number width -number height -number pressure -number tangentialPressure -number tiltX -number tiltY -number twist -string pointerType -boolean isPrimary -``` - -نکته ای در مورد پشتیبانی در مرورگرهای مختلف: - -رویدادهای متعلق به نشانگر ماوس در تمام مرورگرها پشتیبانی نمی شوند. در زمان نوشتن این مقاله مرورگرهایی که از آن پشتیبانی می‌کنند عبارتند از: کروم، فایرفاکس، اج، و اینترنت اکسپلورر. ری‌اکت تعمدا از کد جایگزین برای پشتیبانی در مرورگرهای دیگر استفاده نمی کند، چون این کد باعث افزایش چشمگیر حجم `react-dom` می‌شود. - -اگر اپلیکیشن شما نیازمند رویدادهای نشانگر ماوس است، توصیه می‌کنیم که از کدهای جایگزین third party استفاده کنید. - - -* * * - -### Selection Events {#selection-events} - -نام رویدادها - -``` -onSelect -``` - -* * * - -### Touch Events {#touch-events} - -نام رویدادها - -``` -onTouchCancel onTouchEnd onTouchMove onTouchStart -``` - -ویژگی‌ها - -```javascript -boolean altKey -DOMTouchList changedTouches -boolean ctrlKey -boolean getModifierState(key) -boolean metaKey -boolean shiftKey -DOMTouchList targetTouches -DOMTouchList touches -``` - -* * * - -### UI Events {#ui-events} - -نام رویدادها - -``` -onScroll -``` - -ویژگی‌ها - -```javascript -number detail -DOMAbstractView view -``` - -* * * - -### Wheel Events {#wheel-events} - -نام رویدادها - -``` -onWheel -``` - -ویژگی‌ها - -```javascript -number deltaMode -number deltaX -number deltaY -number deltaZ -``` - -* * * - -### Media Events {#media-events} - -نام رویدادها - -``` -onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted -onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay -onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend -onTimeUpdate onVolumeChange onWaiting -``` - -* * * - -### Image Events {#image-events} - -نام رویدادها - -``` -onLoad onError -``` - -* * * - -### Animation Events {#animation-events} - -نام رویدادها - -``` -onAnimationStart onAnimationEnd onAnimationIteration -``` - -ویژگی‌ها - -```javascript -string animationName -string pseudoElement -float elapsedTime -``` - -* * * - -### Transition Events {#transition-events} - -نام رویدادها - -``` -onTransitionEnd -``` - -ویژگی‌ها - -```javascript -string propertyName -string pseudoElement -float elapsedTime -``` - -* * * - -### Other Events {#other-events} - -نام رویدادها - -``` -onToggle -``` From 676c1422b40650d7fe5c77353cfb6a7de2a7d622 Mon Sep 17 00:00:00 2001 From: Mehdi <40258654+seven-deuce@users.noreply.github.com> Date: Fri, 17 May 2019 10:09:50 +0400 Subject: [PATCH 3/6] sync with master (#5) * Add word "element" to TRANSLATION.md * fix(terms): treeshaking -> tree shaking (#1977) * inputs array > dependencies array (#1957) * inputs array > dependencies array I think initially this was referred to as the "inputs array" in the docs, then it was changed to the "dependencies array" everywhere except it looks like a few were missed. * inputs array > dependencies array I think initially this was referred to as the "inputs array" in the docs, then it was changed to the "dependencies array" everywhere except it looks like a few were missed. * Fix some issues - Correct ancestor spell - Move the two tailing items of the second list to the first one, in the correct order * Fix "opaque" misspelling * Add some new entries * update faq on perf with function props (#1994) * Fix useReducer example (#1992) --- TRANSLATION.md | 84 +++++++++++++++++++++------------ content/docs/code-splitting.md | 2 +- content/docs/faq-functions.md | 2 +- content/docs/hooks-effect.md | 2 +- content/docs/hooks-faq.md | 4 +- content/docs/hooks-reference.md | 2 +- 6 files changed, 61 insertions(+), 35 deletions(-) diff --git a/TRANSLATION.md b/TRANSLATION.md index d8077373d..b24acc85f 100644 --- a/TRANSLATION.md +++ b/TRANSLATION.md @@ -24,7 +24,7 @@ - ansestor + ancestor جد @@ -35,7 +35,7 @@ attribute - صفت + خصوصیت @@ -78,6 +78,22 @@ کامپوننت + + + controlled component + + + کامپوننت کنترل‌شده + + + + + customized + + + سفارشی + + fragment @@ -94,7 +110,7 @@ داده - + element @@ -102,6 +118,14 @@ المنت + + + event + + + رویداد/رخداد + + feature @@ -142,6 +166,14 @@ هوک + + + inline + + + درخط + + legacy code @@ -166,7 +198,7 @@ متد - + node @@ -230,7 +262,15 @@ رابط کاربری - + + + uncontrolled component + + + کامپوننت کنترل‌نشده + + + user @@ -270,14 +310,6 @@ فوروارد - - - ansestor - - - اجداد - - document @@ -296,7 +328,7 @@ - epaque + opaque غیرشفاف @@ -492,7 +524,7 @@ RFC - + scope @@ -509,48 +541,42 @@ - syntactic sugar + style - view + syntactic sugar - XML + timestamp - lazy + view - import + XML - loading indicator + lazy - - attribute - - خصوصیت + import - - property - - ویژگی + loading indicator diff --git a/content/docs/code-splitting.md b/content/docs/code-splitting.md index 32483c5f2..ff0cc84df 100644 --- a/content/docs/code-splitting.md +++ b/content/docs/code-splitting.md @@ -247,7 +247,7 @@ const App = () => ( ## Named Exports {#named-exports} -`React.lazy` currently only supports default exports. If the module you want to import uses named exports, you can create an intermediate module that reexports it as the default. This ensures that treeshaking keeps working and that you don't pull in unused components. +`React.lazy` currently only supports default exports. If the module you want to import uses named exports, you can create an intermediate module that reexports it as the default. This ensures that tree shaking keeps working and that you don't pull in unused components. ```js // ManyComponents.js diff --git a/content/docs/faq-functions.md b/content/docs/faq-functions.md index 75143c43f..f03b2ba76 100644 --- a/content/docs/faq-functions.md +++ b/content/docs/faq-functions.md @@ -83,7 +83,7 @@ class Foo extends Component { >**Note:** > ->Using an arrow function in render creates a new function each time the component renders, which may have performance implications (see below). +>Using an arrow function in render creates a new function each time the component renders, which may break optimizations based on strict identity comparison. ### Is it OK to use arrow functions in render methods? {#is-it-ok-to-use-arrow-functions-in-render-methods} diff --git a/content/docs/hooks-effect.md b/content/docs/hooks-effect.md index 73d6a3d2c..124a5f4f1 100644 --- a/content/docs/hooks-effect.md +++ b/content/docs/hooks-effect.md @@ -473,7 +473,7 @@ In the future, the second argument might get added automatically by a build-time > >If you use this optimization, make sure the array includes **all values from the component scope (such as props and state) that change over time and that are used by the effect**. Otherwise, your code will reference stale values from previous renders. Learn more about [how to deal with functions](/docs/hooks-faq.html#is-it-safe-to-omit-functions-from-the-list-of-dependencies) and [what to do when the array changes too often](/docs/hooks-faq.html#what-can-i-do-if-my-effect-dependencies-change-too-often). > ->If you want to run an effect and clean it up only once (on mount and unmount), you can pass an empty array (`[]`) as a second argument. This tells React that your effect doesn't depend on *any* values from props or state, so it never needs to re-run. This isn't handled as a special case -- it follows directly from how the inputs array always works. +>If you want to run an effect and clean it up only once (on mount and unmount), you can pass an empty array (`[]`) as a second argument. This tells React that your effect doesn't depend on *any* values from props or state, so it never needs to re-run. This isn't handled as a special case -- it follows directly from how the dependencies array always works. > >If you pass an empty array (`[]`), the props and state inside the effect will always have their initial values. While passing `[]` as the second argument is closer to the familiar `componentDidMount` and `componentWillUnmount` mental model, there are usually [better](/docs/hooks-faq.html#is-it-safe-to-omit-functions-from-the-list-of-dependencies) [solutions](/docs/hooks-faq.html#what-can-i-do-if-my-effect-dependencies-change-too-often) to avoid re-running effects too often. Also, don't forget that React defers running `useEffect` until after the browser has painted, so doing extra work is less of a problem. > diff --git a/content/docs/hooks-faq.md b/content/docs/hooks-faq.md index ce6bce3d8..168eb2da6 100644 --- a/content/docs/hooks-faq.md +++ b/content/docs/hooks-faq.md @@ -740,7 +740,7 @@ The [`useMemo`](/docs/hooks-reference.html#usememo) Hook lets you cache calculat const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); ``` -This code calls `computeExpensiveValue(a, b)`. But if the inputs `[a, b]` haven't changed since the last value, `useMemo` skips calling it a second time and simply reuses the last value it returned. +This code calls `computeExpensiveValue(a, b)`. But if the dependencies `[a, b]` haven't changed since the last value, `useMemo` skips calling it a second time and simply reuses the last value it returned. Remember that the function passed to `useMemo` runs during rendering. Don't do anything there that you wouldn't normally do while rendering. For example, side effects belong in `useEffect`, not `useMemo`. @@ -767,7 +767,7 @@ Note that this approach won't work in a loop because Hook calls [can't](/docs/ho ### How to create expensive objects lazily? {#how-to-create-expensive-objects-lazily} -`useMemo` lets you [memoize an expensive calculation](#how-to-memoize-calculations) if the inputs are the same. However, it only serves as a hint, and doesn't *guarantee* the computation won't re-run. But sometimes you need to be sure an object is only created once. +`useMemo` lets you [memoize an expensive calculation](#how-to-memoize-calculations) if the dependencies are the same. However, it only serves as a hint, and doesn't *guarantee* the computation won't re-run. But sometimes you need to be sure an object is only created once. **The first common use case is when creating the initial state is expensive:** diff --git a/content/docs/hooks-reference.md b/content/docs/hooks-reference.md index 24145eac2..7a91e9253 100644 --- a/content/docs/hooks-reference.md +++ b/content/docs/hooks-reference.md @@ -226,7 +226,7 @@ function reducer(state, action) { } } -function Counter({initialState}) { +function Counter() { const [state, dispatch] = useReducer(reducer, initialState); return ( <> From f4ff9733f5bd28cd18ba78721ae4f790de83a2da Mon Sep 17 00:00:00 2001 From: Mehdi <40258654+seven-deuce@users.noreply.github.com> Date: Fri, 17 May 2019 10:18:05 +0400 Subject: [PATCH 4/6] correction 4 --- content/docs/reference-events.md | 388 +++++++++++++++++++++++++++++++ 1 file changed, 388 insertions(+) diff --git a/content/docs/reference-events.md b/content/docs/reference-events.md index 8b1378917..f430a0a79 100644 --- a/content/docs/reference-events.md +++ b/content/docs/reference-events.md @@ -1 +1,389 @@ +--- +id: events +title: SyntheticEvent +permalink: docs/events.html +layout: docs +category: Reference +--- +این صفحه، مرجع `SyntheticEvent` می‌باشد که بخشی از سیستم رویدادهای ری‌اکت (React's Event System) را تشکیل می‌دهد. برای یادگیری بیشتر، [Handling Events](/docs/handling-events.html) را ببینید. + + ## مرور کلی {#overview} + +`SyntheticEvent` روکشی است بر رویدادهای ذاتی خود مرورگر که در تمام مرورگر‌ها کار می‌کند. کنترل کننده‌های رویداد (event handlers) شما instance هایی از `SyntheticEvent` دریافت خواهند شد. رابط آن همانند رویدادهای ذاتی مرورگر است و شامل `stopPropagation()` و `preventDefault()` هم هست. با این تفاوت که رویدادها در تمام مرورگر‌ها عین هم کار می‌کنند. + +اگر فکر می‌کنید که در جایی باید رویداد ذاتی خود مرورگر را استفاده کنید، کافی است که `nativeEvent` را به عنوان یک attribute اضافه کنید تا به آن دسترسی یابید. هر آبجکت `SyntheticEvent`، attribute های زیر دارد: + +```javascript +boolean bubbles +boolean cancelable +DOMEventTarget currentTarget +boolean defaultPrevented +number eventPhase +boolean isTrusted +DOMEvent nativeEvent +void preventDefault() +boolean isDefaultPrevented() +void stopPropagation() +boolean isPropagationStopped() +DOMEventTarget target +number timeStamp +string type +``` + +> توجه: +> +> از نسخه ی 0.14، بازگشت دادن `false` از یک کنترل کننده ی رویداد، مانع انتشار یک رویداد نمی شود. بجای آن، `e.stopPropagation()` یا `e.preventDefault()` ، هر کدام به درخور موقعیت باید اجرا شوند. + +### جمع آوری رویداد (event-pooling) {#event-pooling} +`SyntheticEvent` جمع آوری می‌شود. یعنی اینکه آبجکت `SyntheticEvent` پس از آنکه callback اش فراخوانی شد، تمام دارایی‌های خود را از دست خواهد داد و استفاده ی مجدد خواهد شد. +این به خاطر ارتقای کارکرد است. +از همین رو، شما نمی توانید به طور غیرهمزمان (asynchronous) به رویداد دسترسی داشته باشید. + + +```javascript +function onClick(event) { + console.log(event); // => nullified object. + console.log(event.type); // => "click" + const eventType = event.type; // => "click" + + setTimeout(function() { + console.log(event.type); // => null + console.log(eventType); // => "click" + }, 0); + + // کار نخواهد کرد. this.state.clickEvent فقط حاوی متغیرهای تهی خواهد بود. + this.setState({clickEvent: event}); + + // همچنان قادر خواهید بود که دارایی‌های رویداد را صادر کنید + this.setState({eventType: event.type}); +} +``` + +> توجه: +> +> اگر می‌خواهید که به دارایی‌های رویداد، به طور غیرهمزمان دسترسی داشته باشید باید `event.persist()` را در رویداد فراخوانی کنید. این موجب خواهد شد که رویداد سینتاتیک از روند برهم گذاری خارج شود و ارجاعات داده شده به آن رویداد در کد کاربر حفظ شود. + +## رویدادهای پشتیبانی شده {#supported-events} + +ری‌اکت فرایند نرمال سازی را روی رویدادها انجام می دهد تا در مرورگرهای مختلف، ویژگی های یکسانی داشته باشند. + +کنترل کنندگان رویدادهایی که در زیر می بینید، در فاز bubbling اجرا می شوند. اگر می خواهید که رویدادی در فاز capture اجرا شود، `Capture` را به نام رویداد اضافه کنید. مثلا بجای `onClick`، بنویسید `onClickCapture`. + +- [Clipboard Events](#clipboard-events) +- [Composition Events](#composition-events) +- [Keyboard Events](#keyboard-events) +- [Focus Events](#focus-events) +- [Form Events](#form-events) +- [Mouse Events](#mouse-events) +- [Pointer Events](#pointer-events) +- [Selection Events](#selection-events) +- [Touch Events](#touch-events) +- [UI Events](#ui-events) +- [Wheel Events](#wheel-events) +- [Media Events](#media-events) +- [Image Events](#image-events) +- [Animation Events](#animation-events) +- [Transition Events](#transition-events) +- [Other Events](#other-events) + +* * * + +## مرجع {#reference} + +### Clipboard Events {#clipboard-events} + +نام رویدادها + +``` +onCopy onCut onPaste +``` + +ویژگی‌ها + +```javascript +DOMDataTransfer clipboardData +``` + +* * * + +### Composition Events {#composition-events} + +نام رویدادها + +``` +onCompositionEnd onCompositionStart onCompositionUpdate +``` + +ویژگی‌ها + +```javascript +string data + +``` + +* * * + +### Keyboard Events {#keyboard-events} + +نام رویدادها + +``` +onKeyDown onKeyPress onKeyUp +``` + +ویژگی‌ها + +```javascript +boolean altKey +number charCode +boolean ctrlKey +boolean getModifierState(key) +string key +number keyCode +string locale +number location +boolean metaKey +boolean repeat +boolean shiftKey +number which +``` + +`key` می‌تواند هر کدام از متغیرهای ذکر شده در [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values) را داشته باشد. + +* * * + +### Focus Events {#focus-events} + +نام رویدادها + +``` +onFocus onBlur +``` + +رویدادهای فوق برای تمام المنت‌های React DOM کار خواهد کرد و نه فقط المنت‌های فرم. + +ویژگی‌ها + +```javascript +DOMEventTarget relatedTarget +``` + +* * * + +### Form Events {#form-events} + +نام رویدادها + +``` +onChange onInput onInvalid onSubmit +``` +برای اطلاعات بیشتر در مورد رویداد onChange، [Forms](/docs/forms.html) را ببینید. + +* * * + +### Mouse Events {#mouse-events} + +نام رویدادها + +``` +onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit +onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave +onMouseMove onMouseOut onMouseOver onMouseUp +``` + +رویدادهای `onMouseEnter` و `onMouseLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد. + +ویژگی‌ها + +```javascript +boolean altKey +number button +number buttons +number clientX +number clientY +boolean ctrlKey +boolean getModifierState(key) +boolean metaKey +number pageX +number pageY +DOMEventTarget relatedTarget +number screenX +number screenY +boolean shiftKey +``` + +* * * + +### Pointer Events {#pointer-events} + +نام رویدادها + +``` +onPointerDown onPointerMove onPointerUp onPointerCancel onGotPointerCapture +onLostPointerCapture onPointerEnter onPointerLeave onPointerOver onPointerOut +``` + +رویدادهای `onPointerEnter` و `onPointerLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد. + +ویژگی‌ها + +طبق [W3 spec](https://www.w3.org/TR/pointerevents/)، رویدادهای متعلق به نشانگر ماوس، رویدادهای مربوط به ماوس ([Mouse Events](#mouse-events)) را با ویژگی‌های زیر توسعه می‌دهند. + +```javascript +number pointerId +number width +number height +number pressure +number tangentialPressure +number tiltX +number tiltY +number twist +string pointerType +boolean isPrimary +``` + +نکته ای در مورد پشتیبانی در مرورگرهای مختلف: + +رویدادهای متعلق به نشانگر ماوس در تمام مرورگرها پشتیبانی نمی شوند. در زمان نوشتن این مقاله مرورگرهایی که از آن پشتیبانی می‌کنند عبارتند از: کروم، فایرفاکس، اج، و اینترنت اکسپلورر. ری‌اکت تعمدا از کد جایگزین برای پشتیبانی در مرورگرهای دیگر استفاده نمی کند، چون این کد باعث افزایش چشمگیر حجم `react-dom` می‌شود. + +اگر اپلیکیشن شما نیازمند رویدادهای نشانگر ماوس است، توصیه می‌کنیم که از کدهای جایگزین third party استفاده کنید. + + +* * * + +### Selection Events {#selection-events} + +نام رویدادها + +``` +onSelect +``` + +* * * + +### Touch Events {#touch-events} + +نام رویدادها + +``` +onTouchCancel onTouchEnd onTouchMove onTouchStart +``` + +ویژگی‌ها + +```javascript +boolean altKey +DOMTouchList changedTouches +boolean ctrlKey +boolean getModifierState(key) +boolean metaKey +boolean shiftKey +DOMTouchList targetTouches +DOMTouchList touches +``` + +* * * + +### UI Events {#ui-events} + +نام رویدادها + +``` +onScroll +``` + +ویژگی‌ها + +```javascript +number detail +DOMAbstractView view +``` + +* * * + +### Wheel Events {#wheel-events} + +نام رویدادها + +``` +onWheel +``` + +ویژگی‌ها + +```javascript +number deltaMode +number deltaX +number deltaY +number deltaZ +``` + +* * * + +### Media Events {#media-events} + +نام رویدادها + +``` +onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted +onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay +onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend +onTimeUpdate onVolumeChange onWaiting +``` + +* * * + +### Image Events {#image-events} + +نام رویدادها + +``` +onLoad onError +``` + +* * * + +### Animation Events {#animation-events} + +نام رویدادها + +``` +onAnimationStart onAnimationEnd onAnimationIteration +``` + +ویژگی‌ها + +```javascript +string animationName +string pseudoElement +float elapsedTime +``` + +* * * + +### Transition Events {#transition-events} + +نام رویدادها + +``` +onTransitionEnd +``` + +ویژگی‌ها + +```javascript +string propertyName +string pseudoElement +float elapsedTime +``` + +* * * + +### Other Events {#other-events} + +نام رویدادها + +``` +onToggle +``` From 80340dd14ee3018e8057ae0d264c37d7ff22fdc4 Mon Sep 17 00:00:00 2001 From: Mehdi <40258654+seven-deuce@users.noreply.github.com> Date: Tue, 21 May 2019 14:36:37 +0400 Subject: [PATCH 5/6] correction 5 --- content/docs/reference-events.md | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/content/docs/reference-events.md b/content/docs/reference-events.md index f430a0a79..588440c43 100644 --- a/content/docs/reference-events.md +++ b/content/docs/reference-events.md @@ -10,7 +10,7 @@ category: Reference ## مرور کلی {#overview} -`SyntheticEvent` روکشی است بر رویدادهای ذاتی خود مرورگر که در تمام مرورگر‌ها کار می‌کند. کنترل کننده‌های رویداد (event handlers) شما instance هایی از `SyntheticEvent` دریافت خواهند شد. رابط آن همانند رویدادهای ذاتی مرورگر است و شامل `stopPropagation()` و `preventDefault()` هم هست. با این تفاوت که رویدادها در تمام مرورگر‌ها عین هم کار می‌کنند. +`SyntheticEvent` روکشی است بر رویدادهای ذاتی خود مرورگر که در تمام مرورگر‌ها کار می‌کند. کنترل کننده‌های رویداد (event handlers) شما instance هایی از `SyntheticEvent` دریافت خواهند کرد. رابط آن همانند رویدادهای ذاتی مرورگر است و شامل `stopPropagation()` و `preventDefault()` هم هست. با این تفاوت که رویدادها در تمام مرورگر‌ها عین هم کار می‌کنند. اگر فکر می‌کنید که در جایی باید رویداد ذاتی خود مرورگر را استفاده کنید، کافی است که `nativeEvent` را به عنوان یک attribute اضافه کنید تا به آن دسترسی یابید. هر آبجکت `SyntheticEvent`، attribute های زیر دارد: @@ -33,7 +33,7 @@ string type > توجه: > -> از نسخه ی 0.14، بازگشت دادن `false` از یک کنترل کننده ی رویداد، مانع انتشار یک رویداد نمی شود. بجای آن، `e.stopPropagation()` یا `e.preventDefault()` ، هر کدام به درخور موقعیت باید اجرا شوند. +> از نسخه ی ۰/۱۴، بازگشت دادن `false` از یک کنترل کننده ی رویداد، مانع انتشار یک رویداد نمی شود. بجای آن، `e.stopPropagation()` یا `e.preventDefault()` ، هر کدام به درخور موقعیت باید اجرا شوند
### جمع آوری رویداد (event-pooling) {#event-pooling} `SyntheticEvent` جمع آوری می‌شود. یعنی اینکه آبجکت `SyntheticEvent` پس از آنکه callback اش فراخوانی شد، تمام دارایی‌های خود را از دست خواهد داد و استفاده ی مجدد خواهد شد. @@ -62,7 +62,7 @@ function onClick(event) { > توجه: > -> اگر می‌خواهید که به دارایی‌های رویداد، به طور غیرهمزمان دسترسی داشته باشید باید `event.persist()` را در رویداد فراخوانی کنید. این موجب خواهد شد که رویداد سینتاتیک از روند برهم گذاری خارج شود و ارجاعات داده شده به آن رویداد در کد کاربر حفظ شود. +> اگر می‌خواهید که به دارایی‌های رویداد، به طور غیرهمزمان دسترسی داشته باشید باید `event.persist()` را در رویداد فراخوانی کنید. این موجب خواهد شد که رویداد سینتاتیک از روند جمع‌آوری خارج شود و ارجاعات داده شده به آن رویداد در کد کاربر حفظ شود. ## رویدادهای پشتیبانی شده {#supported-events} @@ -72,26 +72,26 @@ function onClick(event) { - [Clipboard Events](#clipboard-events) - [Composition Events](#composition-events) -- [Keyboard Events](#keyboard-events) -- [Focus Events](#focus-events) -- [Form Events](#form-events) -- [Mouse Events](#mouse-events) -- [Pointer Events](#pointer-events) -- [Selection Events](#selection-events) -- [Touch Events](#touch-events) -- [UI Events](#ui-events) -- [Wheel Events](#wheel-events) -- [Media Events](#media-events) -- [Image Events](#image-events) -- [Animation Events](#animation-events) -- [Transition Events](#transition-events) -- [Other Events](#other-events) +- [رویداد‌های صفحه‌کلید (Keyboard Events)](#keyboard-events) +- [رویداد‌های فکوس (Focus Events)](#focus-events) +- [رویداد‌های فرم (Form Events)](#form-events) +- [رویداد‌های ماوس (Mouse Events)](#mouse-events) +- [رویداد‌های اشاره‌گر (Pointer Events)](#pointer-events) +- [رویداد‌های انتخاب (Selection Events)](#selection-events) +- [رویداد‌های لمسی (Touch Events)](#touch-events) +- [رویداد‌های رابط کاربری (UI Events)](#ui-events) +- [رویداد‌های اسکرول ماوس (Wheel Events)](#wheel-events) +- [رویداد‌های مدیا (Media Events)](#media-events) +- [رویداد‌های تصویر (Image Events)](#image-events) +- [رویداد‌های انیمیشن (Animation Events)](#animation-events) +- [رویداد‌های انتقال (Transition Events)](#transition-events) +- [دیگر رویداد‌ها](#other-events) * * * ## مرجع {#reference} -### Clipboard Events {#clipboard-events} +### (Clipboard Events) {#clipboard-events} نام رویدادها From e111f142b5c0e92e6fbff003b4ed501989784dc4 Mon Sep 17 00:00:00 2001 From: Mehdi <40258654+seven-deuce@users.noreply.github.com> Date: Tue, 21 May 2019 14:44:39 +0400 Subject: [PATCH 6/6] correction 6 --- content/docs/reference-events.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/content/docs/reference-events.md b/content/docs/reference-events.md index 588440c43..eb48d184f 100644 --- a/content/docs/reference-events.md +++ b/content/docs/reference-events.md @@ -124,7 +124,7 @@ string data * * * -### Keyboard Events {#keyboard-events} +### رویداد‌های صفحه‌کلید (Keyboard Events) {#keyboard-events} نام رویدادها @@ -153,7 +153,7 @@ number which * * * -### Focus Events {#focus-events} +### رویداد‌های فکوس (Focus Events) {#focus-events} نام رویدادها @@ -171,7 +171,7 @@ DOMEventTarget relatedTarget * * * -### Form Events {#form-events} +### رویداد‌های فرم (Form Events) {#form-events} نام رویدادها @@ -182,7 +182,7 @@ onChange onInput onInvalid onSubmit * * * -### Mouse Events {#mouse-events} +### رویداد‌های ماوس (Mouse Events) {#mouse-events} نام رویدادها @@ -215,7 +215,7 @@ boolean shiftKey * * * -### Pointer Events {#pointer-events} +### رویداد‌های اشاره‌گر (Pointer Events) {#pointer-events} نام رویدادها @@ -252,7 +252,7 @@ boolean isPrimary * * * -### Selection Events {#selection-events} +### رویداد‌های انتخاب (Selection Events) {#selection-events} نام رویدادها @@ -262,7 +262,7 @@ onSelect * * * -### Touch Events {#touch-events} +### رویداد‌های لمسی (Touch Events) {#touch-events} نام رویدادها @@ -285,7 +285,7 @@ DOMTouchList touches * * * -### UI Events {#ui-events} +### رویداد‌های رابط کاربری (UI Events) {#ui-events} نام رویدادها @@ -302,7 +302,7 @@ DOMAbstractView view * * * -### Wheel Events {#wheel-events} +### رویداد‌های اسکرول ماوس (Wheel Events) {#wheel-events} نام رویدادها @@ -321,7 +321,7 @@ number deltaZ * * * -### Media Events {#media-events} +### رویداد‌های مدیا (Media Events) {#media-events} نام رویدادها @@ -334,7 +334,7 @@ onTimeUpdate onVolumeChange onWaiting * * * -### Image Events {#image-events} +### رویداد‌های تصویر (Image Events) {#image-events} نام رویدادها @@ -344,7 +344,7 @@ onLoad onError * * * -### Animation Events {#animation-events} +### رویداد‌های انیمیشن (Animation Events) {#animation-events} نام رویدادها @@ -362,7 +362,7 @@ float elapsedTime * * * -### Transition Events {#transition-events} +### رویداد‌های انتقال (Transition Events) {#transition-events} نام رویدادها @@ -380,7 +380,7 @@ float elapsedTime * * * -### Other Events {#other-events} +### دیگر رویداد‌ها {#other-events} نام رویدادها