Например,
в вашей функции перемещения может быть сделано несколько изменений, которые улучшат ситуацию.
first, $$('.rightCont')
и $$('.leftCont')
- селекторы, которые пересекают dom каждый раз, когда вы вызываете функцию. если вы не ожидаете изменения элементов массива, почему бы не кэшировать их в глобальные переменные, например:
var conts = {
left: $$("div.rightCont"),
right: $$("div.leftCont")
};
// then just refer to them within function move like so...
conts.left.each(...); // etc.
когда вы устанавливаете размерыStyle в модуле mootools по умолчанию px, в любом случае нет смысла объединять top (int) и строку «px», esp IE может замедляться, так как строки неизменяемы ...
также, если вы делаете что-то вроде el.setStyle('top', n)
, тогда вы можете предположить, что el.style.top будет n, а дальше вы делаете if(el.getStyle('top') < h)
и if(parseInt(el.getStyle('top')) > 400)
, два бессмысленных поиска.
Вы действительно можете ускорить это, выполнив один цикл для обоих типов элементов, я считаю ... в любом случае, гл.
с использованием el.getPosition().y
прибудет уже как int, так что вам не нужен parseInt (не нужно много экономить на этом процессоре, так как фреймворк, вероятно, делает то же самое). Кроме того, когда вам нужен parseInt, используйте mootools 'number.toInt()
вместо этого, он может быть