最近写了个响应式网站,有些效果通过用jq的$(window).width()来判断屏幕宽度,当屏幕宽度小于1366时一些参数发生变化。@media中也有小于1366的判断条件,但是用起来的时候发现一个小BUG,当屏幕缩小到1367~1382的时候JS已经触发,但是@media却没到触发条件,所以页面在这个尺寸有一点变形。后来发现是因为$(window).width()获取屏幕宽度时并没有获取滚动条宽度,@media是滚动条一起计算的。

所以当需要js判断屏幕宽度并且配合@media时应使用window.innerWidth来获取宽度,这样才能与@media同步。

知识扩展

Javascript、Jquery获取浏览器和屏幕各种高度宽度

Javascript:

document.body.clientWidth;        //网页可见区域宽(body)

document.body.clientHeight;       //网页可见区域高(body)

document.body.offsetWidth;       //网页可见区域宽(body),包括border、margin等

document.body.offsetHeight;      //网页可见区域宽(body),包括border、margin等

document.body.scrollWidth;        //网页正文全文宽,包括有滚动条时的未见区域

document.body.scrollHeight;       //网页正文全文高,包括有滚动条时的未见区域

document.body.scrollTop;           //网页被卷去的Top(滚动条)

document.body.scrollLeft;           //网页被卷去的Left(滚动条)

window.screenTop;                     //浏览器距离Top

window.screenLeft;                     //浏览器距离Left

window.screen.height;                //屏幕分辨率的高

window.screen.width;                 //屏幕分辨率的宽

window.screen.availHeight;          //屏幕可用工作区的高

window.screen.availWidth;           //屏幕可用工作区的宽

  

Jquery:

$(window).height();                           //浏览器当前窗口可视区域高度

$(document).height();                        //浏览器当前窗口文档的高度

$(document.body).height();                //浏览器当前窗口文档body的高度

$(document.body).outerHeight(true);  //浏览器当前窗口文档body的总高度 包括border padding margin

$(window).width();                            //浏览器当前窗口可视区域宽度

$(document).width();                        //浏览器当前窗口文档对象宽度

$(document.body).width();                //浏览器当前窗口文档body的宽度

$(document.body).outerWidth(true);  //浏览器当前窗口文档body的总宽度 包括border padding margin

  

@media max-width 与jquery宽度取值的差异的更多相关文章

  1. jquery select取值,赋值操作

    select">jquery select取值,赋值操作 一.获取Select 获取select 选中的 text : $("#ddlRegType").find( ...

  2. jQuery radio取值,checkbox取值,select取值

    语法解释: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkTex ...

  3. jquery radio取值,checkbox取值,select取值及选中

    jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关 获取一组radio被选中项的值 var item = $('in ...

  4. jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中

    jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Se ...

  5. 2016 系统设计第一期 (档案一)jQuery checkbox 取值赋值

    <div class="form-group"> <label for="IsActive" class="col-sm-2 con ...

  6. JQuery 自定义属性取值 赋值

    <span id="status_68" data-id="0" onclick="collection(68,false);" cl ...

  7. jQuery - lable 取值、赋值

    取值 var val = $("#breakfastMonday").html(); 赋值 $("#breakfastMonday").html("v ...

  8. jquery选择器取值和url正则匹配

    用到的简单jquery知识,简单总结一下,一是能加深自己的记忆,二是方便自己以后查看.常言道"好记性不如烂笔头",要养成常总结.常记录的好习惯.慢慢的发现jquery很有意思,很强 ...

  9. 2016 系统设计第一期 (档案一)jQuery radio 取值赋值

    MVC代码: <div class="form-group"> <label for="Gender" class="col-sm- ...

随机推荐

  1. window.open弹出窗口调用controller

    前台图片调用js函数 <img src='${pageContext.request.contextPath}/FlatUI/img/link.png' id='report' alt='&qu ...

  2. js跨域访问,No ‘Access-Control-Allow-Origin‘ header is present on

    在本地用ajax跨域访问请求时报错: XMLHttpRequest cannot loadhttp://www.zjblogs.com/. No 'Access-Control-Allow-Origi ...

  3. Inno Setup入门(十三)——Pascal脚本(2)

    分类: Install Setup 2013-02-02 11:26 794人阅读 评论(0) 收藏 举报 事件函数(2) function CheckPassword(Password: Strin ...

  4. MySQL与Oracle的区别

    1.语法上的区别 变量类型定义.IN  OUT的位置.变量定义的位置.游标的位置.异常的位置: 2.MySQL没有 return 关键字,采用leave label的方式结束循环或跳出存储 3.异常处 ...

  5. SQL Server 2008 2005删除或压缩数据库日志的方法

    由于数据库日志增长被设置为“无限制”,所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间.由于主要是做OLAP,所以数据库本身不会有大变动,所以日志也就 ...

  6. Struts中的数据处理的三种方式

    Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() ...

  7. linux视频学习7(ssh, linux启动过程分析,加解压缩,java网络编程)

    回顾数据库mysql的备份和恢复: show databases; user spdb1; show tables; 在mysql/bin目录下 执行备份: ./mysqldump -u root - ...

  8. A New Change Problem

    题目链接 /* 给定两个互质的数,a,b,求这两个数不能表示的数的最大值和个数. 最大值=a*b-a-b; 个数 =(a-1)*(b-1)/2; */ #include <set> #in ...

  9. HttpSession详解

    HttpSession详解   session的机制 http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢?s ...

  10. python 函数部分

    #初始化 def init(data): data['first']={} data['middle']={} data['last']={} #查看条件 def lookup(data,label, ...