Я пытаюсь создать некоторые выпадающие элементы с помощью CSS и jquery. Вот чего я пытаюсь достичь:
- При наведении курсора мыши на определенное слово в предложении цвет фона слова изменяется, и появляется выпадающий список с несколькими вариантами (с использованием того же цвета фона).
- Цвет фона исходного выделенного слова должен сохраняться
при наведении указателя мыши на параметры ниже.
- После выхода из выпадающего меню оно должно вернуться к скрытому, а
исходное слово должно вернуться к прозрачному фоновому цвету.
Решение, которое у меня есть на данный момент, не работает идеально. При наведении курсора выпадающий элемент немного мигает. Мне интересно, кто-нибудь мог бы предложить несколько лучших подходов?
Я думаю, что то, что я сделал, на самом деле немного взломано. Я не уверен, как выбрать конкретный элемент li, над которым пользователь изначально наводит курсор, чтобы я мог изменить цвет bg этого конкретного элемента (без специального назначения идентификаторов каждому родительскому элементу li). Поэтому вместо того, чтобы оставить выпадающий список, я просто изменяю все элементы li на прозрачные, а затем должен изменить все элементы на синий цвет bg, если слово будет выделено снова. Также при наведении курсора на подэлементы я каждый раз эффективно меняю цвет bg, что также не кажется лучшим способом сделать это.
Вот JavaScript:
$('#nav li').hover(
function () {
$(this).css('background-color', '#A7B7FF'); // to set parent item to blue
$('ul', this).css('background-color', '#A7B7FF'); // set sub items to blue
//show its submenu
$('ul', this).css('z-index', '600'); // so it overlaps other drop down below
$('ul', this).slideDown(100);
},
function () {
//hide its submenu
$('ul', this).slideUp(100,
function() {
$('li').css('background-color', 'transparent'); // callback so parent item returns to transparent
}
);
}
);
Для полного примера посмотрите здесь: http://jsfiddle.net/A4r2m/1/
Большое спасибо
javascript,jquery,css,