Скрыть все по hover, кроме активного
Блин, что то я запарился с элементарной ситуевиной...
Есть схема (картинка jpg) в div-е. Картинка фоновая и задана через background-size: cover. В этом диве расставлены подсказки по схеме (тоже div-ы c одинаковыми ID). Все работает просто - наводишь курсор на подсказку, cover - сбрасывается и фоновая схема позиционируется увеличивая то место, где стоит подсказка. Задача в том, что бы при наведении на одну подсказку другие скрывать. Казалось бы чего там, CSS :hover и всего делов то. Но если с помощью CSS то нужно каждому div-у с подсказкой давать уникальный ID и перебирать их все, описывая каждое событие. Более того, в таком варианте я не могу получить доступ (скрыть) к тем div-ам, которые стоят выше в коде по событию элемента который ниже в коде. Пробовал на JS - все можно сделать, но опять же нужно перчислять все ID подсказок, что неудобно и не практично ибо на каждой схеме их будет разное количество. Думаю нужно написать функцию, логику, и запускать ее по событию на каждой подсказке. Вот только как это сделать с одинаковыми ID и не затрагивать активный элемент (у которого такой же ID) на который в данный момент наведен курсор? <div id="combox"> <div class="cont"></div> <div class="cont"></div> <div class="cont"></div> </div> Пробовал и так: (function() { var switcher = $('[class *= "cont"]'), target = $('#combox div'); switcher.hover.not(this)( function() { target.hide(); }, function() { target.show(); } ); })(); И так: var imgid; $('.cont').mouseenter(function(){ imgid = this.id; $('.cont').each(function(){ if(this.id==imgid) $(this).stop(false,true).css('visibility', 'hidden'); else $(this).stop(false,true).css('visibility', 'visible'); }); }); В общем подскажите плиз.. Вопрос видать детский совсем...:blink: |
Пробую сейчас с .not(this) Но, что то не как...:-/
|
div:not(:hover) { color: #f00; } Не пойдет? |
Цитата:
|
У вас 3 элемента в родителе, и для них подсказки, навел - есть, укатил - нет. Не понятна проблема, а div:not(:hover) тоже самое что и hover.not(this). Можно всем скрыть и id для этого не нужно, а у текущего показать, если уж какая-то проблема с доступом.
|
Цитата:
<script> $("div[id^='cont']").hover( function () { $("div[id^='cont']").not(this).css ("display","none"); }, function () { $("div[id^='cont']").not(this).css ("display","block"); } ); </script> НА CSS не получится, говорю же, что не могу получить доступ к первому диву с второго или третьего по списку. Вот от первого к второму и тд. пожалуйста. Тут без JS я так понял никак. Если |
Часовой пояс GMT +3, время: 09:49. |