【发布时间】:2019-10-30 11:35:12
【问题描述】:
我正在建立一个新网站,并想通过 jQuery 为菜单实现一些 css 动画。
我为此使用 WordPress,并且我安装的主题有一个大型菜单样式插件。每个菜单链接的子菜单具有不同的背景颜色。鼠标悬停时子菜单淡入。
我想要做的是让菜单栏在子菜单的动画淡入的同时改变背景颜色。所以持续时间等应该完美匹配。
由于每个链接的子菜单都有不同的背景颜色,我希望菜单栏的背景颜色与当前活动子菜单的背景相匹配。我想它会从 menulink.hover() 之类的东西开始。
重要的一点:如果您轮流悬停不同的菜单链接,子菜单会相互淡入。所以很明显我希望菜单栏的背景颜色也可以随着悬停不同的菜单链接而相互淡入。
免责声明:我几乎没有 jQuery/JS 经验。 :)
我试过了:
- 在每个菜单链接的类之间切换,然后使用 CSS 设置不同的背景颜色、过渡效果
- item.css(没有工作,因为我无法设置持续时间)
- item.animate(背景颜色变化不匹配,加上颜色不会相互褪色;即,如果您将鼠标悬停在“菜单链接 1”然后“菜单链接 2”,则背景颜色会略有变化两种背景颜色之间的白色变化,而子菜单保持 100% 不透明度并平滑地相互淡入)
var jnews_menu = [$('#menu-item-3646'),$('#menu-item-3647'),$('#menu-item-3648'),$('#menu-item-4123')];
//this is the variable for menu bar
var jnews_menubar = $('.jeg_navbar');
var jnews_nav_border = $('.jeg_nav_row');
jnews_menu.forEach(myFunction);
function myFunction(item, index) {
item.hover(function(){
switch(index) {
case 0:
jnews_menubar.animate({backgroundColor: "#ff3996"}, 350 );
jnews_nav_border.animate({borderBottomColor: "transparent"}, 350) ;
break;
case 1:
jnews_menubar.animate({backgroundColor: "#ff9b39"}, 350 );
jnews_nav_border.animate({borderBottomColor: "transparent"}, 350 );
break;
case 2:
jnews_menubar.animate({backgroundColor: "#9ce4ff"}, 350 );
jnews_nav_border.animate({borderBottomColor: "transparent"}, 350) ;
break;
case 3:
jnews_menubar.animate({backgroundColor: "#cd9cff"}, 350);
jnews_nav_border.animate({borderBottomColor: "transparent"}, 350 );
break;
}
}, function(){
jnews_menubar.animate({backgroundColor: "transparent"}, 350 );
jnews_nav_border.animate({borderBottomColor: "#4ac3ef"}, 350 );
});
}
有什么想法吗?
【问题讨论】:
-
什么是
jnews_menu?你应该使用正确的变量名 -
对不起,我似乎没有复制和粘贴所有代码。 :)
标签: jquery jquery-color