Я создал простой 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});
});
Присоединитесь к селектору и обработчику событий, добавьте bis
к целевому идентификатору:
$('#UN, #DEUX, #TROIS, #QUATRE').on('mouseenter mouseleave', function(e) {
$('#'+this.id+'bis').stop().animate({opacity: e.type=='mouseenter'?1:0});
});
Вы можете сделать это:
myDiv
в divs, которые будут парить наspan
внутри divs с помощью области функций.JS:
$(".myDiv").mouseover(function() {
$(this).find('span').stop().animate({opacity: 1}); });
$(".myDiv").mouseout(function() {
$(this).find('span').stop().animate({opacity: 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});
});
можно попробовать с зависанием
см. ДЕМО