Skip to content

Commit 01fcc97

Browse files
authored
Merge pull request #200 from aycanogut/patch-1
typo and punctuation fix
2 parents f0dfc3b + 05dcb7c commit 01fcc97

File tree

1 file changed

+14
-14
lines changed
  • 2-ui/3-event-details/4-mouse-drag-and-drop

1 file changed

+14
-14
lines changed

2-ui/3-event-details/4-mouse-drag-and-drop/article.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Temel sürükle ve bırak algoritması şuna benzer:
1919
3. Daha sonra `mousemove` olayı sırasında `left/top` ve `position:absolute` değerlerini değiştirerek ögeyi hareket ettirin.
2020
4. `mouseup` olayı (fareyi bıraktığımız zaman) -- Sürükle bırak olayı bittiği zaman yapılacak aksiyonları yapın.
2121

22-
Bunlar temel bilgilerdir. Örneğin, üzerine gelindiğinde bırakılabilir (bırakımaya müsait) öğeleri ışıklandırma gibi bu algoritmayı genişletebiliriz.
22+
Bunlar temel bilgilerdir. Örneğin, üzerine gelindiğinde bırakılabilir (bırakmaya müsait) öğeleri ışıklandırma gibi bu algoritmayı genişletebiliriz.
2323

2424
İşte bir topu sürükleyip bırakmanın uygulaması:
2525

@@ -58,7 +58,7 @@ ball.onmousedown = function(event) { // (1) start the process
5858
};
5959
```
6060

61-
Kodu çalıştırırsak tuhaf bir şey fark edebiliriz. Sürükleyip bırakmanın başlangıcında, top "klonlanır": "klonunu" sürüklemeye başlarız.
61+
Kodu çalıştırırsak tuhaf bir şey fark edebiliriz. Sürükleyip bırakmanın başlangıcında, top "klonlanır" ve "klonunu" sürüklemeye başlarız.
6262

6363
```online
6464
İşte bir örnek:
@@ -68,7 +68,7 @@ Kodu çalıştırırsak tuhaf bir şey fark edebiliriz. Sürükleyip bırakmanı
6868
Fareyi sürükleyip bırakmaya çalıştığınızda garip davranışı göreceksiniz.
6969
```
7070

71-
Bunun nedeni, tarayıcının resimler için otomatik olarak çalışan ve bizimkilerle çakışan kendi Sürükle ve Bırak özelliğine ve diğer bazı öğelere sahip olmasıdır.
71+
Bunun nedeni, tarayıcının resimler için otomatik olarak çalışan ve bizimkilerle çakışan kendi sürükle ve bırak özelliğine ve diğer bazı öğelere sahip olmasıdır.
7272

7373
Bunu deve dışarı bırakmak için:
7474

@@ -86,9 +86,9 @@ In action:
8686
[iframe src="ball2" height=230]
8787
```
8888

89-
Bir diğer önemli husus - "top" üzerinde değil, "belge" üzerinde `mousemove` yani fare hareketini izliyoruz. İlk bakışta, farenin her zaman topun üstündeymiş gibi olacagını düşünebiliriz ve bu yüzden topun üzerinden de dinleyebiliriz diye düşünebiliriz ( ball.eventLıstener ile) .
89+
Bir diğer önemli husus - "top" üzerinde değil, "belge" üzerinde `mousemove` yani fare hareketini izliyoruz. İlk bakışta, farenin her zaman topun üstündeymiş gibi olacagını düşünebiliriz ve bu yüzden topun üzerinden de dinleyebiliriz diye düşünebiliriz ( ball.eventLıstener ile).
9090

91-
Ancak hatırlarsak, `mousemove` sık sık tetiklenmesine rağmen, aynı zamanda bazı pikselleri atlayabilir. Bu yüzden ani bir hareketin ardından, imleç topun üzerinden atlayarak, pencerenin başka bir yerine gidebilir ve hatta pencerenin dışına çıkabilir.
91+
Ancak hatırlarsak, `mousemove` sık sık tetiklenmesine rağmen, aynı zamanda bazı pikselleri atlayabilir. Bu yüzden ani bir hareketin ardından imleç topun üzerinden atlayarak pencerenin başka bir yerine gidebilir ve hatta pencerenin dışına çıkabilir.
9292

9393
Bu yüzden yakalamak için `document` i dinlemeliyiz. (document.eventListener ile)
9494

@@ -196,7 +196,7 @@ Topu sağ alt köşesinden sürüklediğimizde fark özellikle belirgindir. Önc
196196
197197
Ancak bu işe yaramayacak.
198198
199-
Problem şu ki, biz elementi alıp sürüklerken, bu element her zaman diğerlerinin üstünde ( z-index den ötürü). Ve fare olayları sadece üstteki element üzerinde olur, alttakileri görmez.
199+
Problem şu ki, biz elementi alıp sürüklerken, bu element her zaman diğerlerinin üstünde (z-index'ten ötürü) ve fare olayları sadece üstteki element üzerinde olur, alttakileri görmez.
200200

201201
Örneğin, aşağıda mavinin üzerinde kırmızı olmak üzere iki `<div>` ögesi var. Mavi elementin üzerinde bir fare olayı yakalamak imkansız çünkü üstünde kırmızı element var.
202202

@@ -213,7 +213,7 @@ Problem şu ki, biz elementi alıp sürüklerken, bu element her zaman diğerler
213213
<div style="background:red" onmouseover="alert('kırmızının üzerinde!')"></div>
214214
```
215215

216-
Aynı durum sürüklediğimiz elementte de geçerli. Top her zaman diğer elementlerin üzerinde olduğu için, fare olayı onun üzerinde gerçekleşir. Örneğin bırakacagımız noktada da fare olayı dinlemek istersek, çalışmayacak.
216+
Aynı durum sürüklediğimiz element için de geçerli. Top her zaman diğer elementlerin üzerinde olduğu için, fare olayı onun üzerinde gerçekleşir. Örneğin bırakacagımız noktada da fare olayı dinlemek istersek, işlev çalışmayacaktır.
217217

218218
Bu nedenle, olay dinleyicileri potansiyel hedeflere yerleştirme fikri pratikte işe yaramaz.
219219

@@ -233,12 +233,12 @@ ball.hidden = false;
233233

234234
Not: bu z çağırmadan önce topu saklamamız gerekir `(*)`. Yoksa muhtemelen bu koordinatlar topun koordinatları olur, çünkü imlecin göreceği ilk element olacaktır: `elemBelow=ball`.
235235

236-
Bu kodu istediğimiz zaman diğer elementlerin "üzerinden geçip geçmediğimizi" kontrol etmek için kullanabiliriz. Ve gerçekleştiğinde sürüklediğimiz elementi buraya birakabileceğimiz anlamına gelir.
236+
Bu kodu istediğimiz zaman diğer elementlerin "üzerinden geçip geçmediğimizi" kontrol etmek için kullanabiliriz ve gerçekleştiğinde sürüklediğimiz elementi buraya bırakabileceğımız anlamına gelir.
237237

238238
"Bırakılabilir" öğeleri bulmak için genişletilmiş bir `onMouseMove` kodu:
239239

240240
```js
241-
let currentDroppable = null; // potansiyel birakacağımız yer
241+
let currentDroppable = null; // potansiyel bırakacağımız yer
242242
243243
function onMouseMove(event) {
244244
moveAt(event.pageX, event.pageY);
@@ -256,11 +256,11 @@ function onMouseMove(event) {
256256
257257
if (currentDroppable != droppableBelow) { // eğer bir değişiklik varsa
258258
// not: iki değer de boş olabilir
259-
// currentDroppable=null eğer bırakabileceğimiz bir noktadan geçmediysel (örneğin boş bir alandan geçtiysek)
259+
// currentDroppable=null eğer bırakabileceğimiz bir noktadan geçmediysek (örneğin boş bir alandan geçtiysek)
260260
// droppableBelow=null şu an bu olay sırasında bırakabileceğimiz alanda değilsek
261261
262262
if (currentDroppable) {
263-
// bırabileceğimiz alandan gelip geçme mantığı (ışıklandırmayı kaldır)
263+
// bırakabileceğimiz alandan gelip geçme mantığı (ışıklandırmayı kaldır)
264264
leaveDroppable(currentDroppable);
265265
}
266266
currentDroppable = droppableBelow;
@@ -276,7 +276,7 @@ Aşağıdaki örnekte, top futbol kalesinin üzerinden sürüklendiğinde, kale
276276

277277
[codetabs height=250 src="ball4"]
278278

279-
Artık tüm süreç boyunca `currentDroppable` değişkeninde mevcut "bırakacağımız noktanın hedefi" var ve onu ışıklandırmak veya başka şeyler için kullanabiliriz.
279+
Artık tüm süreç boyunca `currentDroppable` değişkeninde mevcut olan "bırakacağımız noktanın hedefi" var ve onu ışıklandırmak veya başka şeyler için kullanabiliriz.
280280

281281
## Özet
282282

@@ -290,10 +290,10 @@ Anahtar nokatalar:
290290

291291
Bu temele çok şey katabiliriz.
292292

293-
- `mouseup` olayıyla elementi bırakışı sonlandırabiliriz: veriyi değiştirebiliriz, ögeleri yerinden oynatabiliriz.
293+
- `mouseup` olayıyla elementi bırakışı sonlandırabiliriz; veriyi değiştirebiliriz, ögeleri yerinden oynatabiliriz.
294294
- Üstünden geçtiğimiz elementleri ışıklandırabiliriz.
295295
- Sürüklemeyi belli bir yönde ve belli bir alanda sınırlandırabiliriz.
296-
- `mousedown/up` için olay delegeasyonu kullanabiliriz. "Event.target" öğesini kontrol eden geniş alanlı bir olay işleyicisi, yüzlerce öğe için sürükle bırak işlevini yönetebilir.
296+
- `mousedown/up`in olay delegasyonu kullanabiliriz. "Event.target" öğesini kontrol eden geniş alanlı bir olay işleyicisi, yüzlerce öğe için sürükle bırak işlevini yönetebilir.
297297
- Bunu daha da ilerletebilirsiniz.
298298

299299
Bunun üzerine yazılım mimarisi oluşturan bazı yazılım kütüphaneler (framework) var: `DragZone`, `Droppable`, `Draggable`. Çoğu yukarıdakine benzer algoritmalar içerir. Bu yüzden bu kütühaneleri anlamanız daha kolay olacaktır. Ya da kendiniz yapın, bu süreci nasıl işleyeceğinizi artık biliyorsunuz, muhtemelen başka bir kütüphaneyi kendi kodunuza adapte etmekten daha kolay olacaktır.

0 commit comments

Comments
 (0)