Перш ніж ми перейдемо до створення нашого меню, ми розберемо інтерфейс сайту Medium, дізнаємося, коли меню з'являється на екрані, а також як воно розташоване по відношенню до виділеного тексту. Це важливий етап нашої роботи, який забезпечить нас потрібними технічними знаннями. В рамках цього етапу ми зрозуміємо, як нам потрібно писати код. Поїхали!
Вивчимо інтерфейс Medium
![Як створити свтроенное меню з кнопками соціальних мереж (адаптивного Лендінзі нуля) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-0239ad1b.jpg)
![Як створити свтроенное меню з кнопками соціальних мереж (HTML5 CSS3 найближчі) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-766e83b6.jpg)
Практичний курс по верстці адаптивного Лендінзі з нуля!
Навчіться з нуля верстати адаптивні Лендінзі на HTML5 та CSS3 за найближчі 6 днів
![Як створити свтроенное меню з кнопками соціальних мереж (створити) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-981177a0.jpg)
На вкладці стилі видно, що позиціювання в CSS задано в absolute, властивість z-index піднімає меню вище інших елементів на сторінці, а властивості top і visibility виштовхують кнопки за межі видимої області. Узагальнюючи, нам буде потрібно:
визначити довжину обраної області, щоб обчислити її середину;
створити модифікатор, щоб показувати елемент;
задавати розташування меню за допомогою властивостей top і left через інлайновие стилі.
У цьому прикладі в меню ми додамо кнопки Facebook і Twitter. Кнопка Facebook і Twitter будуть в SVG форматі і будуть обгорнуті в кнопку button і пару тегів div. Також за кодом нижче видно, що ми додали тег span, який буде створювати трикутник в нижній частині меню.
Якихось чітких правил за кольорами і формою меню немає, можете вільно проектувати меню під свій сайт. Варто звернути увагу на розмір кнопок: на їх висоту і ширину. Наше меню, як видно нижче, становить 84px в ширину і 40px у висоту. Трохи пізніше ці два значення ми будемо використовувати для центрування нашого меню над обраною областю тексту.
![Як створити свтроенное меню з кнопками соціальних мереж (CSS3 найближчі днів) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-957ee396.jpg)
Стилі з вихідним становищем і видимістю.
додаємо функціонал
Що робить функція:
витягує виділену область за допомогою рідної JS функції getSelection ();
повертає об'єкт з виділеним текстом, блоком-обгорткою тексту, а також об'єктом Rectangle, який дає нам розмір і позицію елемента всередині сторінки (top, bottom, left і right).
![Як створити свтроенное меню з кнопками соціальних мереж (CSS3 найближчі днів) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-766e83b6.jpg)
Практичний курс по верстці адаптивного Лендінзі з нуля!
Навчіться з нуля верстати адаптивні Лендінзі на HTML5 та CSS3 за найближчі 6 днів
Наша наступна функція називається showMenu (). Судячи з назви, функція буде показувати меню.
Що робить функція:
отримуємо об'єкт з функції getHighlighted ();
якщо виділена область порожня, ховаємо меню і повертаємо його в початкове положення;
робимо так, щоб меню не з'являлося, якщо виділений текст не обгорнутий в тег параграфа;
Ми зробимо припущення, що більшість користувачів виділяють контент за допомогою миші, і повісимо цю функцію на подію mouseup. У мобільних пристроях зазвичай є своє контекстне меню для виділеного тексту, так що ми загострити увагу в цьому уроці тільки на деськтопной версії.
![Як створити свтроенное меню з кнопками соціальних мереж (CSS3 найближчі днів) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-e8b33dd8.jpg)
Щоб переконатися, що контент обраний правильно, ми додамо затримку в 100ms за допомогою функції setTimeout ().
Клік ... клік ...
Тепер необхідно прив'язати до кнопки подія click і функцію, яка буде відкривати вікно репоста.
![Як створити свтроенное меню з кнопками соціальних мереж (створити) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-2c42813b.jpg)
По кліку на кнопку Twitter має з'являтися таке вікно.
![Як створити свтроенное меню з кнопками соціальних мереж (створити) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-239b2f9f.jpg)
висновок
Редакція: Команда webformyself.
![Як створити свтроенное меню з кнопками соціальних мереж (HTML5 CSS3 найближчі) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-766e83b6.jpg)
Практичний курс по верстці адаптивного Лендінзі з нуля!
Навчіться з нуля верстати адаптивні Лендінзі на HTML5 та CSS3 за найближчі 6 днів
Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі
![Як створити свтроенное меню з кнопками соціальних мереж (створити) Як створити свтроенное меню з кнопками соціальних мереж](https://images-on-off.com/images/180/kaksozdatsvtroennoemenyusknopkamisotsial-7845ab55.png)