0

请帮我解决这个问题。我有一个代码,如果单击 moveLeft,则将 div 从中心向左移动,当我使用 jquery animate() 单击 moveCenter 时,将向左移动到中心;下面是我的代码:

<html>
<head>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script type="text/javascript">
// Store offset before any animations
// (using .each here, but it could also be done in a click handler,
// before starting the animation)
$(document).ready(function(e) {
    // Retrieve the offsets later
    var element = $('.page-container');
    $('.moveLeft a').on('click', function(){
            element.data("originalOffset", element.offset());
            $('.page-container').animate({left:-element.offset().left*2},'slow');
    });

    $('.moveCenter a').on('click', function(){
            var offsetBack = element.data("originalOffset");
            $('.page-container').animate({left:offsetBack.left},'slow');
    });

});

</script>
<style type="text/css">
.page-container
{
    width:700px;
    height:1000px;
    background:#000;
    position:absolute;
    margin:0px auto;
    left:0;
    right:0;
}
</style>
</head>
<body>
<div class="moveLeft"><a href="#">MoveLeft</a></div>
<div class="moveCenter"><a href="#">MoveCenter</a></div>
<div class="page-container"></div>
</body>
</html>

上面的代码,从来没有为我工作过。我也尝试使用 jquery data() 但也不起作用。

我需要使用另一个函数而不是动画()吗?

谢谢

4

1 回答 1

2

请在这里检查这个小提琴:http: //jsfiddle.net/9E2WQ/1/

你非常亲近。

问题是每次单击.moveLeft a它都会更新开始位置。这将意味着element永远不会回到中心。

于 2013-09-14T06:32:27.377 回答