我慢慢地疯了。我正在尝试在网页上放置文字报告。它会在监视器上运行,甚至没有连接到它的鼠标。它只是显示建筑物周围的一些信息。有一件事我想补充说,我认为这是一个好主意。几个人可以编辑的底部滚动文本消息。Javascript动态邮件滚动条
我使用的是this,因为它是唯一一个似乎足够光滑的滚动条,并且没有那么神秘,我需要在开发团队中才能理解。
由于我不能只更改div文本并让爬虫滚动它。我试图把它放在更新面板中设置div文本,同时它正在渲染和reInit crawler.The控制messasge的div是在一个名为`crawlerUpdate'的UpdatePanel中msgString是一个全局的Javascript变量,我用它来保存div复位时的值。
我已经设置了var oCrawlerUpdate = setInterval(function() { updateCrawler() }, 10000);
更新消息每10秒(只是用于测试,投票会更长)
我的更新履带式看起来像:
function updateCrawler(){
msgString = '';
$.getJSON('getCrawlerText.aspx', function (data) {
$.each(data, function (index, elem) {
msgString += index + 1 + '. ' + elem.message + '- - -';
});
if ($('#textCrawler').html() != msgString)
__doPostBack("<%= this.postBackVehicle.UniqueID %>", "");
});
}
这里就是我开始失去它。这有点超出我的理解,但它有点作品。 我不得不注册一个启动脚本。我假设在更新面板回传时被注入并执行。
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(this.postBackVehicle);
ScriptManager.RegisterStartupScript(this.crawlerUpdate, this.GetType(), "reInitCrawler", "if(!msgString)msgString=\"Loading ticker message...\";$(\"#textCrawler\").html(msgString);initCrawler()", true);
它在Firefox中100%有效。我更改数据库中的消息,并在接下来的10秒内滚动程序重新启动新消息。当我在IE7中加载它时,人们打算使用它,我在jQuery(1.4.1)文件的某处发现一个未定义的错误,而不是在我的代码中,我不知道从哪里开始。很久以前,当我测试时,我能够在添加滚动条之前每次都显示新消息。我可以看到该消息在div中闪烁,但IE后面的错误会立即出现。
我还应该指出,onLoad div是空白的,并在第一次通过它的作品。它会滚动我的加载消息,直到10秒后的第一次轮询。我几乎是积极的,我正在使这种指数级的难度超过需求,但我不知道。
我仍然在谷歌搜索其它滚动的工具,但是这是接近我一直和我想知道为什么IE是给我消化不良。我知道IE是一个善变的野兽,我希望这很容易。我很亲密,我想继续前进。
编辑:我并没有完全使用所提供的答案,但我甩了滚动库和使用两种功能。
function resetCrawler() {
var contWidth = $('#scrollContainer').width();
var blockWidth = $('#textCrawler').width();
var moveLen = (contWidth + blockWidth) * -1
var timeFigure = (-1 * moveLen)/.05;
//console.log("Container: " + contWidth + " Block: " + blockWidth + " MovementSpan: " + moveLen + " TimeSpan: " + timeFigure);
$('#textCrawler').html(msgString).css('left', contWidth).animate({ left: moveLen }, timeFigure, 'linear', function() { resetCrawler() });
}
function updateCrawler(){
msgString = '';
$.getJSON('getCrawlerText.aspx', function (data) {
$.each(data, function (index, elem) {
msgString += index + 1 + '. ' + elem.message + '- - -';
});
if ($('#textCrawler').html() != msgString) {
resetCrawler();
}
});
}
我只是做了一个px每毫秒计算,并使其滚动相同的速度,无论多长时间的消息。我怀疑我遇到了与你发布的链接相同的问题,我在jQuery中调用了一些东西。我只是在完成后再次调用它,这是由内部div的宽度决定的。更多的工作要做,但我称它足够好...
谢谢你的帮助。
您多久看一次更新文本? – 2013-04-11 13:55:52
大概检查5分钟的时间间隔。也许更长。 – Bmo 2013-04-11 14:46:38
好的,看看我在答复中引用的帖子。如果这不能回答你的问题,我可能会有更多的想法。 – 2013-04-11 14:47:28