我正在使用下面的 Javascript 为手风琴制作动画(它是这里解释的一个稍微修改的变体:http: //tympanus.net/codrops/2010/04/26/elegant-accordion-with-jquery-and-css3/ .
现在我想让第一个元素在页面加载时打开,所以我想我只是通过 Javascript 给它一些额外的类(并.active
通过 CSS 定义该状态)让它打开。
这有效,但是,如果我将鼠标悬停在除first-element
上述.active
类之外的任何元素上,第一个元素将保持其状态,并保持打开状态,直到我将鼠标悬停在它至少一次。
所以,我想要的是:如果用户将鼠标悬停在任何不是 first 的元素上,我的手风琴的第一个元素是打开的并折叠起来。我想我需要在hover
函数中添加一行,要么将类从第一个元素中移除,要么让新元素处于活动状态,但我不知道该怎么做并不断破坏它。
<script type="text/javascript">
jQuery(function() {
activeItem = jQuery("#accordion li:first");
jQuery(activeItem).addClass('active');
jQuery('#accordion > li, #accordion > li.heading').hover(
function () {
var jQuerythis = jQuery(this);
jQuerythis.stop().animate({'height':'280px'},500);
jQuery('.heading',jQuerythis).stop(true,true).fadeOut();
jQuery('.bgDescription',jQuerythis).stop(true,true).slideDown(500);
jQuery('.description',jQuerythis).stop(true,true).fadeIn();
},
function () {
var jQuerythis = jQuery(this);
jQuerythis.stop().animate({'height':'40px'},1000);
jQuery('.heading',jQuerythis).stop(true,true).fadeIn();
jQuery('.description',jQuerythis).stop(true,true).fadeOut(500);
jQuery('.bgDescription',jQuerythis).stop(true,true).slideUp(700);
}
);
});
</script>