да суть такая (подсмотрена в WordPress) : у нас есть элементы у которых прописаны атрибуты data-click='click' или data-dblclick='dblclick'или data-hover='hover' , если произошло событие click, dblclick, hover то доставляется класс BODY за писаный в атрибуте соответствующему событию. мы пишем :
<div data-click='click'>data-click='click'</div>
<div data-dblclick='dblclick'>data-dblclick='dblclick'</div>
<div data-hover='hover'>data-hover='hover'</div>
<div class="class1">click</div>
<div class="class2">dblclick</div>
<div class="class3">hover</div>
.click .class1{
margin-top: 0px;
opacity: 1;
}
.dblclick .class2{
top: 100px;
}
.hover .class3{
height: 100px;
width: 100px;
background: fuchsia;
border-radius: 50%;
}
в атрибуты мы можем записывать любые классы
можно управлять группой элементов так:
.click .class1, .class2, .class3, .class4, .class5{
margin-top: 0px;
opacity: 1;
}
или только некоторыми делать все что позволяет css
вот три спойлера -- три ссылки каждая открывает свой div - можно? (но тут нужно будет отменить переход по ссылке)
<a data-click='spoiler1' href='#'>spoiler1</a>
<a data-click='spoiler2' href='#'>spoiler2</a>
<a data-click='spoiler3' href='#'>spoiler3</a>
<div class="class1">spoiler1 open</div>
<div class="class2">spoiler2 open</div>
<div class="class3">spoiler3 open</div>
.class1{
display: none;
}
spoiler1 .class1 {
display: block;
}
.class2{
display: none;
}
spoiler1 .class2 {
display: block;
}
.class3{
display: none;
}
spoiler1 .class3 {
display: block;
}