根据屏幕大小阻止脚本执行
Prevent script from executing based on screen size
我目前正试图阻止以下Javascript在小于769px的屏幕上执行。我是一个完全的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).
相关文章:
- 在服务器端脚本执行后关闭选项卡
- 脚本执行多次
- 根据屏幕大小阻止脚本执行
- 检测TAB键并使脚本执行成为条件
- 脚本执行,但代码隐藏不执行
- 如何使用应用程序脚本执行API从谷歌工作表中提取数据
- 为什么设置window.location.htm不会停止脚本执行
- document.write(“anything”) 不会在 Internet Explorer 中作为外部脚本执行
- Extjs4 和 IE8 :选项卡上的 beforeclose 事件会抛出“无法从释放的脚本执行代码”
- 具有 asyc 属性的脚本仍会阻止其他脚本执行
- 如何在特定行暂停 JS 脚本执行
- JavaScript - 在高负载脚本执行之前绘制 html-mask
- 重新加载 Chrome 扩展程序内容脚本执行环境
- 将脚本执行保留在新打开的页面中
- 在脚本执行结束时关闭弹出窗口
- JavaScript 脚本执行时间太长.获取脚本需要太长时间提示
- 为什么 url 中的“#”会阻止 jquery 脚本执行
- 脚本执行两次,但时间戳相同
- Javascript setTimeout 会停止其他脚本执行吗?
- jQuery 在单击事件中的 if 条件后停止脚本执行