1. Старайтесь реже вызывать ресурсоёмкие функции:
var color = getComputedStyle(dragObj);
Для расчёта позиции - используйте переменные, значения которых Вы УЖЕ знаете.
2. Не меняйте свойства и стили объекта при каждом событии! Меняйте каждые N-микросекунд или по событию: задержки (перестали тащить более 250ms), расстояние смещения, выход за границы и т.д.
3. В правилах CSS - включаем поддержку 3D ускорения для 2D объектов следующими правилами:
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
4. Попробуйте сразу после запуска "погасить" правый клик:
window.oncontextmenu = function(event) {
event.preventDefault();
event.stopPropagation();
return false;
};
5. Пробуйте удалить 300ms задержку с помощью
FastClick
6. Самые тяжёлые математические расчёты (вычисления столкновений, определение маршрута, преобразование матриц и т.д.) делайте через
WebAssembly