Уничтожение нескольких сцен scrollmagic
Я использую Scrollmagic в угловом приложении js. Мое приложение имеет боковую панель справа с бесконечной прокруткой. Есть разделы, которые придерживаются определенное количество времени, а затем отклеиваются, как показано ниже.
- Раздел А появляется на виду и торчит
- Раздел A остается липким на несколько пикселей, а затем снимает
- Раздел B появляется и торчит через несколько пикселей
- Секция B остается липкой в течение нескольких пикселей, а затем отклеивается и так далее.
В результате я создаю несколько сцен и добавляю их в scrollMagicController. Сейчас я подозреваю утечки памяти из-за скроллмагического сохранения DOM-узлов, и профилировщик кучи devtools доказывает это. Я знаю, что есть метод уничтожения для сцены и контроллера, который нужно вызывать, чтобы прояснить ситуацию, но я не могу понять, как уничтожить несколько узлов. Ниже я попробовал
var scrollMagicCtrl = new ScrollMagic.Controller();
//create scene dynamically whenever stickyContainerInView event fires
scope.$on('stickyContainerInView', function(event, inViewElement) {
new ScrollMagic.Scene({
triggerElement: someElement, //Selector or DOM object that defines the start of the scene
triggerHook: 'onLeave', //sets the position of trigger hook w.r.t viewport
duration: someDuration, //The duration(in pixels) for which the element will remain sticky
offset: -60 //Offset Value for the Trigger hook position
})
.setPin(someContainer)
.addTo(scrollMagicCtrl);
});
//clean up things on angular's destroy method
$scope.$on("$destroy", function() {
scrollMagicCtrl.destroy();
scrollMagicCtrl = null;
});
Я думаю, мне просто нужно вызвать метод уничтожения контроллера, и он должен автоматически уничтожить все сцены, добавленные в него, но, к сожалению, он не работает таким образом.
Снимок экрана: отсоединенный профилировщик кучи дерева узлов DOM
Любая помощь о том, как я должен разобраться?