Проблема с этой строкой кода, которую вы пробовали:
window.addEventListener('scroll', function() { return this.toggle($(window)); });
, заключается в том, что вы забыли, что область действия this
меняется. Если бы вы использовали функцию стрелки, как вы делали с примером jQuery, вы бы уже решили эту проблему.
window.addEventListener('scroll', () => { return this.toggle($(window)); });
Это также можно немного сократить, удалив фигурные скобки и return
window.addEventListener('scroll', () => this.toggle($(window)));
Но тогда у вас все еще есть проблема, заключающаяся в том, что $(window)
и $('#to_top')
не являются нативными для JavaScript, а вместо этого являются jQuery.
Ближайший натив для $(window)
будетdocument.body
и ближайший к $('#to_top')
будет document.getElementById('to_top')
, но это сломает fadeIn
и fadeOut
, потому что это не нативный JavaScript и часть jQuery.