2011-02-09 2 views
2

Недавно я реализовал небольшую коробку на своем веб-сайте в нижней части страницы, чтобы ее расширить, когда мышь нависает над ней ... Это код, и все это отлично работает.Изменение от наведения до щелчка?

CSS

#box{ 
    position:absolute; 
    width:300px; 
    height:20px; 
    left: 33%; 
    right: 33%; 
    min-width: 32%; 
    bottom:0; 
    background-color: #353535; 
} 

Javascript

$('#box').hover(function() { 
    $(this).animate({ 
     height: '220px' 
    }, 150); 
},function() { 
    $(this).animate({ 
     height: '20px' 
    }, 500); 
}); 

Но мне интересно, как я бы идти об изменении этого, чтобы открыть и закрыть ее щелчком, а не мышь парит над Это?

Я редактировал его ...

$('#box').click(function() { 
    $(this).animate({ 
     height: '220px' 
    }, 150); 
},function() { 
    $(this).animate({ 
     height: '20px' 
    }, 500); 
}); 

И это работает, чтобы открыть коробку. Но я не могу заставить его снова закрыться с другим щелчком.

Так близко еще до сих пор! : P

+0

Что библиотеки вы используете? Возможно ли, что функция наведения ожидает два параметра, и функция click ожидает только одного? – awm

+0

Я использую библиотеку jQuery. – Flickdraw

+0

Я вижу, что вы добавили тег jQuery ... хорошо! – awm

ответ

2

это должно работать

$('#box').toggle(function() { 
    $(this).animate({ 
     height: '220px' 
    }, 150); 
},function() { 
    $(this).animate({ 
     height: '20px' 
    }, 500); 
}); 
+0

Удивительный, работает сказочно. Спасибо, парни! – Flickdraw

1

Вы можете сделать:

$('#box').click(function() { 
    if ($(this).is(':visible')) { 
    $(this).hide(); 
    return; 
    } 

    $(this).animate({height: '220px'}, 150); 
}); 

На щелчку, он скроет элемент, если виден еще анимировать его.

+0

Привет, спасибо за ответ, но это не сработало. Когда я щелкнул по ящику внизу экрана, а не появлялся, он просто исчез. – Flickdraw

2

Вы можете, вероятно, просто использовать toggle event handler вместо событие щелчка, как так:

$('#box').toggle(function() {...}, function() {...}); 
Смежные вопросы