当用户选择带有图像并在悬停时更改背景颜色时,JQuery 突出显示带有图像的菜单项
JQuery highlight menu item with an image when user selects it and change background color on hover
JQuery/Javascript newbie here.我创建了一个菜单。当用户将鼠标悬停在菜单中的某个项目上时,我希望背景颜色发生变化。(使用 CSS 很容易做到。当用户实际选择一个项目时,我希望在项目名称的顶部出现一个箭头(如带有背景图像的悬停效果),但是,与悬停效果不同,我希望箭头一直保留,直到用户选择菜单上的另一个项目。基本上,我正在尝试重现Zappos在这里所做的(请参阅鞋子左侧的迷你浮动菜单):http://www.zappos.com/dr-scholls-jamie-black-dot?zfcTest=fcl%3A0。
我查看了许多关于突出显示所选菜单项的 Stackoverflow 问题和答案,但没有一个是我正在寻找的,这正是 Zappos 浮动菜单的作用。
任何帮助将不胜感激!
阿南兹
看看我在jsfiddle中做了什么。
在zappos做类似的效果
$(document).ready(function() {
$('ul li').hover(
function() {
if ( !$('div').hasClass('blue') ) {
$(this).addClass('gray');
}
},
function() {
$(this).removeClass('gray');
}
);
$('ul li').click( function() {
$('ul li').removeClass('blue');
$(this).addClass('blue');
});
});
编辑:您可以通过向 css 类添加带有箭头的背景来添加所需的箭头效果。 取决于您想要悬停(灰色类)还是单击(蓝色类)的箭头
您可以使用 css 实现悬停效果。假设导航是一个带有"nav"类的无序列表,代码将如下所示:
.nav li a:hover {
background: #95ACC3;
}
至于点击效果,你需要使用 jQuery 将类添加到被点击的任何列表项。例如,下面的代码首先从所有列表项中删除类"active"(这可确保一次只有一个项目具有类"active"),然后将"active"类添加到单击的任何项。
$('.nav li').click(function(){
$('.nav li').removeClass('active');
$(this).addClass('active');
});
这是一个jsfiddle,其中包含我正在谈论的工作示例:http://jsfiddle.net/8CMxG/
相关文章:
- 显示菜单项
- 如何定义和渲染子菜单项,使用Aurelia's路由器
- 如何在没有2个项目的情况下更改菜单项href
- JQuery超级菜单全宽菜单项
- jQuery在部分上滚动时突出显示菜单项
- 突出显示菜单项及其子菜单项
- 突出显示菜单栏上的活动菜单项
- 可访问的更改菜单项,用于使用不引人注目的JS进行导航,而不是jQuery,
- 可访问性:为什么 Jquery 菜单明确将菜单项 tabindex 设置为 -1
- 当我选择菜单项时,如何播放html5播放器的视频
- 什么脚本隐藏父菜单项
- 如何在两种条件下显示相同的上下文菜单项
- 使用粘性滚动菜单链接打开手风琴式菜单项
- 使用CSS/JavaScript在活动页面上突出显示活动导航菜单项,无id
- 单击后要显示相关的菜单项
- 如何在浏览器中禁用或删除粘贴上下文菜单项
- 使用jquery突出显示下一个菜单项
- 在具有固定菜单的单页网站中定位当前菜单项
- 当用户选择带有图像并在悬停时更改背景颜色时,JQuery 突出显示带有图像的菜单项
- 一旦用户向下滚动页面150px,我如何将图像显示为菜单项?