关于固定表头和列,加改变列宽的问题,高难度!!!!
我在一个表格中采用Div+CSS方式固定了表头和列,但我的改变表格列宽功能动不对了。请问各们高手可有解决方法,如果能有其它办法也行,但必须是对同一个Table操作,高分相送,谢谢!代码如下:
<锁定表头及列的样式>
.LockHeader
{
position: relative;
top: expression(this.offsetParent.scrollTop);
z-index:10;
}
.LockColumn
{
position: relative;
left: expression(this.parentElement.offsetParent.parentElement.scrollLeft);
}
对于改变列宽的代码太长,贴最重要的吧。(参考网上做的)
sub elementOnMouseMove
'鼠标移动事件:
dim cliX, cliY
if iDragCounter < 10 then
iDragCounter = iDragCounter + 1
exit sub
end if
if (bDragMode and not objDragItem is nothing) then '当前为拖动模式
with window.event
cliX = .clientX
cliY = .clientY
.cancelBubble = false
.returnValue = false
end with
with objDragItem
if (.style.visibility = "hidden") then .style.visibility = "visible"
.style.posLeft = cliX - (.offsetWidth / 2)
.style.posTop = cliY - (.offsetHeight - 3)
end with
dragHeadHitIndex = hitTest(cliX, cliY)
end if
end sub
sub elementHeadOnMouseUp
'第一行操作:调整列宽,鼠标抬起:调整列宽
If CurDownMode=True Then '调整表格宽度
'抬起鼠标:调整位置,取消状态
Dim CurTable
Set CurTable=element
If CurChangeMode=True Then
If CurTable.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft )+3-window.document.body.scrollLeft>0 Then
CurTable.Style.Width=CurTable.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft )+3-window.document.body.scrollLeft
If CurTd.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft)+3-window.document.body.scrollLeft>0 Then
CurTd.style.width= CurTd.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft)+3-window.document.body.scrollLeft
End If
End If
End If
SaveWidth '记录当前宽度
CancelState
else
CancelState
Window.event.cancelBubble = false '否则将事件上传
end if
end sub
sub elementHeadOnMouseMove
'鼠标在第一行移动:调整列宽
If CurDownMode=True Then '已经按下,进入调整模式
If window.event.clientX+10+250 > Screen.width Then '提示表格的在屏幕之外了
MyChangeTdDiv.style.Left = window.event.clientX+window.document.body.scrollLeft-10-250
Else
MyChangeTdDiv.style.Left = window.event.clientX+window.document.body.scrollLeft+10
End If
MyChangeTdDiv.style.Top = window.event.clientY+10
TempWidth=CurTd.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft)+3-window.document.body.scrollLeft
MyChangeTdDiv.innerHTML =OldText & "当前竖线坐标X=" & MyChangeTdLine.offsetLeft & ",准备调整列宽为:" & TempWidth
'提示层可见'=========定位竖线层==========
If window.event.clientX > MinWinX Then '位置不小于目标Td最左侧
MyChangeTdLine.style.Left = window.event.clientX+window.document.body.scrollLeft-2
End If
window.event.cancelBubble = true
Else '判断是否可以按下状态
CurChangeMode=False
If Window.event.srcElement.tagName="TD" Then
If Window.event.srcElement.CellIndex=0 Then '第一列
If window.event.offsetX > window.event.srcElement.offsetWidth -10 Then
Set CurTd=Window.event.srcElement
window.event.srcElement.Style.cursor="col-resize"
MinWinX= window.event.clientX- window.event.offsetX + 20
OldTdWinX= window.event.clientX- window.event.offsetX+CurTd.offsetwidth
CurChangeMode=True '鼠标可以按下调整
window.event.cancelBubble = true
Else
window.event.srcElement.Style.cursor="Default"
End If
Else
If window.event.offsetX < 10 Then '操作前一列!只有一列执行上边的语句了。
Set CurTd=Window.event.srcElement.parentElement.cells.item(Window.event.srcElement.CellIndex-1)
window.event.srcElement.Style.cursor="col-resize"
MinWinX= window.event.clientX- window.event.offsetX-CurTd.offsetwidth + 20
OldTdWinX= window.event.clientX- window.event.offsetX
CurChangeMode=True '鼠标可以按下调整
window.event.cancelBubble = true
Else
If window.event.offsetX > window.event.srcElement.offsetWidth -10 Then '操作当前列!
Set CurTd= Window.event.srcElement
window.event.srcElement.Style.cursor="col-resize"
MinWinX= window.event.clientX- window.event.offsetX + 20
OldTdWinX= window.event.clientX- window.event.offsetX+CurTd.offsetwidth
CurChangeMode=True '鼠标可以按下调整
window.event.cancelBubble = true
Else
window.event.srcElement.Style.cursor="Default"
End If
End If
End If
End If
End If
end sub
<锁定表头及列的样式>
.LockHeader
{
position: relative;
top: expression(this.offsetParent.scrollTop);
z-index:10;
}
.LockColumn
{
position: relative;
left: expression(this.parentElement.offsetParent.parentElement.scrollLeft);
}
对于改变列宽的代码太长,贴最重要的吧。(参考网上做的)
sub elementOnMouseMove
'鼠标移动事件:
dim cliX, cliY
if iDragCounter < 10 then
iDragCounter = iDragCounter + 1
exit sub
end if
if (bDragMode and not objDragItem is nothing) then '当前为拖动模式
with window.event
cliX = .clientX
cliY = .clientY
.cancelBubble = false
.returnValue = false
end with
with objDragItem
if (.style.visibility = "hidden") then .style.visibility = "visible"
.style.posLeft = cliX - (.offsetWidth / 2)
.style.posTop = cliY - (.offsetHeight - 3)
end with
dragHeadHitIndex = hitTest(cliX, cliY)
end if
end sub
sub elementHeadOnMouseUp
'第一行操作:调整列宽,鼠标抬起:调整列宽
If CurDownMode=True Then '调整表格宽度
'抬起鼠标:调整位置,取消状态
Dim CurTable
Set CurTable=element
If CurChangeMode=True Then
If CurTable.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft )+3-window.document.body.scrollLeft>0 Then
CurTable.Style.Width=CurTable.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft )+3-window.document.body.scrollLeft
If CurTd.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft)+3-window.document.body.scrollLeft>0 Then
CurTd.style.width= CurTd.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft)+3-window.document.body.scrollLeft
End If
End If
End If
SaveWidth '记录当前宽度
CancelState
else
CancelState
Window.event.cancelBubble = false '否则将事件上传
end if
end sub
sub elementHeadOnMouseMove
'鼠标在第一行移动:调整列宽
If CurDownMode=True Then '已经按下,进入调整模式
If window.event.clientX+10+250 > Screen.width Then '提示表格的在屏幕之外了
MyChangeTdDiv.style.Left = window.event.clientX+window.document.body.scrollLeft-10-250
Else
MyChangeTdDiv.style.Left = window.event.clientX+window.document.body.scrollLeft+10
End If
MyChangeTdDiv.style.Top = window.event.clientY+10
TempWidth=CurTd.offsetwidth-(OldTdWinX - MyChangeTdLine.offsetLeft)+3-window.document.body.scrollLeft
MyChangeTdDiv.innerHTML =OldText & "当前竖线坐标X=" & MyChangeTdLine.offsetLeft & ",准备调整列宽为:" & TempWidth
'提示层可见'=========定位竖线层==========
If window.event.clientX > MinWinX Then '位置不小于目标Td最左侧
MyChangeTdLine.style.Left = window.event.clientX+window.document.body.scrollLeft-2
End If
window.event.cancelBubble = true
Else '判断是否可以按下状态
CurChangeMode=False
If Window.event.srcElement.tagName="TD" Then
If Window.event.srcElement.CellIndex=0 Then '第一列
If window.event.offsetX > window.event.srcElement.offsetWidth -10 Then
Set CurTd=Window.event.srcElement
window.event.srcElement.Style.cursor="col-resize"
MinWinX= window.event.clientX- window.event.offsetX + 20
OldTdWinX= window.event.clientX- window.event.offsetX+CurTd.offsetwidth
CurChangeMode=True '鼠标可以按下调整
window.event.cancelBubble = true
Else
window.event.srcElement.Style.cursor="Default"
End If
Else
If window.event.offsetX < 10 Then '操作前一列!只有一列执行上边的语句了。
Set CurTd=Window.event.srcElement.parentElement.cells.item(Window.event.srcElement.CellIndex-1)
window.event.srcElement.Style.cursor="col-resize"
MinWinX= window.event.clientX- window.event.offsetX-CurTd.offsetwidth + 20
OldTdWinX= window.event.clientX- window.event.offsetX
CurChangeMode=True '鼠标可以按下调整
window.event.cancelBubble = true
Else
If window.event.offsetX > window.event.srcElement.offsetWidth -10 Then '操作当前列!
Set CurTd= Window.event.srcElement
window.event.srcElement.Style.cursor="col-resize"
MinWinX= window.event.clientX- window.event.offsetX + 20
OldTdWinX= window.event.clientX- window.event.offsetX+CurTd.offsetwidth
CurChangeMode=True '鼠标可以按下调整
window.event.cancelBubble = true
Else
window.event.srcElement.Style.cursor="Default"
End If
End If
End If
End If
End If
end sub
...全文
相关推荐
苹果cmsV10仿B站风格视频影视电影网站源码.zip
苹果cmsV10仿B站风格视频影视电影网站源码.zip
苹果cmsV10仿B站风格视频影视电影网站
苹果cmsV10仿B站风格 视频影视电影网站源码
苹果cmsV10在线视频电影影视网站源码 自适应手机版.zip
特别说明:本程序为整套源码 非单纯模板 程序简介: 试看:可设置试看时间 VIP会员制度:可对会员进行权限是设置及时间限制 分销:推广:通过推广链接获得积分 提现:积分可兑换现金并进行提现 在线支付:支付宝、微信、码支付等等 需要自己对接 卡密:后台可批量生成卡密,前台进行核销 积分:可对每部视频进行积分设置及消费制度 密码:可单独对每个视频进行密码限制,输入密码即可打开 播放器:内嵌多种播放器,可轻松解析M3u8格式视频,或者自行在播放器内输入解析地址(内带接口 自行二开)
黑色精美Mxone电影先生在线影视网站源码 苹果cmsV10模板 自适应手机端
黑色精美Mxone电影先生在线影视网站源码 苹果cmsV10模板 苹果cmsV10黑色精美Mxone电影先生在线影视网站模板 自适应手机端
Centos7环境下nexus的安装
安装步骤 #1.下载地址 https://www.sonatype.com/download-oss-sonatype #2.解压 tar -zxvf nexus-3.15.2-01-unix.tar.gz -C /usr/local/ #3.默认端口8081(不进行修改),若需要修改默认使用端口 vim /usr/local/nexus-3.15.2-01/etc/nexus-default.p...


