Затемнение пунктов меню
Здравствуйте все!
Выручайте устал уже читать и искать выход Есть html
<div class="s1">
<div class="s2">
<div class="p1">
<ul class="subMenus">
<li><a href="#">Sub menu 1 item 1</a></li>
<li><a href="#">Sub menu 1 item 2</a></li>
<li><a href="#">Sub menu 1 item 3</a></li>
<li><a href="#">Sub menu 1 item 4</a></li>
</ul>
</div>
<div class="p1">
<ul class="subMenus">
<li><a href="#"></a></li>
</ul>
</div>
<div class="p1">
<ul class="subMenus">
<li><a href="#">Sub menu 3 item 1</a></li>
<li><a href="#">Sub menu 3 item 2</a></li>
<li><a href="#">Sub menu 3 item 3</a></li>
<li><a href="#">Sub menu 3 item 4</a></li>
</ul>
</div>
</div>
</div>
Нужно чтобы при наведении на <li> другие <li> затемнялись и затемнялся .p1 Вот этот код работает но только если все li под одним <ul> и <div>, мне данный вариант не подходит так как слетит другой скрипт
$(document).ready(function(){
$(function() {
$("ul.subMenus li").css("opacity","1.0");
$("ul.subMenus li").hover(function () {
$(this).siblings().stop().animate({opacity: 0.5},
"slow");
},
function () {
$("ul.subMenus li").stop().animate({opacity: 1.0},
"slow");
});
});
});
Прошу вашей помощи :help: |
|
Цитата:
|
так тебе нужно ?
<style>
#div {
border: solid black 1px;
display: inline-block;
}
.hover {
background: red;
transition: 3s;
}
.normal {
background: #fff;
transition: 3s;
}
a {
display: inline-block;
}
</style>
<div id="div">
<div class="s1">
<div class="s2">
<div class="p1">
<ul class="subMenus">
<li><a href="#">Sub menu 1 item 1</a></li>
<li><a href="#">Sub menu 1 item 2</a></li>
<li><a href="#">Sub menu 1 item 3</a></li>
<li><a href="#">Sub menu 1 item 4</a></li>
</ul>
</div>
<div class="p1">
<ul class="subMenus">
<li><a href="#"></a></li>
</ul>
</div>
<div class="p1">
<ul class="subMenus">
<li><a href="#">Sub menu 3 item 1</a></li>
<li><a href="#">Sub menu 3 item 2</a></li>
<li><a href="#">Sub menu 3 item 3</a></li>
<li><a href="#">Sub menu 3 item 4</a></li>
</ul>
</div>
</div>
</div>
</div>
<script>
var div = document.getElementById('div');
div.addEventListener('mouseover', fn, false);
function fn (e) {
e = e.target || e.srcElement;
if(e.tagName.toLowerCase() !== 'a') return;
var elem = div.querySelectorAll('a')
for(var i = 0; i < elem.length; i++) {
if(elem[i].className !== 'hover') elem[i].className = 'hover';
}
e.className = 'normal'
div.addEventListener('mouseout', out, false);
}
function out (e) {
e = e.target || e.srcElement;
if(e.tagName === 'A') return;
var elem = div.querySelectorAll('a')
for(var i = 0; i < elem.length; i++) {
if(elem[i].className != 'normal') elem[i].className = 'normal';
}
div.removeEventListener('mouseout', out);
;
}
</script>
|
Да СПАСИБО громаднейшее! почему-то не работает если вставить в head и в моем случае hover (красный цвет) пропадает только тогда когда мышкой наводишь на адресную строку не знаете в чем может быть дело
|
<script> </script> должен бить в самом низу html страницы , можно после body.
я чуток изменил скрипт можешь опять скопирувать теперь будет пропадать цвет когда курсор убираешь с ссылки ! и перепиши в стили ООП или эти функции возьми в анонимную функцию (function(){ cod...}()); |
может я тебя не правильно понял , пиши попробую помочь !
|
Спасибо, хорошо что есть такие люди
|
щас попробую
|
СПАСИБО все работает а если не секрет в чем отличие от предыдущего
|
| Часовой пояс GMT +3, время: 16:38. |