jQuery bind unbind анимация
Я сделал этот кусок кода, я пытаюсь анимировать блок текста /div вперед и назад, но почему это работает только в первый раз для функции "placeRight"? Что-то не так с right : "+=750"
атрибут?
$(document).ready( function ( ) {
$("#text").click(placeRight);
});
var placeRight = function() {
$("#text").animate( { right : "+=750" }, 1300);
$("#text").unbind("click");
$("#text").click(placeLeft);
}
var placeLeft = function() {
$("#text").animate( { left : "+=750" }, 1300);
$("#text").unbind("click");
$("#text").click(placeRight);
}
3 ответа
Решение
Да, у вас есть двойное время $("#text").animate( { left : "+=750" }, 1300);
так что вы всегда пытаетесь поместить его в положение +750px
изменить это так
$(document).ready( function ( ) {
$("#text").click(placeRight);
});
var placeRight = function() {
$("#text").animate( { right : "+=750" }, 1300);
$("#text").unbind("click");
$("#text").click(placeLeft);
}
var placeLeft = function() {
$("#text").animate( { left : "-=750" }, 1300); //or { right: 0 }
$("#text").unbind("click");
$("#text").click(placeRight);
}
Вы можете сделать это с меньшим количеством кода. Вот рабочая демонстрация: http://jsfiddle.net/kkZtD/1/
Попробуй это:
$(document).ready(function(){
$("#text").click(function(){
$(this).animate({ right: "+=750" }, 1300).animate({ left: "0" }, 1300);
});
});