javascript - 在 Chrome 版本 33.0.1750.117 上使用 "Content"的响应图像

标签 javascript html css google-chrome responsive-design

我在我的站点中使用了响应式图像的跟随源,但在 las chrome 更新后它停止工作,但仍在其他浏览器中工作。

   //<![CDATA[            
    var queries = [{context: 'global',callback: function() {$('img').each(function(index) {
        var small = $(this).attr('src');
        $(this).attr('src',small);
    });}},{context: 'sizeSmll',callback: function() {
        $('img').each(function(index) {
            var smll = $(this).data('smll');
            $(this).attr('src',smll);});}},{context: 'size0',callback: function() {
                $('img').each(function(index) {var medium = $(this).data('medium');
                $(this).attr('src',medium);});}},{context: 'size1',callback: function() {
                    $('img').each(function(index) {var large = $(this).data('large');
                    $(this).attr('src',large);});}},{context: 'size2',callback: function() {
                        $('img').each(function(index) {var extralarge = $(this).data('extralarge');
                        $(this).attr('src', extralarge);
        });}}];MQ.init(queries);
//]]>

CSS:

body:after {content: 'global';display: none;}

@media only screen and (max-width: 480px) {
body:after {content: 'sizeSmll'; display:none;}

...以及更多具有相同来源的媒体查询。

和 html 图像:

<img class="responsiveImg" src="urlImage0.png" 
data-smll="urlImage1.png" 
data-medium="urlImage2.png" 
data-large="urlImage3.png" 
data-extralarge="urlImage4.png">

它也使用 onmediaquery.min.js 文件,来源如下:

var MQ=function(b){b=b||{};b.init=function(a){this.callbacks=[];this.context="";if("undefined"!==typeof a)for(i=0;i<a.length;i++)this.addQuery(a[i]);this.addEvent(window,"resize",b.listenForChange,b);this.listenForChange()};b.listenForChange=function(){var a;window.getComputedStyle&&(a=window.getComputedStyle(document.body,":after").getPropertyValue("content"),null!=a&&(a=a.replace(/['"]/g,""),a!==this.context&&this.triggerCallbacks(a),this.context=a))};b.addQuery=function(a){if(!(null==a||void 0== a))return this.callbacks.push(a),this.callbacks[this.callbacks.length-1]};b.removeQuery=function(a){if(!(null==a||void 0==a))for(var c=-1;-1<(c=this.callbacks.indexOf(a));)this.callbacks.splice(c,1)};b.triggerCallbacks=function(a){var c,b;for(c=0;c<this.callbacks.length;c++)b=this.callbacks[c].callback,this.callbacks[c].context===a&&void 0!==b&&b()};b.addEvent=function(a,b,d,e){null==a||void 0==a||(a.addEventListener?a.addEventListener(b,function(){d.call(e)},!1):a.attachEvent?a.attachEvent("on"+ b,function(){d.call(e)}):a["on"+b]=function(){d.call(e)})};return b}(MQ||{});

想法来自这里:

http://www.springload.co.nz/love-the-web/responsive-javascript

有人知道新版 Chrome 发生了什么变化并可能影响我的来源吗?提前致谢!

最佳答案

尽量不要使用“display:none”,而是使用“opacity:0”。 我不知道新 Chrome 有什么变化,但似乎新 Chrome 无法将对象的属性“内容”设置为无。

关于javascript - 在 Chrome 版本 33.0.1750.117 上使用 "Content"的响应图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145289/

相关文章:

javascript - 从 jquery 中的所有后代中删除样式属性

css - Google 网络字体为其他语言加载了大量额外的 CSS,删除这些是否安全?

javascript - jquery 通过操作检查和取消选中所有内容

javascript - Angular 2,如何使用服务在组件之间共享数组数据?

javascript - Phoenix .js : WebSocket connection to ws://localhost:4000/socket failed

Javascript/HTML,根据 DIV 文本更改多个 DIV 内容。 (代码笔)

javascript - 悬停时展开/折叠 div - 不活动时不折叠

html - 如何使背景图像响应并在移动设备上显示

html - 如何将按钮/图像 onclick 更改为事件状态?

javascript - Javascript验证,仅允许使用Alpha字符,连字符(-),点(.),撇号(')和空格