0

我做了一个简单的动画Jquery代码,但是这段代码太长了,我想知道是否可以缩短这些长行:

我的 Jsfiddle 示例:http: //jsfiddle.net/ZDhzJ/2/

$("#UN").mouseover(function() {  
    $("#UNbis").stop().animate({opacity: 1}); 
});
$("#UN").mouseout(function() {  
    $("#UNbis").stop().animate({opacity: 0}); 
});

$("#DEUX").mouseover(function() {  
    $("#DEUXbis").stop().animate({opacity: 1}); 
});
$("#DEUX").mouseout(function() {  
    $("#DEUXbis").stop().animate({opacity: 0}); 
});

$("#TROIS").mouseover(function() {  
    $("#TROISbis").stop().animate({opacity: 1}); 
});
$("#TROIS").mouseout(function() {  
    $("#TROISbis").stop().animate({opacity: 0}); 
});

$("#QUATRE").mouseover(function() {  
    $("#QUATREbis").stop().animate({opacity: 1}); 
});
$("#QUATRE").mouseout(function() {  
    $("#QUATREbis").stop().animate({opacity: 0}); 
});
4

3 回答 3

2

加入选择器和事件处理程序,添加bis到目标 ID:

$('#UN, #DEUX, #TROIS, #QUATRE').on('mouseenter mouseleave', function(e) {
    $('#'+this.id+'bis').stop().animate({opacity: e.type=='mouseenter'?1:0});
});

小提琴

于 2013-10-21T10:40:59.150 回答
1

你可以这样做:

  • myDiv向要悬停的 div添加一个类
  • 使用函数作用域查找spandiv 内部。

JS:

$(".myDiv").mouseover(function() {  
    $(this).find('span').stop().animate({opacity: 1}); });
$(".myDiv").mouseout(function() {  
    $(this).find('span').stop().animate({opacity: 0}); });

演示:小提琴

于 2013-10-21T10:40:31.353 回答
0
$('#UN, #DEUX, #TROIS, #QUATRE').hover(function(e) {// work as mouseover
    $('#'+this.id+'bis').stop().animate({opacity: 1});
},
function(e){//work as mouseout
    $('#'+this.id+'bis').stop().animate({opacity: 0});

});

可以尝试悬停

演示

于 2013-10-21T10:43:23.740 回答