2011-01-19 7 views
6

Sto costruendo un'app Web non pubblica che verrà utilizzata come info-monitor. Come tale, funzionerà 24 ore su 24 su uno schermo LCD.Javascript per prevenire il problema di "burn-in" sullo schermo LCD

Poiché questo potrebbe produrre un errore "burn-in" sul display LCD, sto cercando un Javascript che impedisca/riduca questo problema. Voglio usare qualcosa di simile a quelli che usano sui display degli aeroporti (una linea che si sposta periodicamente da sinistra a destra e dall'alto in basso e cambia colore).

Sai qualche Javascript che fa questo? Grazie!

+2

Potrebbe? Ho pensato che questo tipo di problemi fosse limitato ai monitor CRT. –

+3

Questo non è un problema importante per gli LCD, solo CRT e schermi al plasma. Vedi http://compreviews.about.com/od/monitors/a/LCDBurnIn.htm. @Andreas è stato altrettanto brutto con i plasmi :) –

+0

Ho potuto solo sognare una soluzione migliore per il mio "problema" :) tnx ragazzi –

risposta

12

Nel caso in cui si erano ancora interessati: (utilizza 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); 

esempio di lavoro trovato qui: http://www.jsfiddle.net/bradchristie/4w2K3/3/ (o full screen version)

+0

O forse dovrei spiegare il nuovo, di cosa si tratta, colore arancione/giallo che i nuovi televisori avere come parte della lista dei colori? ;-p (Primaria utilizzata in quanto dovrebbe essere sufficiente per aggiornare il pixel). –

+0

Quante volte dovrebbe vagare questa barra sullo schermo? Una volta al secondo? C'è qualche scienza dietro questa tecnica? – l33t

+1

TBH, nemmeno sicuro che sia necessario in questo giorno ed età. Semplicemente lo ha scritto perché è stato richiesto. Detto questo, può valere la pena fare una piccola ricerca e vedere se c'è un ambiente ottimale. Ho capito che questo era più per evitare il degrado della CRT. Ora che tutto è LCD, non è sicuro che si applichi (i LED non avranno un bagliore residuo). –

0

Ho usato la sceneggiatura di Brad, ma purtroppo la mia pagina ha avuto un grande tavolo HTML che estendersi all'esterno del contenitore principale. Questo ha fatto in modo che la barra dei pixel potesse viaggiare solo parzialmente sullo schermo. Invece di alterare la mia tabella ho aggiunto uno script di bounding box per trovare la larghezza effettiva della tabella html e quindi l'ho usata per impostare la larghezza nello script di Brad.

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);