0
我想添加轉換到div元素。 Transition成功應用於第一個添加的div元素。當我通過點擊.container
添加更多的div時,那麼這些新的div沒有這個動畫。 如何添加轉換到動態div?添加轉換到動態DOM元素
下面是我的代碼
var transition = 1;
var x = 0;
var left = 0;
draw('white');
var $rect = $('.rect');
var $container = $('.container');
var arr = ['red', 'green', 'black'];
var count = 0;
$('body').on('click', function() {
draw(arr[count]);
count++;
});
function init() {
setInterval(onEachStep, 1000/60);
}
function onEachStep() {
x += transition;
left = left + transition;
$rect.css('left', left + 'px');
if (x > $container.outerWidth() - $rect.outerWidth()) {
transition = -10;
}
if (x < 0) {
transition = 1;
}
}
function draw (color) {
var rect = $('<div />', {
'class': 'rect'
});
rect.css('background', color);
rect.appendTo('.container');
}
init();
.container {
background: lightblue;
height: 300px;
}
.rect {
width: 50px;
height: 20px;
position: absolute;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="container"></div>
一個良好的,但查詢'$( '矩形')不建議每秒'60倍。你可以在'onEachStep'外面移動'$ rect = $('。rect');並且只在需要時調用它。 – 2014-10-28 09:29:49
肯定不會是瓶頸。在Chrome中調用$('。rect')600次將需要3ms。但是的確如此,如果在繪圖函數中更新$ rect,則可以節省每秒0.3毫秒的時間。 – 2014-10-28 16:50:47
@DinuSorin能否在你的代碼中詳細說明'thisrect'變量嗎?你在哪裏宣佈它? – 2619 2014-10-28 18:01:14