在浏览器窗口大小调整时更改 JS 逻辑
Change JS Logic Upon Browser Window Resize
随着使用 CSS @media
查询的流行,我们现在可以根据查看网页的分辨率设置网页样式。当您调整浏览器窗口的大小时,与宽度相关的样式/布局将立即发生。在CSS中,这非常简单,例如
// The heart of "responsive design."
@media screen and (max-width: 1000px) { ... }
本着响应式设计的精神,我们可以在分辨率更改时即时调整 JavaScript 逻辑吗?例如,如果我们的脚本每 10 秒输出一个数字"5",那么当浏览器窗口调整为 <300px 时,我们可以将其更改为输出"7"(以相同的间隔)吗?
// Default script
setTimeout(function() {
var i = 5;
console.log(i);
}, 10000);
// How to change the value of i to 7, upon window resize?
// Ideally, without a page reload.
处理 window.resize 事件:
window.onresize = function () {
// check if the new height/width is <300
// change your i variable
};
为了使此操作正常工作,i
变量必须位于由调整大小处理程序和传递给 setTimeout 的匿名对象共享的作用域中。
获取窗口高度/宽度的答案。
如果你想要每 10 秒显示一个数字(基于 with),代码是这样的:
setInterval(function() {
var num = (window.outerWidth <= 300) ? 7 : 5;
console.log(i);
}, 10000);
如果你想要的是显示窗口大小时的数字,你应该处理window.resnaping事件,正如@jbabey回答的那样。
你不能准确地在CSS和JS之间传递变量,但Javascript公开了resize
事件,你可以将其绑定到window
。
例如:
function (event) {
if (event.srcElement.outerWidth <= 1000 ){
// do something
}
}
工作 JSFiddle 演示
相关文章:
- 用于验证JS中逻辑运算符表达式的正则表达式
- 在浏览器窗口大小调整时更改 JS 逻辑
- Node.js+Mongoose:与数据库逻辑分离的模型/模式
- 如何在node.js中用读取流正确实现回调逻辑
- JS如何捕获基于键入然后删除的字符的字段验证逻辑
- 使用运行时逻辑链接节点.js流
- 护照.js本地战略逻辑
- 在 Rails 中,我可以在 JS 响应后在控制器操作中执行 ActionMailer 逻辑吗?
- 节点.js游戏开发,客户端-服务器数据交换逻辑
- 如何在 dust.js 中实现自定义渲染逻辑
- Angular js ng-click对象,逻辑不是(!)默认为真或假
- JS逻辑运算符
- 挖空.js两个输入字段的逻辑 OR 的自定义验证规则
- PEG.JS解析逻辑变量名称,其操作数和值
- 使用 JS 对 dom 中的元素进行优先级排序的逻辑
- 覆盖不可变.js实例的 getter 逻辑
- 使用JS逻辑从自定义选项构建URL链接
- JS逻辑解释部分行
- 将JS逻辑转换为FTL
- JS逻辑问题在条件