Jquery在动画后计算div的位置

时间:2010-08-31 08:08:04

标签: javascript jquery

嘿,我有一个div移动通过jquery动画,我试图计算div的位置。该位置是在点击时计算的,但是计算动画之前的位置,而不是动画之后的位置。

Sooo基本上我将如何进行动画制作,然后计算位置并隐藏适当的按钮?

这是我迄今为止所拥有的一个例子。实际上除了在动画完成之前计算var galleryItemLeft之外。 http://www.ehbeat.com/test/

<script type="text/javascript">
$(document).ready(function(){

//Check width of Gallery div
var galleryWidth = $("#Gallery").innerWidth();

//Check width of GalleryItem
var galleryItemWidth = $(".GalleryItem").innerWidth();

    $('.MoveRight').hide();

    $(".MoveRight").click(function(){
  $(".GalleryItem").animate({"left": "+=100px"}, "slow");
  $(".GalleryItem2").animate({"left": "+=140px"}, "slow");
});

$(".MoveLeft").click(function(){
  $(".GalleryItem").animate({"left": "-=100px"}, "slow");
  $(".GalleryItem2").animate({"left": "-=140px"}, "slow");
});

$(".Controls").live("click", function() {
    position = $(".GalleryItem").position();
    galleryItemLeft = position.left;

    if(galleryItemLeft >= "0") { 
        $('.MoveRight').hide();}
    else{
        $('.MoveRight').show();
    }

    if(galleryItemLeft <= galleryWidth - galleryItemWidth) {
        $('.MoveLeft').hide();}
        else{
        $('.MoveLeft').show();
    }
});

});
</script>

1 个答案:

答案 0 :(得分:3)

.animate()允许您在动画完成后拥有回调函数。

例如。

$('#clickme').click(function() {
  $('#book').animate({
    opacity: 0.25,
    left: '+=50',
    height: 'toggle'
  }, 5000, function() {
    // Animation complete. do stuff here
  });
});

找到div的位置,只需执行:

var leftPos = $('#mydiv').css('left');