Javascript для предотвращения проблемы выгорания на ЖК-экране

Я создаю непубличное веб-приложение, которое будет использоваться в качестве информационного монитора. Таким образом, он будет работать 24 часа в сутки 7 дней в неделю на одном ЖК-дисплее телевизора.

Поскольку это может привести к ошибке «выгорания цвета» на ЖК-дисплее, я ищу Javascript, который предотвратит/уменьшит эту проблему. Я хочу использовать что-то похожее на то, что используют на дисплеях в аэропортах (линия, периодически перемещающаяся слева направо и сверху вниз и меняющая цвет).

Знаете ли вы какой-нибудь Javascript, делающий это? Спасибо!


person Spiro Krasic    schedule 19.01.2011    source источник
comment
Это могло бы? Я думал, что такого рода проблемы ограничиваются ЭЛТ-мониторами.   -  person Andreas Rejbrand    schedule 20.01.2011
comment
Это не является серьезной проблемой для ЖК-дисплеев, только для ЭЛТ и плазменных дисплеев. См. compreviews.about.com/od/monitors/a/LCDBurnIn.htm. @Андреас, с плазмой было так же плохо :)   -  person Rafe Kettler    schedule 20.01.2011
comment
Я мог только мечтать о лучшем решении моей проблемы :) спасибо, ребята   -  person Spiro Krasic    schedule 20.01.2011


Ответы (2)


Если вам все еще интересно: (использует jQuery)

var $burnGuard = $('<div>').attr('id','burnGuard').css({
    'background-color':'#FF00FF',
    'width':'1px',
    'height':$(document).height()+'px',
    'position':'absolute',
    'top':'0px',
    'left':'0px',
    'display':'none'
}).appendTo('body');

var colors = ['#FF0000','#00FF00','#0000FF'], color = 0, delay = 5000, scrollDelay = 1000;
function burnGuardAnimate()
{
    color = ++color % 3;
    var rColor = colors[color];
    $burnGuard.css({
        'left':'0px',
        'background-color':rColor,
    }).show().animate({
        'left':$(window).width()+'px'
    },scrollDelay,function(){
        $(this).hide();
    });
    setTimeout(burnGuardAnimate,delay);
}
setTimeout(burnGuardAnimate,delay);

Рабочий пример можно найти здесь: http://www.jsfiddle.net/bradchristie/4w2K3/3/ (или полноэкранная версия)

person Brad Christie    schedule 19.01.2011
comment
Или, может быть, я должен учитывать новый, что это такое, оранжево-желтый цвет, который есть у новых телевизоров как часть списка цветов? ;-p (Используется Primary, так как этого должно быть достаточно для обновления пикселя). - person Brad Christie; 20.01.2011
comment
Как часто эта полоса должна блуждать по экрану? Раз в секунду? Есть ли какая-то наука за этой техникой? - person l33t; 29.09.2016
comment
TBH, даже не уверен, что это необходимо в наше время. Просто написал это, потому что это было запрошено. Тем не менее, возможно, стоит провести небольшое исследование и посмотреть, есть ли оптимальные настройки. Насколько я понял, это было больше сделано для того, чтобы избежать деградации ЭЛТ. Теперь, когда все на ЖК-дисплее, не уверен, что это применимо (у светодиодов не будет остаточного свечения). - person Brad Christie; 29.09.2016
comment
Просто использовал это, чтобы добавить некоторую защиту от выгорания (предотвращение?) к нашему экземпляру Dashing / Smashing. Мне пришлось вручную создать DIV и установить z-индекс его на большое число, чтобы заставить его сотрудничать, но теперь он отлично работает. Спасибо, что поделился! - person peelman; 26.03.2018

Я использовал сценарий Брэда, но, к сожалению, на моей странице была большая таблица HTML, выходящая за пределы родительского контейнера. Это сделало так, что пиксельная полоса перемещалась по экрану только частично. Вместо того, чтобы изменять свою таблицу, я добавил сценарий ограничительной рамки, чтобы найти фактическую ширину html-таблицы, а затем использовал его для установки ширины в сценарии Брэда.

var div = document.getElementById ("HtmlTable-ID");

        if (div.getBoundingClientRect) {       
            var rect = div.getBoundingClientRect ();

            w = rect.right - rect.left;

           // alert ("  Width: " + w );
        }

var $burnGuard = $('<div>').attr('id','burnGuard').css({
    'background-color':'#FF00FF',
    'width':'1px',
    'height':$(document).height()+'px',
    'position':'absolute',
    'top':'0px',
    'left':'0px',
    'display':'none'
}).appendTo('body');

var colors = ['#FF0000','#00FF00','#0000FF'], color = 0, delay = 5000, scrollDelay = 1000;
function burnGuardAnimate()
{
    color = ++color % 3;
    var rColor = colors[color];
    $burnGuard.css({
        'left':'0px',
        'background-color':rColor,
    }).show().animate({
        'left': w +'px'
    },scrollDelay,function(){
        $(this).hide();
    });
    setTimeout(burnGuardAnimate,delay);
}
setTimeout(burnGuardAnimate,delay);
person Progrower    schedule 17.09.2014