【发布时间】:2016-03-24 17:59:31
【问题描述】:
试图让 DIV 在容器 DIV 的范围内来回移动。现在它继续向右滑动,而不是重置并返回左侧。
理想情况下,它应该在包含 DIV 框的情况下调整大小。代码如下:
var RIGHT = 1;
var LEFT = 0;
var bookDirection = RIGHT;
var containerwidth = $("#container").width();
var objectwidth = $("#book").width();
var displacement = 150;
var maxwidth = containerwidth - objectwidth / 2;
var minwidth = 0 + objectwidth / 2;
setInterval(function(){
var currentposition = $("#book").position().left;
$("#output").text("currentposition: " + currentposition + " > Displacement: " + displacement + " >Max width: " + maxwidth);
$("#output").text("summed: " + (currentposition + displacement));
$("#output2").text("max is: " + maxwidth);
//console.log("Book direction is: " +bookDirection);
if(currentposition + displacement <= maxwidth && bookDirection == RIGHT)
{
console.log('hit if');
$("#book").animate({
left: "+=" + displacement,
}, 1000, function(){
// Animation complete.
});//inner function call - anim complete
bookDirection == RIGHT
}
else if(currentposition + displacement >= minwidth && bookDirection == LEFT )
{ console.log('hit else if');
console.log('direction : ' + bookDirection + 'displacement: ' + displacement);
bookDirection = LEFT;
$("#book").animate({
left: "-=" + displacement,
}, 1000, function(){
// Animation complete.
});//inner function call - anim complete
}
else if(currentposition + displacement > maxwidth && bookDirection == RIGHT){
console.log('here');
$("#book").stop();
bookDirection = LEFT;
console.log(bookDirection);
}// end IF
}, 0); // setinterval
body{
color: red;
}
#container{
width: 1000px;
height: 200px;
border: solid 2px black;
}
#book{
position: relative;
left: 10px;
background-color: black;
width :100px;
height :100px;
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="day044.js"></script>
<link rel="stylesheet" type="text/css" href="day044.css">
</head>
<body>
<div id="clickme">
Click here
</div>
<div id="container"></container>
<img id="book">
<div id="output"></div>
<div id="output2"></div>
<div id="output3"></div>
</body>
【问题讨论】:
标签: jquery html jquery-animate slide