Я новичок в jQuery, поэтому я медленно все понимаю. На самом деле это застряло.
Цель. Я хочу создать событие, в котором я нажимаю кнопку, и перемещает элемент вправо. Затем я снова нажимаю на него, и он перемещает этот элемент назад влево.
Проблема: он работает в первый раз, но если вы снова нажмете его, он снова вернется вправо.
Добавлено мои стили, которые я вызывал
$(document).ready(function () {
var img = ".img";
var slideBody = "#bodyWrapper";
$(img).click(function () {
if ($(slideBody).css("left", "0") <= "true") {
$(slideBody).animate({
left: "200px"
}, 200);
} else {
$(slideBody).animate({
left: "0px"
}, 200);
}
});
});
.img {
display: block;
position: relative;
width: 50px;
height: 50px;
background: yellow;
opacity: 1;
left: 0px;
}
#bodyWrapper {
display: block;
width: 100%;
overflow: hidden;
left: 0px;
position: relative;
}
измените условие следующим образом:
if ( $(slideBody).css("left") == 0 ){
$( slideBody ).animate({left:"200px"}, 200);
} else {
$( slideBody ).animate({ left:"0px" }, 200);
}
Будет лучше добавить класс к элементу, который перемещается влево и/или вправо.
$( document ).ready(function() {
var img = ".img";
var slideBody = "#bodyWrapper";
$( img ).click(function() {
if ( $(slideBody).is(".atLeft")){
$( slideBody ).animate({left:"200px"}, 200);
$( slideBody ).removeClass('atLeft');
} else {
$( slideBody ).animate({ left:"0px" }, 200);
$( slideBody ).addClass('atLeft');
}
});
});
<= true
Что-то является либо истиной, либо ложью. Между ними нет ничего.