Як створити свтроенное меню з кнопками соціальних мереж

Перш ніж ми перейдемо до створення нашого меню, ми розберемо інтерфейс сайту Medium, дізнаємося, коли меню з'являється на екрані, а також як воно розташоване по відношенню до виділеного тексту. Це важливий етап нашої роботи, який забезпечить нас потрібними технічними знаннями. В рамках цього етапу ми зрозуміємо, як нам потрібно писати код. Поїхали!

Вивчимо інтерфейс Medium

Як створити свтроенное меню з кнопками соціальних мереж

Як створити свтроенное меню з кнопками соціальних мереж

Практичний курс по верстці адаптивного Лендінзі з нуля!

Навчіться з нуля верстати адаптивні Лендінзі на HTML5 та CSS3 за найближчі 6 днів

Як створити свтроенное меню з кнопками соціальних мереж

На вкладці стилі видно, що позиціювання в CSS задано в absolute, властивість z-index піднімає меню вище інших елементів на сторінці, а властивості top і visibility виштовхують кнопки за межі видимої області. Узагальнюючи, нам буде потрібно:

визначити довжину обраної області, щоб обчислити її середину;

створити модифікатор, щоб показувати елемент;

задавати розташування меню за допомогою властивостей top і left через інлайновие стилі.

У цьому прикладі в меню ми додамо кнопки Facebook і Twitter. Кнопка Facebook і Twitter будуть в SVG форматі і будуть обгорнуті в кнопку button і пару тегів div. Також за кодом нижче видно, що ми додали тег span, який буде створювати трикутник в нижній частині меню.

Якихось чітких правил за кольорами і формою меню немає, можете вільно проектувати меню під свій сайт. Варто звернути увагу на розмір кнопок: на їх висоту і ширину. Наше меню, як видно нижче, становить 84px в ширину і 40px у висоту. Трохи пізніше ці два значення ми будемо використовувати для центрування нашого меню над обраною областю тексту.

Як створити свтроенное меню з кнопками соціальних мереж

Стилі з вихідним становищем і видимістю.

додаємо функціонал

Що робить функція:

витягує виділену область за допомогою рідної JS функції getSelection ();

повертає об'єкт з виділеним текстом, блоком-обгорткою тексту, а також об'єктом Rectangle, який дає нам розмір і позицію елемента всередині сторінки (top, bottom, left і right).

Як створити свтроенное меню з кнопками соціальних мереж

Практичний курс по верстці адаптивного Лендінзі з нуля!

Навчіться з нуля верстати адаптивні Лендінзі на HTML5 та CSS3 за найближчі 6 днів

Наша наступна функція називається showMenu (). Судячи з назви, функція буде показувати меню.

Що робить функція:

отримуємо об'єкт з функції getHighlighted ();

якщо виділена область порожня, ховаємо меню і повертаємо його в початкове положення;

робимо так, щоб меню не з'являлося, якщо виділений текст не обгорнутий в тег параграфа;

Ми зробимо припущення, що більшість користувачів виділяють контент за допомогою миші, і повісимо цю функцію на подію mouseup. У мобільних пристроях зазвичай є своє контекстне меню для виділеного тексту, так що ми загострити увагу в цьому уроці тільки на деськтопной версії.

Як створити свтроенное меню з кнопками соціальних мереж

Щоб переконатися, що контент обраний правильно, ми додамо затримку в 100ms за допомогою функції setTimeout ().

Клік ... клік ...

Тепер необхідно прив'язати до кнопки подія click і функцію, яка буде відкривати вікно репоста.

Як створити свтроенное меню з кнопками соціальних мереж

По кліку на кнопку Twitter має з'являтися таке вікно.

Як створити свтроенное меню з кнопками соціальних мереж

висновок

Редакція: Команда webformyself.

Як створити свтроенное меню з кнопками соціальних мереж

Практичний курс по верстці адаптивного Лендінзі з нуля!

Навчіться з нуля верстати адаптивні Лендінзі на HTML5 та CSS3 за найближчі 6 днів

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

Як створити свтроенное меню з кнопками соціальних мереж

Практика HTML5 та CSS3 з нуля до результату!