Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. UI Design

Membuat Kode Inline Sharing Menu

by
Difficulty:IntermediateLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Muhammad Naufal (you can also view the original English article)

Dalam tutorial ini, kita akan belajar bagaimana membuat apa itu yang disebut dengan "inline sharing menu". Interface ini bekerja dengan menampilkan menu yang memungkinkan pembaca men-share halaman, dengan mengutip teks yang di-highlight (orang indonesia menyebutnya diblok). Anda akan menemukan interface yang serupa di beberapa situs populer seperti Medium.

Sebelum kita mulai membuat sharing menu, kita akan mempelajari lebih dekat bagaimana interface serupa di Medium bekerja, seperti saat itu muncul dan bagaimana posisinya terhadap area yang di-highlight (diblok). Ini adalah langkah yang membantu yang akan memberi kita wawasan teknis yang tepat, yang nanti akan menentukan bagaimana kita menulis kode kita sendiri

Mari kita mulai!

Memeriksa Interface dari Medium

Pada gambar berikut, kita dapat melihat bahwa sharing menu pada Medium muncul di tengah teks yang di-highlight, berapa pun panjangnya; apakah kita hanya memilih satu kata, satu kalimat, atau seluruh paragraf.

Highlighted word with the sharing button in Mediumcom
UI Inline Sharing di Medium

Bila kita lihat melalui Chrome DevTools, kita dapat menemukan bahwa posisi sharing menu diberikan property top dan left dalam baris style-nya. Kita juga bisa melihat sharing button juga diberikan tambahan class modifierhighlightMenu--active, yang membuatnya terlihat.

Catatan: Jika anda belum mengenal istilah seperti Modifier, Block, dan Element, anda harus melihat tutorial terdahulu: Perkenalan Metodologi BEM.

Style yang memposisikan inline sharing menu di Medium

Di tab Styles, kita bisa melihat bahwa posisi awalnya diatur melalui CSS dengan position absolute, property z-index untuk menaikkan di atas elemen lain pada halaman, top, dan dengan visibility property untuk membuat sharing button tidak terlihat.

Ringkasnya, kita memerlukan:

  1. Ambil panjang area yang dipilih sehingga kita bisa menentukan centre point dari selection.
  2. Buat modifier untuk memunculkan element-nya.
  3. Atur posisi saring menu dengan property top dan left yang ditambahkan ke inline style.

Membuat Sharing Menu

Dalam contoh ini kita akan memasukkan tombol Facebook dan Twitter ke dalam sharing menu. Kami mengirim ikon Facebook dan Twitter dalam SVG, diapit antara button dan beberapa elemen div. Selain itu, seperti yang dapat anda lihat dari cuplikan berikut, kami juga menambahkan elemen span untuk membentuk segitiga di bagian bawah menu.

Ini bukan aturan definitif dalam menentukan warna dan bentuk menu; jangan ragu untuk menggunakan style menu yang sesuai dengan desain situs anda. Yang perlu diperhatikan adalah ukuran tombolnya; tinggi dan lebarnya. Sharing menu kita adalah, seperti yang bisa anda lihat di bawah, lebar 84px dan tinggi 40px. Kami akan menggunakan kedua nilai ini untuk memposisikan sharing menu di bagian tengah area yang di-highlight nantinya.

Inline sharing menu size inspected through Chrome DevTools

Style tersebut mengatur initial position dan visibility.

Dan yang terakhir, class akan kita tambahkan untuk membuat tombol sharing visible atau terlihat.

Membuat Menu Sharing yang Fungsional

Pada tahap ini, inline sharing menu kita tidak boleh terlihat di halaman. Selain itu, saat kita mengklik tombol Facebook dan Twitter, jendela sharing tidak terlihat di mana pun. Jadi, di bagian ini, kita akan menulis JavaScript untuk membuat tombol kita fungsional. Dan kita mulainya dengan, getHighlight () function.

Function ini akan:

  • Mengambil area yang di-highlight menggunakan native JavaScript function, getSelection()
  • Return Objek yang berisi teks yang dipilih, elemen yang membungkus teks, dan Rectangle Object dari area yang dipilih yang memberi kita ukuran serta posisinya - top, bottom, left dan right - di dalam halaman.

Function kita selanjunya adalah showMenu(). Sesuai namanya function ini akan memperlihatkan sharing menu.

Secara khusus, kode dalam function ini melakukan hal sebagai berikut:

  1. Mendapatkan Objek dari function getHighlighted ().
  2. Menyembunyikan dan mengatur sharing menu ke posisi awalnya saat area yang di-highlight kosong; tidak berisi text.
  3. Mencegah agar tombol tidak muncul jika teks yang di-highlight tidak dibungkus dalam paragraf.
  4. Terakhir, atur posisi top dan left, dan tambahkan class sharing--shown untuk membuat sharing button terlihat. Saya juga menambahkan beberapa line pada inline comment yang menjelaskan dari mana beberapa nomor yang ditentukan berasal.

Kami akan berasumsi bahwa sebagian besar pengguna menggunakan mouse untuk meng-highlight konten di web, sehingga kami mengaitkan function ini dengan event mouseup. Perangkat mobile biasanya akan memiliki menu kontekstual mereka sendiri pada pilihan teks, jadi kami hanya fokus di web untuk tutorial ini.

safari ios
Text selection di Safari iOS

Kami melakukan delay eksekusi meski pun hanya 100ms menggunakan function setTimeout (), untuk memastikan konten dipilih dengan benar.

Function terakhir kami, openShareWindow (), adalah dengan menjalankan window sharing saat tombol pada menu diklik. Dalam tutorial ini, kami akan menggunakannya terutama untuk menghadirkan Twitter sharing window karena Facebook memiliki JavaScript SDK sendiri.

Klik ... Klik ...

Selanjutnya, kita mengaitkan tombol sharing dengan event click dan melampirkan function yang akan menjalankan sharing window.

Untuk tombol sharing Facebook, kita menggunakan Facebook JavaScript SDK. SDK memungkinkan kita untuk membypass text untuk muncul di sharing window melalui parameter quote.

Twitter tidak menyediakan JavaScript SDK untuk ini. Jadi di sini kita menggunakan function sendiri, openShareWindow (), dan membypass sebuah formatted URL yang sesuai dengan pedoman mereka beserta ukuran windownya.

Saat kita mengklik tombol Twitter sharing, seharusnya itu membuat window bersangkutan muncul, seperti berikut.

Kesimpulan

Kita siap dengan inline sharing menu kita! Menuju ke demo untuk melihat bagaimana ini beraksi, atau source code untuk melihat function ini secara penuh. Selanjutnya, anda dapat meng-improve inline sharing menu dengan transition atau animation untuk memberikan experience yang lebih menarik.

Resource yang Lebih Mendalam

Ada beberapa API JavaScript yang kami gunakan untuk membuat sharing menu ini up dan running. Beberapa telah disampaikan dalam Envato Tuts+ tutorial sebelumnya, sementara yang lain mungkin benar-benar baru untuk anda. Jadi, di sini saya sudah menyertakan referensi untuk melengkapi tutorial ini.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.