如何阻止粘性javascript在小屏幕上运行
how to stop a sticky javascript from running on small screen sizes?
我的网站的菜单栏和侧边栏都很粘。但当屏幕大小小于700px时,所有div都显示在一列中。我已经用css媒体查询做到了这一点。菜单栏显示在顶部,主栏显示在中间,侧边栏显示在底部。因此,当页面(最大宽度=700px)向下滚动到150px时,菜单栏会粘在顶部,因此主栏会因为菜单栏的粘性而被隐藏。当侧边栏出现时,它也会粘在顶部。
这是javascript:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'/>
<script src='sticky.js' type='text/javascript'/>
<script>
$(document).ready(function(){
$("#menu,#sidebar").sticky({topSpacing:0});
});
</script>
在这种棘手的情况下请帮帮我。我想要,当屏幕大小小于700px时然后菜单栏和侧边栏将变得不粘手。
使用媒体查询,您可以执行以下操作:
<script>
$(document).ready(function() {
if(window.matchMedia('(min-width: 700px)').matches) {
$("#menu,#sidebar").sticky({topSpacing:0});
}
});
</script>
这是假设唯一使它们具有粘性的是这个JS函数。
您也可以使用$(window).height() > 700
而不是window.matchMedia('(min-width: 700px)').matches
。
您可以使用css媒体查询来完成此操作。当屏幕宽度小于700px时,强制#菜单和#边栏的位置为静态。因为粘性通过将它们的位置更改为fixed
来完成它的工作。
<style>
@media (max-width: 699px) {
#menu,#sidebar{
position: static !important;
}
}
</style>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'/>
<script src='sticky.js' type='text/javascript'/>
<script>
$(document).ready(function(){
$("#menu,#sidebar").sticky({topSpacing:0});
});
</script>
当屏幕大小小于700px时,菜单栏和侧边栏将变得不粘。。。
让我们扭转这种局面。怎么样:"…当屏幕大小超过700px时,菜单栏和侧边栏将变得粘稠…"?
我建议检查屏幕分辨率,只有当屏幕超过700px时才添加粘性。具体而言:
<script>
$(document).ready(function(){
if ($(window).height() > 700) {
$("#menu,#sidebar").sticky({topSpacing:0});
});
</script>
致问候,
蒂姆。
相关文章:
- 仅在屏幕媒体上运行javascript/jquery,而不是打印
- 屏幕旋转时jQuery自动运行
- 当屏幕方向改变时,重新运行javascript函数
- 当屏幕大小为中或小或xs时,文本溢出,会弄乱整个表.不过,它在全屏模式下运行良好
- 屏幕关闭时运行的移动Web应用程序
- 使用Firefox / OS X检测锁定屏幕或正在运行的屏幕保护程序
- 如何使整个网站在全屏下运行,屏幕满屏.js
- 预绘制拉斐尔屏幕,将它们保存到文件并在运行时加载
- 无法使用电子运行屏幕共享镶边应用程序
- 如何阻止粘性javascript在小屏幕上运行
- 运行完所有其他代码后,将显示模式弹出加载屏幕
- 运行jquery代码的正确方式取决于屏幕分辨率
- 应用程序在浏览器中运行良好,在手机上显示为空白屏幕
- 当屏幕宽度为此时运行JS
- 基于屏幕大小运行脚本
- 如何在特定屏幕大小之前和之后运行这个jquery代码
- 带有Cronjob的Node JS:屏幕在分离时终止,但我想让它无限期地运行
- 在不同的屏幕分辨率下运行不同的JavaScript
- 我的脚本运行完美,直到我包装它在这个if(屏幕).宽度& lt;980){}语句检查屏幕大小
- 是否有可能使用javascript来检测屏幕阅读器是否在用户机器上运行