日期:2014-05-18  浏览次数:21180 次

JSP页面有关:代码控制表格背景色
各位高手,我要做的功能是这样的:
在页面中显示的是一个表格,表格中是一行一行的学生信息。我要实现的功能是,先将表格的第一行的背景色设为绿色(其他颜色也可以),然后数秒后再将第一行恢复为原来的颜色,再将第二行设为绿色,如此下去。
我的做法是用一个线程来控制,但是如何用代码来编写设置表格的背景色去无法实现,望高手指教一下,不甚感激。很急,谢谢各位了!
(我当前解决的方案是不停的让JSP页面刷新,然后重新显示数据,可以做到这样的效果,可惜速度太慢,特别是数据过多时,所以希望有高手能指教。再次感谢!)

------解决方案--------------------
<html>
<head>
<style type= "text/css ">
tr.beShow {
background-color:yellow;
}
</style>
<script>
function doChangTableBg(oName){
var obj = document.getElementById(oName);

if(!obj.tagName || obj.tagName!= "TABLE "){
return;
}

var trs = obj.getElementsByTagName( "TR ");

var thisTg = -1;
for(var i=0;i <trs.length;i++){
var tt = trs[i];
if(tt.className && tt.className== "beShow "){
thisTg = i;
tt.className= " ";
}
}
thisTg++;
if(thisTg> = trs.length){
thisTg =0;
}
var tt = trs[thisTg];
tt.className= "beShow ";
setTimeout( "doChangTableBg( ' "+oName+ " ') " ,1000);
}


</script>
</head>
<body>

<TABLE id= "test ">
<TR>
<TD> 11 </TD>
<TD> 11 </TD>
</TR>
<TR>
<TD> 11 </TD>
<TD> 11 </TD>
</TR>
<TR>
<TD> 11 </TD>
<TD> </TD>
</TR>
<TR>
<TD> 11 </TD>
<TD> 11 </TD>
</TR>
</TABLE>
<script>
doChangTableBg( "test ");
</script>
</body>
</html>

------解决方案--------------------
window.setInterval(方法名, 重复调用方法的时间间隔)
: Evaluates an expression each time a specified number of milliseconds has elapsed.
------解决方案--------------------
JS滚屏
这一段是鼠标双击滚屏代码,你看一下,可以用很慢的滚屏速度和你的那个变色配合使用
<SCRIPT language=JavaScript>

var currentpos,timer;
function initialize()
{
timer=setInterval( "scrollwindow() ",10);
}
function sc(){
clearInterval(timer);
}
function scrollwindow()
{
currentpos=document.body.scrollTop;
window.scroll(0,++currentpos);
if (currentpos != document.body.scrollTop)
sc();
}
document.onmousedown=sc
document.ondblclick=initialize
</script>
------解决方案--------------------
就我个人感觉本身这个思想并不太好,您可以这样处理:(采用ajax技术,这样可以不用刷新页面达到效果)

换色的时候交给客户端的JS去处理,每次换色的时候,客户端的JS就会告诉服务器端换色了,这个时候再点名,点名完成后,服务器端返回数据告诉已经点过,然后再进行下一次点名,依次循环一直到完成!

这样就不用考虑你本身的问题了,如果直接通过jsp控制,实现会很麻烦,而且对于点名过程的控制会成问题!

----------欢迎来拍砖
------解决方案--------------------
JAVASCRIPT里面不可以直接调用JAVA代码
但是JAVASCRIPT里也可以差不多完成JAVA的功能(当然除了操作数据库),执行JAVA代码要打开页面或提交后才能执行的,
不过有一个方法,就是你可以在网页加个宽0高0的也就是看不见的内嵌窗口,再用JAVASCRIPT让这个窗口打开一个文件,那么你要执行的JAVA代码就放在这个文件里执行,OK了吧
------解决方案--------------------
JavaScript还是很强的,你的点名功能一定要在JSP中做吗?不如用JS做呗

要使点名功能实现太复杂,不想用JS重写的话,AJAX是很好的选择