javascript - 使用 jQuery 通过 $(window).width() 进行响应式设计?
问题描述
我正在尝试做响应式 jQuery,我知道很多人建议使用 CSS 媒体查询,我会尽可能多地做 CSS 媒体查询,但我能做的事情非常有限,并且只使用 CSS 媒体查询和/或 Boostrap 网格已经显示了它们的局限性。我在使用 $(window).width() 时遇到问题。我已经在网上搜索了答案,并遇到了类似的问题,但这些都没有起到作用。
这是我的代码:
if ( $(window).width() > 480 && $(window).width() < 768) {
$("html").css("background-color", "red");
} else {
$("html").css("background-color", "black");
}
问题是屏幕仅保持黑色背景颜色,但当我重新调整浏览器宽度大于 480 像素且低于 768 像素时,不会将背景更改为红色。
解决方案
我认为您只需要调用正确的选择器:body
verus html
。考虑以下代码:
$(function() {
$("body").append("<div class='windowWidth'>Window Width: " + $(window).width() + "px</div>");
function response() {
if ($(window).width() > 480 && $(window).width() < 768) {
$("body").css({
"background-color": "red",
color: "black"
});
} else {
$("body").css({
"background-color": "black",
color: "white"
});
}
}
response();
$(window).resize(function() {
response();
$(".windowWidth").html("Window Width: " + $(this).width() + "px");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<p>Paragraph in Body</p>
</div>
希望有帮助。
推荐阅读
- angularjs - 如何在 Google Dev Tools 中的 heap snapshop 之间找到公共对象?
- batch-file - 如何一次复制一个文件
- c++ - 自定义类上的 C++ std::find_if
- python-3.x - os.system 的多行命令
- flash - 修改 Animate CC 应用程序并重新分发它的方法是什么
- reactjs - Material-ui Next Theme 不适用
- java - Java如何停止线程并发运行
- css - 如何配置 Create React App 以使用 CSS 块?
- c++ - 如何抛出“模板参数”类型的异常?
- chef-infra - 如何使用厨师食谱在文件中间插入节