我有一堆 <div class="circle">...</div>
我计划将其动画化,就好像它们是粒子效果一样,在它们淡入时进入它们的最终位置。
在我的 javascript 中我有以下内容:
$(document).ready(function(){
allCircles = $(".circle");
for (var i = 0; i < allCircles.length; i++) {
console.log('hello: ' + allCircles[i].offsetTop + ' , ' + allCircles[i].offsetLeft);
}
allThings = $("*");
allThings.fadeIn(2500);
for (var i = 0; i < allCircles.length; i++) {
console.log('hello: ' + allCircles[i].offsetTop + ' , ' + allCircles[i].offsetLeft);
offsetTop 和 offsetLeft(在 css 文件中定义)是它们的最终位置。在 for 循环中,我注意到在 fadeIn 之前,offsetTop 和 offsetLeft 属性都为零。只有在 fadeIn 事件被触发后,css offset 属性才会生效。为什么 jQuery 会在动画淡入之前将所有内容清零?
最佳答案
如果您的圈子在淡入之前在您的 CSS 中是 display: none
,您将不会获得任何位置偏移。我建议使用 opacity: 0
并改用 .animate({opacity: 1})
。
关于javascript - 强制 jQuery 在 fadeIn() 之前识别某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150079/