点中行改变颜色

dxb_828 2009-08-29 03:44:45
能否提供一个选中table中哪行,哪行的颜色就改变,选中另一行,刚才选中行的颜色恢复,并且当鼠标滑过时颜色也是相应变化
...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
BeenZ 2009-08-29
  • 打赏
  • 举报
回复
稍微修改

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
</head>
<script language=javascript>
var TH_HEIGHT="20px";
var THCOLOR="#ffff99";
var THBGCOLOR= "#ccecff";
var NEW_COLOR="#ffffff";
var oldrowover
var oldrow;
function createEventTable() {
var newRow,col1,col2,col3;
var ln = document.getElementById("tb1").rows.length;
if( ln > 0){
for(var i=0; i<ln; i++){
if(document.getElementById("tb1").rows.length <= 0)break;
document.getElementById("tb1").deleteRow(-1);
}
}
for(var colno=0; colno<15; colno++){
newRow = document.getElementById("tb1").insertRow(-1);
newRow.id = 'r'+colno;
document.getElementById("r"+colno).height = TH_HEIGHT;
document.getElementById("r"+colno).bgColor = THCOLOR;
col1=newRow.insertCell(0);
col2=newRow.insertCell(1);
col3=newRow.insertCell(2);
col1.id="col1"+colno
col2.id = "col2"+colno;
col3.id = "col3"+colno;
col1.innerText = "列一"+colno;
col2.innerText = "列二"+colno;
col3.innerText = "列三"+colno;
newRow.onclick=alertMe;
newRow.onmouseover=over;
}
}
function alertMe(){
this.bgColor=NEW_COLOR;
if(oldrow!=null&&oldrow!=this){
oldrow.bgColor=THCOLOR;
}
oldrow=this;


}

function over(){
if(this!=oldrow) this.bgColor="red";
if(oldrowover!=null&&oldrowover!=this&&oldrowover!=oldrow){
oldrowover.bgColor=THCOLOR;
}
oldrowover=this;
}
window.onload=function(){
createEventTable();
}
</script>
<body >


<TABLE cellSpacing="0" borderColorDark="black" cellPadding="1"

borderColorLight="black" border="1">
<thead>
<COLGROUP>
<COL align="center">
</COL>
<COL align="center">
</COL>
<COL align="center">
</COL>
<COL align="center">
</COL>
<TR height="22px" bgColor="#ccecff">
<TH width="36" >列1</TH>
<TH width="36" >列2</TH>
<TH width="36" >列3</TH>
</TR>
</thead>
<TBODY id="tb1">
</TBODY>
</TABLE>

</body>
</html>
dxb_828 2009-08-29
  • 打赏
  • 举报
回复
是的,谢谢
BeenZ 2009-08-29
  • 打赏
  • 举报
回复
是这样么?

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
</head>
<script language=javascript>
var TH_HEIGHT="20px";
var THCOLOR="#ffff99";
var THBGCOLOR= "#ccecff";
var NEW_COLOR="#ffffff";
var oldrowover
var oldrow;
function createEventTable() {
var newRow,col1,col2,col3;
var ln = document.getElementById("tb1").rows.length;
if( ln > 0){
for(var i=0; i<ln; i++){
if(document.getElementById("tb1").rows.length <= 0)break;
document.getElementById("tb1").deleteRow(-1);
}
}
for(var colno=0; colno<15; colno++){
newRow = document.getElementById("tb1").insertRow(-1);
newRow.id = 'r'+colno;
document.getElementById("r"+colno).height = TH_HEIGHT;
document.getElementById("r"+colno).bgColor = THCOLOR;
col1=newRow.insertCell(0);
col2=newRow.insertCell(1);
col3=newRow.insertCell(2);
col1.id="col1"+colno
col2.id = "col2"+colno;
col3.id = "col3"+colno;
col1.innerText = "列一"+colno;
col2.innerText = "列二"+colno;
col3.innerText = "列三"+colno;
newRow.onclick=alertMe;
newRow.onmouseover=over;
}
}
function alertMe(){
this.bgColor=NEW_COLOR;
if(oldrow!=null&&oldrow!=this){
oldrow.bgColor=THCOLOR;
}
oldrow=this;


}

function over(){
this.bgColor="red";
if(oldrowover!=null&&oldrowover!=this&&oldrowover!=oldrow){
oldrowover.bgColor=THCOLOR;
}
oldrowover=this;


}
window.onload=function(){
createEventTable();
}
</script>
<body >


<TABLE cellSpacing="0" borderColorDark="black" cellPadding="1"

borderColorLight="black" border="1">
<thead>
<COLGROUP>
<COL align="center">
</COL>
<COL align="center">
</COL>
<COL align="center">
</COL>
<COL align="center">
</COL>
<TR height="22px" bgColor="#ccecff">
<TH width="36" >列1</TH>
<TH width="36" >列2</TH>
<TH width="36" >列3</TH>
</TR>
</thead>
<TBODY id="tb1">
</TBODY>
</TABLE>

</body>
</html>
dxb_828 2009-08-29
  • 打赏
  • 举报
回复
鼠标滑过时颜色变化,点中行是颜色定在那,点中别的行是刚才点中行的颜色恢复原样,新行颜色又定在那
dxb_828 2009-08-29
  • 打赏
  • 举报
回复
就是既能鼠标滑过时行颜色变为红色,又能点中行时颜色变为红色,并且鼠标滑过时刚才点中的行的颜色还是红色,当点中另一行时,刚才点中行的颜色才变为白色,新点中的行颜色变为红色
BeenZ 2009-08-29
  • 打赏
  • 举报
回复
没明白你的意思,可否把要求说明白点
dxb_828 2009-08-29
  • 打赏
  • 举报
回复
还是不行啊,两者不能并存啊
dxb_828 2009-08-29
  • 打赏
  • 举报
回复
点中颜色能改变,但是在tr中加上鼠标划过不能样式后刚才选中行的颜色自动就没了
BeenZ 2009-08-29
  • 打赏
  • 举报
回复
再来个鼠标移动上去的

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
</head>
<script language=javascript>
var t, n, c;
var lastrow;
function doit(){
if(event.keyCode==38){
if(c!=null) t.rows[c].style.backgroundColor = "#ffffff";
if(c==null) c=0;
else if(c==0) c=n-1;
else c--;
t.rows[c].style.backgroundColor = "#cceeff";
}
else if(event.keyCode==40){
if(c!=null) t.rows[c].style.backgroundColor = "#ffffff";
if(c==null) c=0;
else if(c==n-1) c=0;
else c++;
t.rows[c].style.backgroundColor = "#cceeff";
}
}
window.onload=function(){
t = document.getElementById("tb");
n = t.rows.length;
for(var i=0;i<n;i++){
t.rows[i].onclick = function(){
for(var j=0;j<n;j++) t.rows[j].style.backgroundColor="#ffffff"
this.style.backgroundColor="#cceeff";
};
t.rows[i].onmouseover = function(){
for(var j=0;j<n;j++) t.rows[j].style.backgroundColor="#ffffff"
this.style.backgroundColor="#cceeff";
};
}

document.onkeyup = doit;

}
</script>
<body >


<table id="tb" border=1px gray>
<tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr>
<tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr>
<tr><td>31</td><td>32</td><td>33</td><td>34</td><td>35</td></tr>
<tr><td>41</td><td>42</td><td>43</td><td>44</td><td>45</td></tr>
<tr><td>51</td><td>52</td><td>53</td><td>54</td><td>55</td></tr>
</table>

</body>
</html>
BeenZ 2009-08-29
  • 打赏
  • 举报
回复

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
</head>
<script language=javascript>
var t, n, c;
var lastrow;
function doit(){
if(event.keyCode==38){
if(c!=null) t.rows[c].style.backgroundColor = "#ffffff";
if(c==null) c=0;
else if(c==0) c=n-1;
else c--;
t.rows[c].style.backgroundColor = "#cceeff";
}
else if(event.keyCode==40){
if(c!=null) t.rows[c].style.backgroundColor = "#ffffff";
if(c==null) c=0;
else if(c==n-1) c=0;
else c++;
t.rows[c].style.backgroundColor = "#cceeff";
}
}
window.onload=function(){
t = document.getElementById("tb");
n = t.rows.length;
for(var i=0;i<n;i++){
t.rows[i].onclick = function(){
for(var j=0;j<n;j++) t.rows[j].style.backgroundColor="#ffffff"
this.style.backgroundColor="#cceeff";
};
}
document.onkeyup = doit;
}
</script>
<body >


<table id="tb" border=1px gray>
<tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr>
<tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr>
<tr><td>31</td><td>32</td><td>33</td><td>34</td><td>35</td></tr>
<tr><td>41</td><td>42</td><td>43</td><td>44</td><td>45</td></tr>
<tr><td>51</td><td>52</td><td>53</td><td>54</td><td>55</td></tr>
</table>

</body>
</html>

WinCE5.0下实现透明背景按钮(.net C#) 需要在wince5.0下实现图形化界面,用于功能导航,用过GPS导航就知道了,类似的界面。众所周知gif,PNG等图片,都是可以实现透明背景的,在win下这应该不是个问题。但在ce5.0下,无论是透明背景的ICON、PNG、GIF都无法简单实现透明背景,alpha通道会丢失。网上搜索了些资料,当然也有办法解决,大家可以查一下,但性能较低。最终按微软SDK自带的一个计算器的源码思路解决了透明背景按钮问题。 要: 1.如何画透明背景的BMP 2.如何画按钮并实现事件 思路及解决: 1.画按钮的思路:   ImageAttributes imageAttr=new ImageAttributes();   imageAttr.SetColorKey(Color.FromArgb(255, 0, 255),Color.FromArgb(255, 0, 255));   然后使用Graphics.DrawImage(,,,,,imageAttr)函数在指定的位置上画出透明的图片。   2. 事件驱动的思路: 事先定义好各按钮的指令   public enum Command { cmd1 = 0,//无操作 cmd2,//第一项操作 cmd3,//第二项操作 cmd4,//可自己扩展 max } 在创建按钮的同时明确以下几个参数 容器控件、资源存放的目录、X坐标、Y坐标、背景图片、按钮的标题、非激活时的文字颜色、激活时的文字颜色、触发的指令。创建窗口,针对窗体事件做如下定义 •在Form_Load时生成按钮, •在Form_OnPaint时使用按钮自身的Render函数根据自己状态(有没有被中)重画, •在MouseDown时判断击位置是否在某个按钮的内部,如果是在它内部就改变它的状态,设置状态的同时调用窗口控件的Graphics局部重画这个按钮,     •在Form_MouseUp时判断现在的位置是不是在按钮内部,如果按下了,抬起时又移出了范围则不处理。如果按下与抬起都是在同一个按钮的边界内部则执行这个按钮所设置的指令。 以下是我使用的资源,将作为按钮的图片需要透明的部分设置成RGB(255,0,255),那种非常刺眼的颜色。以下图片可以另存为BMP使用,设置的分辨是800*600的CE设备。
请先阅读帮助文档:http://ismyway.com/help [2009.1.1] Ver 3.2.26 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 增加天语的按键映射 增加三星的背景灯控制功能(该功能未在真机上测试过) 删除图片浏览中的部分功能,由于这部分功能需要较大的内存,导致在大部分手机上无法完成,同时也引起背景图片无法设置成功 触摸屏用户可以不再受滚动条限制,在屏幕上任意地方都可以进行拖动 选择键盘映射为其它时无法再次更改的BUG 用户输入的颜色值无法保存的BUG 修正英文单词分词时会多添加一个空行的BUG 繁体语言措词上的修正 阅读设置中增加一个“文件缓存”选项,默认情况下是开启的,在NOKIA手机上会提高UMD等文件的表现,但由于测试并不充足,如果程序经常在阅读时出错,请关闭该选项(其它手机是否开启该选项并无明显的影响) 修正编辑文件后无法保存的BUG [2008.10.27] Ver 3.2.24 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 改进的颜色选择方式 允许用户重新选择键盘映射 HTML阅读时的错误 进一步完善编辑功能(仍有少许BUG,请继续反馈,谢谢) 新建文件后自动跳转到编辑中 改进的文件操作方式,速度轻微提升 UMD速度明显提升,并且减少内存占用,特别是在NOKIA手机上,表现提升超过600% 改进的输入框模式,以使得能适应更多的手机如天语等 [2008.10.21] Ver 3.2.23 为了提高运行效率,以下功能在LITE上将被取消(自定义欢迎页问候语;欢迎页背景图) 取消了JAR的支持,提高运行效率 修正打开大ZIP文件时的内存溢出错误 ·修正:  自动滚屏到末尾时,滚屏功能将停止 [2008.10.4] Ver 3.2.22 暂时删除了播放功能及网络相关的功能,由于以上两项功能一直没有能稳定下来,故暂时删除 增强了ZIP功能,支持带文件夹结构的ZIP/JAR文件 (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且选择打开为UNICODE/TXT阅读) (对于NOKIA手机及其它部分手机,由于安全策略的限制,在Anyview的文件管理器中无法查看后缀为.jar的文件) 自定义问候语(系统路径下dictum.rc文件,格式参见jar包中的dictum.rc文件,保存时使用UTF-8编码,可写条目为0~9/a~z/A~Z,置空时表示不显示问候语) ·修正:  0键在各偏好中切换时亮度混乱的问题  部分手机上无法新建文件夹 [2008.9.11] Ver 3.2.21 修正动画参数无法保存的BUG 动画效果不再对阅读翻页有作用 [2008.8.29] Ver 3.2.21 可将正在阅读的内容通过短信与好友分享 增加一种新的滚屏方式:波浪,同时,阅读时3键不再使用默认的像素滚屏,而会使用最后一次使用的滚屏方式 任何可用的外置字库都可以作为内置字库存在,在jar包中存在dot.font会被当为内置字库加载 加快大文件的打开速度,特别是对于NOKIA手机,S60上,打开20M文件,97%左右的位置不超过15秒 允许用户打开动画效果 ·M600/P990/P1/W950  修正键盘映射时“内存不足”的BUG ·E680/A780  选中后台播放后无法启动的BUG [2008.7.30] Ver 3.2.20 调整部分索爱手机上背景灯控制的逻辑 修正看图片时按0键出错的BUG 旋转屏幕引起的字外出 打开LRC最后出错 阅读到尾部弹出“上一个/下一个”窗口中的文件名过长不刷新的问题 偏好切换时亮度混乱的问题 在NOKIA上,当系统路径设置为根目录是无法启动的BUG E398上可以开关键盘灯 UIQ系统在退出时可以保持亮度 索爱上按“返回”键后导致阅读出现白屏的BUG 阅读时切换屏幕方向导致字体超出屏幕的BUG 欢迎屏幕上的日期使用中文显示 如果使用触屏手机,跳转改为进度条模式,以方便触屏操作 系统路径下如果存在bg.png文件,则会作为欢迎界面的背景图片显示(右下角) 减少跳转及翻页中出现乱码的机率 提高阅读时绘图效率,滚屏效率同样提高 播放时,暂停会导致声音爆至最大的BUG 内置“忘记月亮”制作的两款主题《典雅红》《黑橙》,并且更换主题不再要求退出 文件管理器中支持“剪切”功能 文件管理器中新增转换UMD为TXT的功能(解开操作,解开2无效!) 增加了编辑功能(尽管没有限制文件大小,但请别编辑过大的文件,另外,为了提高速度,不进行全文排版,有时候表现可能会有些不习惯),以后会进一步完善 启动时,会自动识别NOKIA、SONYER

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧