Евгений Петров: основная проблема MutationEvent - это попытка синхронно менять DOM в обработчике всплывающего Mutation события. Да, это может привести к зацикливанию или тормозам. Но топикстартер будет слушать DOMNodeInserted и не будет добавлять новые элементы (по его словам) в обработчике, только менять атрибуты, соответственно, его эта проблема tuj не коснется. А так вы конечно правы, сам я по возможности использую MutationObserver.
Евгений Петров: У топикстартера просьба сильно проще, чем решение по вашей ссылке.
Также MutationObserver требует IE >= 11, а MutationEvent лишь >= 9 (хоть в вашем решении и есть полифил).
Сергей Протько: В смысле? В моем примере событие будет услышано только, когда в elem добавится другой элемент. Можете поиграть с консолью браузера. Под запрос топикстартера другое и не требуется.
Сергей: кажется, я выше дал неправильный совет :) В вашем случае будет правильно так (если скролл появляется на блоке ".project_open")
var top = $('.project_open.active').scrollTop();
Сергей:
1. скроллится window, а не document.
2. скролл может быть у любого элемента на странице (например, на вашем большом блоке). Для простых элементов расстояние лучше считать не с помощью scrollTop, а так:
var sctop = $(elem).get(0).scrollHeight - $(elem).get(0).clientHeight;