/ / jQuery задръжте курсора на мишката над не работи правилно - javascript, jquery, html, jquery-animate, jquery-hover

jQuery мишката не работи правилно - javascript, jquery, html, jquery-animate, jquery-hover

Това, което искам да направя, е изображението да се движи точно когатомишката се задържа над нея и се връща в същото положение, когато мишката бъде свалена от изображението. Но това, което прави, е, че изображението отива вляво и изчезва, когато мишката се наведе над него. Моля, кажете ми каква е моята грешка.

<html>
<head>
<style>
img { position: relative;
}
</style>

<script src="/images/http://code.jquery.com/jquery-1.10.2.min.js" type = "text/javascript"></script>
<script type = "text/javascript">
$("#box img").hover(
function () {
$(this).animate({
right: "2px"
});
},
function () {
$(this).animate({
left: "2px"
});
}
);
</script>
</head>

<body>
<div id = "box">
<img src="/images/pathtimage/1.jpg" hspace="30"  height="350" width="220" >
</div>
</body>
</html>

Отговори:

4 за отговор № 1

JQuery "S animate() анимира CSS свойства, така че вероятно трябва да се придържате към анимиране на същото свойство като left и right са две различни CSS свойства

$(function() {
$("#box img").hover(function () {
$(this).animate({
left: "2px"
}, 600);
}, function () {
$(this).animate({
left: "0px"
}, 600);
});
});

Също така имайте предвид, че в някои случаи трябва да зададете начална стойност в CSS, тъй като jQuery не може да изчисли стойности по подразбиране като inherit или auto, а тази настройка на лявата и горната стойност не работи без позиция

#box img {position: relative; left: 0}

цигулка


1 за отговор № 2

Кодът трябва да бъде обвит в $ (document) .ready (). Той се изпълнява преди елементите да бъдат заредени в DOM. $(document).ready(function(){}) казва на jQuery да изчака, докато DOM се зареди, преди да изпълни вашия скрипт.

$(document).ready(function(){
$("#box img").hover(
function () {
$(this).animate({
right: "2px"
});
},
function () {
$(this).animate({
left: "2px"
});
}
);
});