Самое простое решение - поместить обоих в одного и того же родителя div
и дать родителю div
класс show-image
.
Мне нравится использовать .hover()
, чтобы сохранить несколько нажатий клавиш. (все, что делает hover - это .mouseenter()
и .mouseleave()
, но вам не нужно их печатать)
Кроме того, очень важно исчезнуть $(this).find(".the-buttons")
, так что вы можете менять только кнопку в зависании над div
, иначе вы изменили бы все .the-buttons
на всей странице! .find()
просто ищет потомков.
Наконец, .animate()
будет работать, но почему бы просто не использовать .fadeIn()
и .fadeOut()
JS:
jQuery(function() { // <== Doc ready
jQuery(".the-buttons").hide(); // Initially hide all buttons
jQuery('.show-image').hover(function() {
jQuery(this).find('.the-buttons').fadeIn(1500); // use .find() !
}, function() {
jQuery(this).find('.the-buttons').fadeOut(1500); // use .find() !
});
});
HTML: - как-то так
<div class="show-image">
<img src="http://i.stack.imgur.com/egeVq.png" />
<input class="the-buttons" type="button" value=" Click " />
</div>
CSS: - Примерно так. Ваш, скорее всего, будет другим.
div {
position: relative;
float:left;
margin:5px;}
div input {
position:absolute;
top:0;
left:0; }