jqm源码系列:$.mobile.media
思路分析:
- 动态创建一个div,命名为testDiv,设置id为jquery-mediatest,追加到Body中
- 动态创建一个style,命名为styleBlock,增加一段css规则:
//传递一个参数query比如:"only all" //给上面创建的id为jquery-mediatest设置一个position "@media " + query + " {#jquery-mediatest{position:absolute;}}";
- 插入到html里面,再调用css获取position属性的值是否是absolute
- 存储到cache对象中,key就是query
- 注意add的使用,删除动态创建的body和style
TODO:
- 没有增加window.matchMedia的原生判断
(function($,undefined){ //定义变量 var $window = $(window), $html = $("html"); $.mobile.media = (function(){ var cache = {}, testDiv = $("<div id='jquery-mediatest'></div>"), fakeBody = $("<body>").append(testDiv); return function(query){ if(!(query in cache)){ //创建一个style对象取名styleBlock var styleBlock = document.createElement("style"), cssrule = "@media " + query + " {#jquery-mediatest{position:absolute;}}"; //IE必须设置type styleBlock.type = "text/css"; //初始创建的styleBlock.styleSheet返回的undefined if(styleBlock.styleSheet){ }else{ //createTextNode创建文本节点,然后追加到styleBlock里面去 styleBlock.appendChild(document.createTextNode(cssrule)) } //把fakeBody追加到html,再把styleBlock追加到html $html.prepend(fakeBody).prepend(styleBlock); //获取一下testDiv的position是否是absolute //cache[query]存储的是true或者false cache[query] = testDiv.css("position") === "absolute"; //记得删除styleBlock fakeBody.add(styleBlock).remove(); } //返回true或者false return cache[query]; }; })(); })(jQuery);
上一个部分流程的图:
相关推荐
jqm文件上传,上传图片,jqm的表单操作,jqm的ajax的使用,jqm文件操作大全,文件操作demo
《jQuery Mobile实战》源码
jqm模仿iPhone桌面菜单,jqm实战开发,jqm开发例子Demo jqm模仿iPhone jqmDemo jqm例子 jqm实战开发 jqm选项卡 使用jqm实现iPhone桌面功能,jQuery Mobile实现选项卡功能
jqm中文时间控件,在手机web开发上应该有所帮助
一个jqm的实例,一个前端的运用,有关播放器的
很简单的例子,适合不知道android怎么用html做界面和JQM写法的初学者,里面有apk文件可以安装看效果,若有不足,请指教!
http://blog.csdn.net/chelen_jak/article/details/19397569 源码
jqm的多列布局demo,html5的多列布局demo,多列布局的详细讲解,html5开发实例详解
JQM1.4.5-DEMOS JQM 移动演示 1.4.5
jquery mobile的所有版本库api文档简单示例demo下载jqm学习大全下载后评论反积分! jQuery Mobile是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整...
JQM301语音模块,语音模块,JQM301语音芯片,MP3语音芯片.pdf
JQM301语音模块,语音模块,JQM301语音芯片,MP3语音芯片[汇编].pdf
jQuery Mobile(jqm)按钮的隐藏和显示,包括a标签,圆角和非圆角按钮jQueryMobile jqm jqm按钮隐藏 jqm按钮显示 jqm按钮事件 jQuery Mobile(jqm)input按钮的隐藏和显示 a标签的隐藏和显示 圆角按钮的css样式控制
jQM:jQM文档的免费社区应用程序的源代码
样品101 示例 jqm 模板
HTML5+PhoneGAP+JQM门店源代码框架。 未完成,包括后台JSON部分。自己查找,后来我屏蔽掉了,但是效果是好的,由于模拟器太慢了,最后屏蔽了,但是代码可用。 开发环境Dreamweaver cs5.5.后台ASP.NET。
简单的demo websocket+jqm+jqplot。需要自己写后台支持websocket通信
jqm4gwt.zip,jqm4gwt与jquery mobile的所有dependenciesgwt库捆绑在一起
jQM Autocomplete是一个自动提示相关内容的jQuery Mobile搜索插件。用户在搜索框输入前几个字母或是汉字的时候,Autocomplete就能从存放数据的文本或是数据库里将所有以这些字母开头的数据提示给用户,供用户选择,...