Адаптивные изображения с использованием «контента» в Chrome версии 33.0.1750.117

0

Я использовал источник отслеживания для чувствительных изображений на своем сайте, но он перестает работать после обновления 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 и может повлиять на мой источник? Заранее спасибо!

Теги:
google-chrome
responsive-design

1 ответ

1

Старайтесь не использовать "display: none", но вместо этого используйте "opacity: 0". Я не знаю, что изменилось в новом Chrome, но, похоже, новый Chrome не может получить свойство "content" свойства отображения набора объектов none.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню