Шпаргалка для WEB мастера: Раскрывающийся виджет с мессенджерами - скрипт

При клике на кнопку разворачиваются картинки с мессенджерами, простой скрипт на HTML, JS, CSS - можете добавить любой мессенджер какой хотите.

Это вставлять в HTML

<!-- ВИДЖЕТЫ МЕССЕНДЖЕРОВ СПРАВА ВНИЗУ НАЧАЛО --> <!-- ВИДЖЕТЫ МЕССЕНДЖЕРОВ СПРАВА ВНИЗУ НАЧАЛО --> <div class="callback-widget"> <div class="item item1"><a class="phone" href="tel:+79800005665" title="Телефон +7 (980) 000-56-65" rel="nofollow" target="_blank"></a></div> <div class="item item2"><a href="https://t.me/NewSeoDay" title="Telegram" target="_blank" rel="nofollow" target="_blank"></a></div> <div class="item item3"><a href="https://api.whatsapp.com/send?phone=79800005665" title="WhatsApp" target="_blank" rel="nofollow" target="_blank"></a></div> <div class="callback-widget-btn"></div> </div> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { const callbackBtn = document.querySelector('.callback-widget-btn'); const items = { item1: document.querySelector('.item1'), item2: document.querySelector('.item2'), item3: document.querySelector('.item3') }; callbackBtn.addEventListener('click', function(e) { e.preventDefault(); this.classList.toggle('active'); if (this.classList.contains('active')) { fadeIn(items.item3, 500); setTimeout(() => fadeIn(items.item2, 350), 250); setTimeout(() => fadeIn(items.item1, 450), 550); } else { fadeOut(items.item1, 500); setTimeout(() => fadeOut(items.item2, 350), 250); setTimeout(() => fadeOut(items.item3, 450), 550); } }); function fadeIn(element, duration) { element.style.opacity = 0; element.style.display = 'block'; let start = performance.now(); function animate(time) { let elapsed = time - start; element.style.opacity = Math.min(elapsed / duration, 1); if (elapsed < duration) { requestAnimationFrame(animate); } } requestAnimationFrame(animate); } function fadeOut(element, duration) { element.style.opacity = 1; let start = performance.now(); function animate(time) { let elapsed = time - start; element.style.opacity = Math.max(1 - elapsed / duration, 0); if (elapsed < duration) { requestAnimationFrame(animate); } else { element.style.display = 'none'; } } requestAnimationFrame(animate); } }); </script> <!-- ВИДЖЕТЫ МЕССЕНДЖЕРОВ СПРАВА ВНИЗУ КОНЕЦ -->

CSS

.item{position: fixed;display:none;width:70px;height:70px;border-radius:50%;} .item1{bottom:270px;right:20px;background-image: url(/webpmess/telefon-1.webp);background-size:cover;} .item2{bottom:190px;right:20px;background-image: url(/webpmess/telegram-1.webp);background-size:cover;} .item3{bottom:110px;right:20px;background-image: url(/webpmess/whatsup-1.webp);background-size:cover;} .item1 a{display:block;width:70px;height:70px;} .item2 a{display:block;width:70px;height:70px;} .item3 a{display:block;width:70px;height:70px;} .callback-widget-btn{ width: 70px;height: 70px;background-image: url(/webpmess/messagevid-1.webp); background-size:cover;border-radius: 50%;position: fixed;bottom:10px; right:20px;cursor:pointer;animation-duration: 1.5s;animation-iteration-count: infinite;}

Демо:

Пак с картинками:

Под номером 4
Под номером 4

Больше материалов а моем Телеграме :

Начать дискуссию