7

我正在构建一个将用作信息监视器的非公共网络应用程序。因此,它将在一台液晶电视显示器上 24/7 全天候运行。

由于这可能会在 LCD 上产生“烧色”错误,因此我正在寻找可以防止/减少此问题的 Javascript。我想使用类似于他们在机场显示器上使用的东西(一条线周期性地从左到右、从上到下移动并切换颜色)。

你知道任何 Javascript 这样做吗?谢谢!

4

2 回答 2

18

如果您仍然感兴趣:(使用 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/(或全屏版本

于 2011-01-19T23:19:35.933 回答
0

我使用了 Brad 的脚本,但不幸的是我的页面有一个很大的 HTMl 表,它延伸到父容器之外。这使得像素条只能穿过屏幕的一部分。我没有改变我的表格,而是添加了一个边界框脚本来查找 html 表格的实际宽度,然后用它来设置 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);
于 2014-09-17T02:54:18.243 回答