Выражения устарели и удалены в IE8 (если вы не в режиме совместимости).Они также снижают производительность, и вы должны держаться от них подальше, если можете, используя вместо этого JavaScript.
Вам не нужно использовать eval () внутри expression () , и это является причиной вашей ошибки. eval () ожидает строку, но вы передаете ей результат переменной, которая является Number .Вынимайте eval () :
"expression(" + scrollTopExpr + ")";
expression () уже оценивает переданное вами выражение, поэтому eval () совершенно ненужно.