最初のクリックで機能しているボタンをクリックした後、フライトゥエフェットを作成しようとしていますが、gotoの位置がどういうわけか左:15と上15または左:0、上:0よりももう一度クリックすると
クローンが画像のIDを複製するため、問題は.clone()と.prependTo()のどこかにあると思いますが、アニメーションの終了後にクローン画像を削除する方法がわかりませんでした。
だから私はこれを機能させるためにいくつかの助けが必要です。
htmlは次のようになります:
<div class="container">
<div class="Pic" id="PiC_111"><a href="#"><img id="imG_111" src="img0.jpg"></a></div>
<div class="Cont">
<div class="desc"><!-- some text here --></div>
<form method="POST" action="func.php">
<!-- some form stuf -->
<input type="submit" class="send" name="send" value="send" id="111" />
</form>
</div>
</div>
<div class="container">
<div class="Pic" id="PiC_123"><a href="#"><img id="imG_123" src="img1.jpg"></a></div>
<div class="Cont">
<div class="desc"><!-- some text here --></div>
<form method="POST" action="func.php">
<!-- some form stuf -->
<input type="submit" class="send" name="send" value="send" id="123" />
</form>
</div>
</div>
<!-- lot more of this -->
JSはこのように見えます
jQuery(document).ready(function($){
$('input.send').click(function(){
var imgID = (this.id);
var posX = $('#imG_' + imgID).offset().left;
var posY = $('#imG_' + imgID).offset().top;
if($('#flytoID_' + imgID).length > 0) {
var targetX = $('#flytoID_' + imgID).offset().left;
var targetY = $('#flytoID_' + imgID).offset().top;
} else {
var targetX = $('#flytoTitleWrap').offset().left;
var targetY = $('#flytoTitleWrap').offset().top;
}
var gotoX = targetX - posX + 20;
var gotoY = targetY - posY + 20;
var newImageWidth = $('#PiC_' + imgID).width() / 3;
var newImageHeight = $('#PiC_' + imgID).height() / 3;
$('#PiC_' + imgID + ' a img')
.clone()
.prependTo('#PiC_' + imgID +' a')
.css({'position' : 'absolute', 'z-index' : '999999'})
.animate({opacity: 0.4}, 100)
.animate({opacity: 0.1, marginLeft: gotoX, marginTop: gotoY, width: newImageWidth, height: newImageHeight}, 1200, function(){
$('#notificationsLoader').html('<img src=\"images/loader.gif\" />');
$('#imglist').css({'background-position' : '-50px 0'});
});
});
});
前もって感謝します
jsfiddleにアップロードしました:http://jsfiddle.net/Piszi/vD256/12/