Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Добавление класса из атрибута в BODY (https://javascript.ru/forum/events/59629-dobavlenie-klassa-iz-atributa-v-body.html)

ur5fit 19.11.2015 22:52

Добавление класса из атрибута в BODY
 
немножко на говнокодил себе заготовку может кому то пригодится

суть такая: по клику, двойному клику, и на hover добавляется/убирается класс у BODY прописанный в атрибутах объекта . так намного гибче можно теперь добраться до всех элемента или до группы смотрите пример.
За код не ругайте а поправляйте

https://github.com/ur5fot/data-click-to-toggle-class
http://codepen.io/ur5fot/pen/Lpaogv

рони 20.11.2015 00:07

ur5fit,
зачем return?
https://github.com/ur5fot/data-click...ddClass.js#L15
почему бы не остановить цикл break
https://github.com/ur5fot/data-click...ddClass.js#L38

и нельзя создать множество независимых пар? или можно?

ur5fit 20.11.2015 11:49

за return надо обдумать но без него работает нормально.

извинение не понял "и нельзя создать множество независимых пар? или можно?".

надо теперь написать для для свап, долгом нажатии, для мобильных устройств

рони 20.11.2015 12:54

Цитата:

Сообщение от ur5fit
извинение не понял "нельзя создать множество независимых пар".

три спойлера -- три ссылки каждая открывает свой div - можно?

ur5fit 20.11.2015 14:16

да суть такая (подсмотрена в 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;
}

рони 20.11.2015 14:22

ur5fit,
ок

ur5fit 20.11.2015 20:23

не много подправил код


Часовой пояс GMT +3, время: 13:29.