В настоящее время я пытаюсь предотвратить выполнение Javascript для экранов, размер которых меньше 769 пикселей. Я полный новичок Javascript, этот скрипт из учебника Codrops о том, как оживить заголовок на прокрутке. Я сделал небольшую модификацию, которая позволяет мне использовать изображения. Исходный сценарий использовался только для текстовых элементов. Вот слегка модифицированный скрипт целиком.
var cbpAnimatedHeader = (function() {
var docElem = document.documentElement,
header = document.querySelector( '.header-outer' ),
logo = document.querySelector( '.logo' )
didScroll = false,
changeHeaderOn = 300;
function init() {
window.addEventListener( 'scroll', function( event ) {
if( !didScroll ) {
didScroll = true;
setTimeout( scrollPage, 250 );
}
}, false );
}
function scrollPage() {
var sy = scrollY();
if ( sy >= changeHeaderOn ) {
classie.add( header, 'header-shrink' );
classie.add( logo, 'logo-shrink' );
}
else {
classie.remove( header, 'header-shrink' );
classie.remove( logo, 'logo-shrink' );
}
didScroll = false;
}
function scrollY() {
return window.pageYOffset || docElem.scrollTop;
}
init();
})();
Я видел, как кто-то еще в StackOverflow задал аналогичный вопрос, но решение (if ($(window).width() > 768) {
), которое ему было предоставлено, пока не работает, я уверен, что я неправильно применяю его.
Любая помощь будет принята с благодарностью :)
Причина
$(window).width()
не работает для вас, потому что он использует jQuery, который вы не используете.
Вместо этого используйте:
window.innerWidth
Итак, сделайте следующее:
if ( sy >= changeHeaderOn && window.innerWidth > 768 ) {
classie.add( header, 'header-shrink' );
classie.add( logo, 'logo-shrink' );
}
Попробуйте это js,
window.outerWidth,
Вы можете проверить все связанные с окном объекты через console.log (окно).
$(window).width()
- это jQuery . jQuery - это библиотека JavaScript. Если вы не используете его, этот код ничего не сделает.ReferenceError: $ is not defined