bir yaklaşım, daha sonra bir yer tutucu ile kaldırılacak div yerine tutucu ve orijinal olarak canlı olacaktır.
bu pasajı kullanarak: Positioning an element over another element with jQuery
Kodunuz (burada kaldırılmasını tetiklemek için öğenin üzerine tıklayın kullanılır) böyle bir şey değiştirilebilir
:
Demo
CSS
div { box-sizing: border-box; }
.item, .placeholder {
float: left;
width: 100px;
height: 100px;
border: 1px solid black;
margin: 5px;
position: relative;
background: white;
-webkit-transition: all 1s ease;
}
.placeholder {
opacity: 0;
border: 0px;
}
.item.hide {
border: 1px solid rgba(0,0,0,0);
margin: 0px;
top: 500px;
opacity: 0;
overflow: hidden;
z-index: -1;
}
.placeholder.hide {
width: 0;
height: 0;
margin: 0;
border: 0;
}
Senaryo
$('.item').on('click', function(evt) {
var $this = $(this);
var $new = $($this.clone());
$new.addClass('placeholder');
$this.replaceWith($new);
$this.positionOn($new);
$this.appendTo($('body'));
setTimeout(function() {
$this.css({top: '', left: ''});
$this.addClass('hide');
$new.addClass('hide');
}, 0);
});
Pasaj dan: ızgara çöker isePositioning an element over another element with jQuery
// Reference: http://snippets.aktagon.com/snippets/310-positioning-an-element-over-another-element-with-jquery
$.fn.positionOn = function(element, align) {
return this.each(function() {
var target = $(this);
var position = element.position();
var x = position.left;
var y = position.top;
if(align == 'right') {
x -= (target.outerWidth() - element.outerWidth());
} else if(align == 'center') {
x -= target.outerWidth()/2 - element.outerWidth()/2;
}
target.css({
position: 'absolute',
zIndex: 5000,
top: y,
left: x
});
});
};
Şimdi eski div dışına canlandırır. Eğer koduna başka kütüphane eklemek isteyen varsa
, Masonry/Isotope by Metafizzy bakabilirsiniz. Sadece böyle bir şey yapmak için tasarlanmışlardı.
Teşekkür: Sadece burada bakınız yerine
.fadeout()
ait
.hide()
kullanın. Bir yan not olarak Bootstrap kullanıyorum ve zaten 'hide' sınıfını tanıttı, bu yüzden çözümün neden başlangıçta işe yaramadığını anlamak biraz zaman aldı. JQuery sürümü için – Lauri+1 dahil – brunoais