Изменение фона элемента при клике.
Всем здрасте.
Помогите плиз реализовать задумку. Просто средствами сss не получаеться. Собственно вот - есть меню. При клике на пункт меню ,он раскрываеться и выпадают подпункты. При клике щераз оно закрываеться. Это сделанно с помщью функции на java. Так вот мне надо добавить еще один эфект к этому делу. Чтобы при клике и раскрытии меню, менялась картинка заднего фона <li> menu 1 , так же у него чтобы убирался маркер списка ( но только у него). При поворном клике пункт <li> menu1 закрывался и возвращался в первоначальное состояние. ( становилась бэграунд картинка прежняя и маркер на месте ). вот есть код - <html> <head> <link href="styles/catalog.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" language="javascript"> function allClose(){ var list = document.getElementById("menu_catalog").getElement sByTagName("ul"); for(var i=0;i<list.length;i++){ list[i].style.display = "none"; } } function openMenu(node){ var subMenu = node.parentNode.getElementsByTagName("ul")[0]; subMenu.style.display == "none" ? subMenu.style.display = "block" : subMenu.style.display = "none"; } </script> <styles> #menu_catalog { background:#81A192; width:200px; list-style-image: url(../img/rect_orange.jpg); padding:0; margin:0; font-size: 10pt; } #menu_catalog li { padding:3px; margin-left: 20px; } #menu_catalog li a{ color:#fff; font-family:verdana,arial,sans-serif; text-decoration:none; list-style-type:none; display: block; } .sub_catalog { padding:0; margin:0; list-style-image:none; margin-left: 5px; } .sub_catalog li{ border:0; color:#fff; list-style-image: url(../img/catalog_dot.jpg); margin-left: 15px; } </styles> </head> <body onload="allClose()"> <ul id="menu_catalog"> <li><a href="#" onclick="openMenu(this);return false">Menu 1</a> <ul class="sub_catalog" > <li><a href="#">sub menu 1</a></li> <li><a href="#">sub menu 2</a></li> <li><a href="#">sub menu 3</a></li> <li><a href="#">sub menu 4</a></li> <li><a href="#">sub menu 5</a></li> <li><a href="#">sub menu 6</a></li> <li><a href="#">sub menu 7</a></li> </ul> </li> <li ><a href="#" onclick="openMenu(this);return false" >Menu 2</a> <ul class="sub_catalog" > <li><a href="#">sub menu 1</a></li> <li><a href="#">sub menu 2</a></li> <li><a href="#">sub menu 3</a></li> <li><a href="#">sub menu 4</a></li> <li><a href="#">sub menu 5</a></li> <li><a href="#">sub menu 6</a></li> <li><a href="#">sub menu 7</a></li> </ul> </li> <li ><a href="#" onclick="openMenu(this);return false" >Menu 3</a> <ul class="sub_catalog" > <li><a href="#">sub menu 1</a></li> <li><a href="#">sub menu 2</a></li> <li><a href="#">sub menu 3</a></li> <li><a href="#">sub menu 4</a></li> <li><a href="#">sub menu 5</a></li> <li><a href="#">sub menu 6</a></li> <li><a href="#">sub menu 7</a></li> </ul> </li> </ul> </body> </html> Спасибо! |
psydo,
Вот это решение - не подойдет ? => http://javascript.ru/forum/dom-windo...vigacii-3.html |
хммм немного не то ... мне собственно надо чтобы при раскрытии поменялся бэкграунд у элемента который раскрылся (который являеться родителем)... тот что в предложенном примере являеться категория1. При нажатии и закрытии надо чтобы всё возвращалось как было. Здесь в этом примере цвет у внутренних пунктов меняеться а не у родительского .
|
Цитата:
|
К сожалению даже в общем не подходит. Вся соль моей проблемы в том чтобы мне нужно изменять бэкграунд и убрать маркер элемента на который произведено нажатие , и возвращение в первоначальное состояние после повторного нажатия. тут после нажатия на элемент его внешний вид не меняеться. происходит тоько раскрытие списка.
|
Цитата:
function openMenu(node){
var subMenu = node.parentNode.getElementsByTagName("ul")[0];
subMenu.style.display == "none" ? (subMenu.style.display = "block", node.style.background = "black", node.parentNode.style.listStyleType = "none") : (subMenu.style.display = "none", node.style.background = "#81A192", node.parentNode.style.listStyleType = "disc");
}
|
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Вопросы</title>
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>
<link href="styles/catalog.css" rel="stylesheet" type="text/css" />
<style>
#menu_catalog {
background:#81A192;
width:200px;
list-style-image: url(../img/rect_orange.jpg);
padding:0;
margin:0;
font-size: 10pt;
}
#menu_catalog li {
padding:3px;
margin-left: 20px;
}
#menu_catalog li a{
color:#000;
font-family:verdana,arial,sans-serif;
text-decoration:none;
list-style-type:none;
display: block;
}
.sub_catalog {
padding:0;
margin:0;
list-style-image:none;
margin-left: 5px;
}
.sub_catalog{
display:none;
}
#menu_catalog li.ShoW{
list-style-type:none;
background-color:#A2BFD8;
margin-bottom:2px;
}
.sub_catalog li{
border:0;
color:#fff;
list-style-image: url(../img/catalog_dot.jpg);
margin-left: 15px;
}
</style>
</head>
<body>
<ul id="menu_catalog">
<li><a href="#">Menu 1</a>
<ul class="sub_catalog" >
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
<li><a href="#">sub menu 7</a></li>
</ul>
</li>
<li ><a href="#">Menu 2</a>
<ul class="sub_catalog" >
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
<li><a href="#">sub menu 7</a></li>
</ul>
</li>
<li ><a href="#">Menu 3</a>
<ul class="sub_catalog" >
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
<li><a href="#">sub menu 7</a></li>
</ul>
</li>
</ul>
<script>
$(".sub_catalog").parent('li').find("a:first").click(function () {
var ULcng = $(this).next()
ULcng.parent('li').toggleClass('ShoW')
ULcng.toggle('slow')
return false;
});
</script>
</body>
</html>
|
Спасибо огромное... То что нужно!
|
А подскажите еще такую вещь, как сделать чтобы это меню при нажатии на ссылку в menu 1 перекидывало на страницу и уже на этой странице подпункты sub menu 1 ,2,3 итд были в развернутом виде???
|
| Часовой пояс GMT +3, время: 17:56. |