Использовать меньше JS и больше CSS. Ну и если что-то делается c помощью JS, то следить за ресайзом окна и пересчитывать все заново.
Вообще, там JS только классы по кликам навешивать должен, остальное должно быть на CSS.
Не обрезаться изображение не может - оно по формату не подходит, попробуйте поставить background-size: contain
и увидите. Но его можно правильно спозиционировать.