|
1 | 1 | # Focus: متمرکز کردن/محو کردن |
2 | 2 |
|
3 | | - |
4 | 3 | یک element وقتی focus دریافت میکند که کاربر روی آن click کند یا از کلید `key:Tab` در صفحهکلید استفاده کند. همچنین یک attribute به نام `autofocus` در HTML وجود دارد که وقتی صفحه load میشود، به صورت پیشفرض focus را روی یک element میگذارد و روشهای دیگری برای دریافت focus. |
5 | 4 |
|
6 | 5 | قرار دادن focus روی یک element به طور کلی یعنی: "آماده شدن برای دریافت داده در اینجا"، پس این زمانی است که میتوانیم code را برای مقداردهی اولیه برای عملکرد مورد نیاز اجرا کنیم. |
|
99 | 98 | :هم میتواند باعث آن شود. برای مثال javascript میکند اما خود click یکی از آنها وقتی است که بازدیدکننده روی جای دیگری |
100 | 99 |
|
101 | 100 | (`focus` event) نادیده گرفته میشود، برمیگردد `alert` و وقتی که (`blur` event) در عنصر میشود focus فوکوس را به خودش منتقل میکند، پس باعث از بین رفتن `alert` یک - |
102 | | -
|
103 | 101 | برگردانده نمیشود focus میشود. اگر آن بعدا دوباره وارد شود focus پاک شود، آنگاه آن هم باعث از بین رفتن DOM از element اگر یک - |
104 | 102 |
|
105 | 103 | .شوند trigger بدرفتاری کنند -- زمانی که نیاز نیست `focus/blurs` این ویژگیها گاهی باعث میشوند - |
|
118 | 116 |
|
119 | 117 | هر elementای اگر `tabindex` داشته باشد، قابل focus میشود. هنگامی که `key:Tab` (یا چیزی شبیه آن) برای جابهجایی بین آنها استفاده میشود، مقدار attribute برابر order number آن element میشود. |
120 | 118 |
|
121 | | - |
122 | 119 | یعنی: اگر ما دو element داشته باشیم که اولی `tabindex="1"` داشته باشد و دومی `tabindex="2"` داشته باشد، آنگاه وقتی در اولین element هستیم و `key:Tab` را فشار میدهیم -- focus را به دومی میبرد. |
123 | 120 |
|
124 | 121 | ترتیب تغییر به این صورت است: elementهایی با `tabindex` از `1` و بالاتر ابتدا میروند (در ترتیب `tabindex`) و بعد از آن، elementهای بدون `tabindex` (مثلا یک `<input>` معمولی) |
|
153 | 150 | ترتیب به این صورت است: `1 - 2 - 0`. به طور نرمال، `<li>` از focus پشتیبانی نمیکند اما `tabindex` آن را به همراه eventها و style دادن با `:focus` مهیا میکند. |
154 | 151 |
|
155 | 152 | ```smart header="هم کار میکند. `elem.tabIndex`" |
156 | | - |
157 | | -ما میتوانیم `tabindex`از JavaScript را با استفاده از `elem.tabIndex` اضافه کنیم. آن هم اثر یکسان را دارد |
158 | | - |
| 153 | +ما میتوانیم `tabindex` از JavaScript را با استفاده از `elem.tabIndex` اضافه کنیم. آن هم اثر یکسان را دارد |
159 | 154 | ``` |
160 | 155 |
|
161 | 156 | ## Delegation: focusin/focusout |
162 | 157 |
|
163 | 158 | .وجود ندارد `blur` و `focus` رفتار بالا رفتن حبابی در |
| 159 | +
|
164 | 160 | کنیم، مثل این highlight بگذاریم تا آن را `<form>` را روی `onfocus` برای مثال ما نمیتوانیم |
165 | 161 |
|
166 | 162 | ```html autorun height=80 |
167 | 163 | <!-- را اضافه کنید class -- روی فرم focus در مورد --> |
168 | | -
|
169 | 164 | <form *!*onfocus="this.className='focused'"*/!*> |
170 | 165 | <input type="text" name="name" value="نام"> |
171 | 166 | <input type="text" name="surname" value="نام خانوادگی"> |
|
180 | 175 |
|
181 | 176 | ابندا یک ویژگی قدیمی خندهدار وجود دارد: `focus/blur` بالا رفتن حبابی ندارند، بلکه در مرحلهی capturing به پایین منتشر میشوند. |
182 | 177 |
|
183 | | - |
184 | 178 | این کار میکند: |
185 | 179 |
|
186 | 180 | ```html autorun height=80 |
|
226 | 220 |
|
227 | 221 | فعال شدن eventهای `focus` و `blur` بسته به این است که آن عنصر فوکوس کند/از دست بدهد. |
228 | 222 |
|
229 | | - |
230 | | - |
231 | | -استثناهای آنّا عبارتاند از: |
| 223 | +استثناهای آنها عبارتاند از: |
232 | 224 | - آنها رفتار بالا رفتن حبابی ندارند. میتوانند به جایش از حالت capturing یا `focusin/focusout` استفاده کنند. |
233 | 225 | - بیشتر elementها به طور پیشفرض از focus پشتیبانی نمیکنند. از `tabindex` استفاده کنید تا هر چیزی قابلیت focus داشته باشد. |
234 | 226 |
|
|
0 commit comments