Skip to content

Commit 50f6724

Browse files
committed
event 03: behavior-tooltip 100%
1 parent 1394503 commit 50f6724

File tree

3 files changed

+36
-34
lines changed

3 files changed

+36
-34
lines changed

2-ui/2-events/03-event-delegation/4-behavior-tooltip/solution.view/index.html

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
<style>
77
body {
88
height: 2000px;
9-
/* make body scrollable, the tooltip should work after the scroll */
9+
/* membuat badan dapat digulir, tooltip bahkan setelah digulir */
1010
}
1111

1212
.tooltip {
13+
/* beberapa style untuk tooltip, kamu bisa gunakan punya kamu*/
1314
position: fixed;
1415
padding: 10px 20px;
1516
border: 1px solid #b3c9ce;
@@ -28,10 +29,11 @@
2829
<p>LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa</p>
2930
<p>LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa</p>
3031

31-
<button data-tooltip="the tooltip is longer than the element">Short button</button>
32-
<button data-tooltip="HTML<br>tooltip">One more button</button>
32+
<button data-tooltip="Tooltip lebih panjang dari elemen tombol">Tombol pendek</button>
33+
<button data-tooltip="HTML<br>tooltip">Sebuah tombol lainnya</button>
34+
35+
<p>Gulir halaman untuk membuat tombol terlihat di bagian atas, periksa jika tooltip tampil dengan benar.</p>
3336

34-
<p>Scroll the page to make buttons appear on the top, check if the tooltips show up correctly.</p>
3537

3638

3739
<script>
@@ -40,25 +42,25 @@
4042
document.onmouseover = function(event) {
4143
let target = event.target;
4244

43-
// if we have tooltip HTML...
45+
// Jika kita memiliki HTML tooltip
4446
let tooltipHtml = target.dataset.tooltip;
4547
if (!tooltipHtml) return;
4648

47-
// ...create the tooltip element
49+
// ...buat element tooltip
4850

4951
tooltipElem = document.createElement('div');
5052
tooltipElem.className = 'tooltip';
5153
tooltipElem.innerHTML = tooltipHtml;
5254
document.body.append(tooltipElem);
5355

54-
// position it above the annotated element (top-center)
56+
// posisikan elemen tooltip diatas elemen yang beranotasi (atas-tengah)
5557
let coords = target.getBoundingClientRect();
5658

5759
let left = coords.left + (target.offsetWidth - tooltipElem.offsetWidth) / 2;
58-
if (left < 0) left = 0; // don't cross the left window edge
60+
if (left < 0) left = 0; // jangan lewati bagian kiri ujung jendela (window)
5961

6062
let top = coords.top - tooltipElem.offsetHeight - 5;
61-
if (top < 0) { // if crossing the top window edge, show below instead
63+
if (top < 0) { // jika melewati bagian ujung atas jendela (window), tampilkan dibawah ini
6264
top = coords.top + target.offsetHeight + 5;
6365
}
6466

2-ui/2-events/03-event-delegation/4-behavior-tooltip/source.view/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
<style>
77
body {
88
height: 2000px;
9-
/* make body scrollable, the tooltip should work after the scroll */
9+
/* membuat badan dapat digulir, tooltip bahkan setelah digulir */
1010
}
1111

1212
.tooltip {
13-
/* some styles for the tooltip, you can use your own instead */
13+
/* beberapa style untuk tooltip, kamu bisa gunakan punya kamu*/
1414
position: fixed;
1515
padding: 10px 20px;
1616
border: 1px solid #b3c9ce;
@@ -29,14 +29,14 @@
2929
<p>LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa</p>
3030
<p>LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa LaLaLa</p>
3131

32-
<button data-tooltip="the tooltip is longer than the element">Short button</button>
33-
<button data-tooltip="HTML<br>tooltip">One more button</button>
32+
<button data-tooltip="Tooltip lebih panjang dari elemen tombol">Tombol pendek</button>
33+
<button data-tooltip="HTML<br>tooltip">Sebuah tombol lainnya</button>
3434

35-
<p>Scroll the page to make buttons appear on the top, check if the tooltips show up correctly.</p>
35+
<p>Gulir halaman untuk membuat tombol terlihat di bagian atas, periksa jika tooltip tampil dengan benar.</p>
3636

3737

3838
<script>
39-
// ...your code...
39+
// ...Kode kamu...
4040
</script>
4141

4242
</body>

2-ui/2-events/03-event-delegation/4-behavior-tooltip/task.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,37 @@ importance: 5
22

33
---
44

5-
# Tooltip behavior
5+
# Perilaku Tooltip
66

7-
Create JS-code for the tooltip behavior.
7+
Buat Kode JS untuk perilaku tooltip.
88

9-
When a mouse comes over an element with `data-tooltip`, the tooltip should appear over it, and when it's gone then hide.
9+
Pada saat mouse menghampir sebuah elemen dengan `data-tooltip`, tooltip harus tampil diatasnya, dan pada saat mouse itu pindah tooltipnya di sembunyikan.
1010

11-
An example of annotated HTML:
11+
Contoh dari HTML yang beranotasi:
1212
```html
13-
<button data-tooltip="the tooltip is longer than the element">Short button</button>
14-
<button data-tooltip="HTML<br>tooltip">One more button</button>
13+
<button data-tooltip="Tooltip lebih panjang dari elemen tombol">Tombol pendek</button>
14+
<button data-tooltip="HTML<br>tooltip">Sebuah tombol lainnya</button>
1515
```
1616

17-
Should work like this:
17+
Harus berfungsi seperti ini:
1818

1919
[iframe src="solution" height=200 border=1]
2020

21-
In this task we assume that all elements with `data-tooltip` have only text inside. No nested tags (yet).
21+
Pada tugas ini kita beranggapan bawah semua elemen dengan `data-tooltip` memiliki teks didalamnya, Tidak ada elemen bersarang (belum).
2222

23-
Details:
23+
Rincian:
2424

25-
- The distance between the element and the tooltip should be `5px`.
26-
- The tooltip should be centered relative to the element, if possible.
27-
- The tooltip should not cross window edges. Normally it should be above the element, but if the element is at the page top and there's no space for the tooltip, then below it.
28-
- The tooltip content is given in the `data-tooltip` attribute. It can be arbitrary HTML.
25+
- Jarak antara elemen dan tooltip harusnya `5px`.
26+
- Jika memungkinkan, tooltip harus ditengah relatif pada elemen yang beranotasi.
27+
- Tooltip tidak boleh melewati ujung dari jendela (_window_). Biasanya tooltip harus berada di atas elemen, tapi jika elemen itu berada pada bagian atas halaman, dan tidak ada area untuk tooltip, maka posisi tooltip dibawah elemen.
28+
- Konten tooltip diberikan dalam atribut 'data-tooltip'. Ini bisa menjadi HTML asalan.
2929

30-
You'll need two events here:
31-
- `mouseover` triggers when a pointer comes over an element.
32-
- `mouseout` triggers when a pointer leaves an element.
30+
Kamu akan membutuhkan 2 peristiwa:
31+
- `mouseover` akan dijalankan pada saat pointer berada di atas elemen beranotasi.
32+
- `mouseout` akan dijalankan pada saat pointer meninggalkan elemen yang beranotasi.
3333

34-
Please use event delegation: set up two handlers on `document` to track all "overs" and "outs" from elements with `data-tooltip` and manage tooltips from there.
34+
Tolong gunakan delegasi peristiwa: atur 2 buah penangan pada `document` untuk melacak semua "masukan" dan "keluaran" dari elemen yang memiliki `data-tooltip` dan untuk menanggani tooltip dari elemen itu.
3535

36-
After the behavior is implemented, even people unfamiliar with JavaScript can add annotated elements.
36+
Setelah perilaku tooltip dibuat, bahkan orang yang tidak familiar dengan JavaScript bisa menambahkan elemen yang beranotasi.
3737

38-
P.S. Only one tooltip may show up at a time.
38+
Tambahan: Tooltip hanya bisa ditujukan satu-satu.

0 commit comments

Comments
 (0)