Самый простой вариант - хранить где-то текущий выбранный слой и текущий активный цвет. Для простоты - в глобальных переменных.
При клике на выбор слоя обновляем эту переменную и устанавливаем ей активный цвет, остальным слоям цвет ставим прозрачный.
При клике на цвет берем значение активного слоя и меняем его цвет.
Все решения работают одинаково и делают это плохо.
event.preventDefault на скролл и изменять положение руками. Если нужно затухание - делать через animationFrame/setInterval.
Правильнее всего не трогать скролл никогда ( за исключением случаев когда у вас промо сайт с каким-то совсем кастомным скролом, типа перелистывания целых страниц и т.д.). Это только мешает.
Посмотрите как реализован ngIf
На основании этого можете сделать свой велосипед.
Но вообще мне кажется вам стоит использовать роутер для таких операций.
Долго сражался с этим. Единственное решение, которое работало для балунов - искать метку руками и удалять все остальные из objectManager'а. Тоже костыль, но работает. С кластерами имхо ничего не сделать в данной реализации, т.к. они пересчитываются при добавлении новых и в общем случае кластера после пересчета может уже не существовать.
Есть довольно очевидный вариант - не вызывать загрузку в boundschange, если в данный момент открыт балун. Решение тоже костыльное, и тоже не самое лучшее.
Нужно написать цикл, который будет брать элемент массива по индексу и складывать в новый массив.
В чем именно непонятки? Цикл вы писать умеете как я вижу.
В голове полная каша. Примерно 70% указанных выше пунктов неточны или совсем не верны. Стоит взять любой фреймворк(например angular 1.x, как самый простой и быстрый для изучения) и сделать небольшой spa(можно прям из туториала angular-phonegap). Затем к этому туториалу добавьте бэкэнд в виде экспресса. Большая часть вопросов отпадет сама собой. Что касается изучения уже актуальных фреймворков, несмотря на огромную разницу в реализации общие подходы у ng2/react похожи (components, unidirectional data flow, ...) если понимать сами подходы - изучение основ конкретной реализации не должны занять больше недели. Намного больше времени уходит на изучение экосистемы(flow/typescript/webpack и т.д.)
Постоянно - тогда сервис $interval(почти аналогичен стандартному setInterval). Если нужно при каждом взаимодействии с бэком серез ajax - тогда $http interceptor на response error.
Я думаю, что стоит сделать сервис с rx/observable, либо данные для таблицы прокидывать через биндинг из сервиса и тогда можно будет ловить в onChanges изменение