Метод .toggleClass от jQuery это вообще бомбовая штука!
В css мне часто не хватало взаимодействия разных не взаимосвязанных элементов. Имею ввиду, чтобы при клике на один элемент, что-нибудь случалось с другим, не связанным никакими родительскими и дочерними вложенностями с тем элементом, на который кликаешь.
Суть метода
.toggleClassпроста – по какому-нибудь событию (клику или наведению мыши, например) он добавляет или удаляет к определенному объекту новый класс. А этот новый класс в css вы можете оформить как душе угодно.
Это очень просто, но одновременно очень круто, я считаю.
Например, какое-нибудь выезжающее меню можно сделать на этой штуке. Изначально оно спрятано, а видна лишь иконка. Кликаешь по этой иконке – и это меню появляется, то есть к нему добавляется новый класс, который делает его видимым.
Html-код кнопки:
<div class="call-button"> <button>Кнопка</button>
<div>
<p>Viber</p>
<p>WhatsApp</p>
<p>Vk</p>
</div>
</div>
Её css-код:
.call-button {
position: fixed;
bottom: 20%;
right: 0;
height: 150px;
width: 150px;
padding: 0;
background-color: green;
color: #fff;
transform: translateX(100px);
transition: 0.3s ease transform;
}
button {
position: absolute;
top: 50px;
left: -50px;
height: 50px;
width: 100%;
cursor: pointer;
transform: rotate(-90deg);
z-index: 999;
}
.call-button div {
float: right;
width: 80px;
padding: 10px;
}
.call-button.open {
transform: translateX(0);
}
И простой скрипт jQuery, благодаря которому это всё и происходит.
$('button').click(function () {
$('.call-button').toggleClass('open');
})
Логика скрипта такая:
$('button') – находится объект (тег button), затем .click(function(){ – означает, что при клике мышкой по только что найденному объекту будет выполняться какая-нибудь функция, которая будет в фигурных скобках {}.
А внутри этой функции уже можно обратиться к любому другому объекту, с которым вы хотите что-либо сделать после этого клика мышки, в нашем случае это весь общий блок с классом call-button, который должен ездить туда -сюда, то есть пишем:
$('.call-button') – находим этот объект с классом call-button, .toggleClass('open') – на английском toggle означает тумблер, то есть вкл./выкл. То есть при каждом клике мышки класс прописанный в скобках ('open') будет то добавляться, то удаляться к тому объекту, к которому мы обратились, т.е. $('.call-button').
А этот класс open в своих стилях css мы уже может обрисовать как угодно. Самое элементарное это добавлять и удалять display: none;
Обратите внимание! Чтобы в скобках у метода
.toogleClassимя класса уже пишется БЕЗ точки.
Итог: при нажатии на кнопку блок будет то показываться, то исчезать.
Но в моем случае нужно было, чтобы кнопка находилась справа и при клике мышкой выезжала, там показывалась некоторая инфа (кнопки разных мессенджеров) и снова при клике мышкой, заезжала обратно. Поэтому у меня стили заточены под перемещение.
Вот и всё по сути.