datagrid的tbody(DataGrid)

http://www.itjxue.com  2023-01-24 16:23  来源:未知  点击次数: 

如何在DataGrid里面产生滚动条而不滚动题头

我们在开发的时候一定遇到,使用DataGrid的时候由于不想分页(数据没有那么多)但是又显示不在一页里面,此时我们希望在DataGrid里面出现一个滚动条,可以上下滚动DataGrid里面的数据而不用上下滚动页面,由于写本文的目的是为了说明如何实现,所以对于细节性的问题读者可以自己思考完成(比如:既要分页又要滚动等等)。为了可以滚动DataGrid我们需要一个可以让客户端的Table滚动js脚本(该js代码我是从CodeProject上面下载的),但又不能滚动Table的题头(也就是第一行)。我们都知道DataGrid在解释到客户端以后将会生成一个Table,但是这个Table是由trtd组成的,我们的脚本里面是需要使用到Table的Thead和Tbody的(在大多数的客户端的应用中都要用到此功能比如:客户端的排序、以及列的托拽等等),因此我们接下来的任务就是如何为我们客户端的这个DataGrid添加theadtbody了。如果你对用户的自定义控件以及ASP.NET页面的原理有所了解,我们知道控件最后都是要呈现(Render)在页面上的,因此我们可以重写这个方法来完成DataGrid的自定义呈现。听一听真的有些吓人,那么复杂的控件怎么呈现?不要着急,首先我们创建一个自定义控件如下所示:

public class PowerDataGrid : System.Web.UI.WebControls.DataGrid

由此可以看出我们的控件是继承于DataGrid的,所以我们现在的这个控件在不用写一行代码的情况下我们的这个控件已经具有DataGrid的所有的功能。接下来我们要将我们准备的js代码内嵌到我们的控件里,好让放这个控件的页面上最终在客户端都会有这段js代码用来完成我们滚动的任务。为了完成这个工作我们要重写预呈现的方法:

protected override void OnPreRender(System.EventArgs e) {

base.OnPreRender(e);

ResourceManager manager = new ResourceManager( this.GetType() );

ResourceSet resources = manager.GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true);

if( !Page.IsClientScriptBlockRegistered( "SkySword.WebControl.PowerDataGrid Library" ) ) {

String script = resources.GetString("ScrollTable");

this.Page.RegisterClientScriptBlock("SkySword.WebControl.PowerDataGrid Library", script );

this.Page.RegisterStartupScript("SkySword.WebControls.PowerDataGrid Init", "scriptmakeScrollableTable

('"+this.ID+"',true,'auto');/script" );

}

}

在该方法中我们访问了资源文件。哦!忘了说我们还要建立一个资源文件,用来保存我们的js代码。我们首先将资源代码中对应ScrollTable的数据(一段js脚本)注册到客户端的脚本块里。最后我们为了可以初始化,将scriptmakeScrollableTable('"+this.ID+"',true,'auto');/script段脚本注册到页面加载时开始执行(我想就应该和body里面onload的方法一样吧)。当你需要加载客户端脚本的时候使用该方法是个不错的选择。好了,客户端脚本也有了,剩下的就是处理我们的客户端DataGrid了(也就是DataGrid呈现的客户端Table)。为了可以呈现我们自己的DataGrid我们需要重写呈现方法如下所示:

protected override void Render(HtmlTextWriter output)

{

output.Write(this.parseMarkup());

}

其中调用了一个parseMarkup的函数,改函数将产生一个输出的脚本(字符串),该脚本就是一个包含thead和tbody的Table。由于此方法只是由该控件自己使用所以我们将它设置成私有的代码如下:

private string parseMarkup(){

// 插入THead标签和TBody标签

StringWriter writer = new StringWriter();

HtmlTextWriter buffer = new HtmlTextWriter(writer);

base.Render(buffer);

string pMarkup = writer.ToString();

// 找到第一个table标签的结尾也就是第一个字符

pMarkup = pMarkup.Insert(pMarkup.IndexOf("") + "".Length, "thead");

// 将第一个tr闭区间用Thead包起来,现在第一个thead已经画出来了需要画

// 它的结尾/thead和/tbody,同样找到第一个/tr来插入/thead和/tdoby

pMarkup = pMarkup.Insert( pMarkup.IndexOf("/tr") + "/tr".Length,"/theadtbody");

// 在最后一个/table的前面插入一个/tbody就可以了。

pMarkup = pMarkup.Replace("/table", "/tbody/table");

return pMarkup;

}

在这个方法中我们首先实例化了一个StringWriter的对象writer,又用该对象为参数实例了一个HtmlTextWriter对象buffer,最关键的是我们调用了基类的Render用来将buffer里面填满要输出的东西(一堆脚本就是Table,如果你是用监视器查看里面的内容就可以看到)。好了剩下的工作就是分析这个脚本了,然后我们在该脚本第一个出现tr的地方将这个tr替换成thead和tr后面的替换方法类似。最后我们将这个被我们替换和修改的Table输出到客户端,一切OK!

注意:用到StringWriter的原因就是它可以从buffer里面保存原始的字符比如:/t/n什么的。 资源文件的配置方法:首先给你的工程添加一个资源文件,名字和你的控件一样,然后在该文件中添加一下小节

data name="ScrollTable"

value![CDATA[

script language = 'javascript'

var container = new Array();

var onResizeHandler;

function scrollbarWidth(){

var w;

if (! document.body.currentStyle) document.body.currentStyle = document.body.style;

if (document.body.currentStyle.overflowY == 'visible' || document.body.currentStyle.overflowY == 'scroll'){

w = document.body.offsetWidth - document.body.clientLeft - document.body.clientWidth;

}else{

win = window.open("about:blank", "_blank", "top=0,left=0,width=100,height=100,scrollbars=yes");

win.document.writeln('scrollbar');

w = win.document.body.offsetWidth - win.document.body.clientLeft - win.document.body.clientWidth;

win.close();

}

return w;

}

function getActualWidth(e){

if (! e.currentStyle) e.currentStyle = e.style;

return e.clientWidth - parseInt(e.currentStyle.paddingLeft) - parseInt(e.currentStyle.paddingRight);

}

function findRowWidth(r){

for (var i=0; i r.length; i++){

r[i].actualWidth = getActualWidth(r[i]);

}

}

function setRowWidth(r){

for (var i=0; i r.length; i++){

r[i].width = r[i].actualWidth;

r[i].innerHTML = 'span style="width:' + r[i].actualWidth + ';"' + r[i].innerHTML + '/span';

}

}

function fixTableWidth(tbl){

for (var i=0; i tbl.tHead.rows.length; i++) findRowWidth(tbl.tHead.rows[i].cells);

findRowWidth(tbl.tBodies[0].rows[0].cells);

if (tbl.tFoot) for (var i=0; i tbl.tFoot.rows.length; i++) findRowWidth(tbl.tFoot.rows[i].cells);

//tbl.width = '';

for (var i=0; i tbl.tHead.rows.length; i++) setRowWidth(tbl.tHead.rows[i].cells);

setRowWidth(tbl.tBodies[0].rows[0].cells);

if (tbl.tFoot) for (var i=0; i tbl.tFoot.rows.length; i++) setRowWidth(tbl.tFoot.rows[i].cells);

}

function makeScrollableTable(tbl,scrollFooter,height){

var c, pNode, hdr, ftr, wrapper, rect;

if (typeof tbl == 'string') tbl = document.getElementById(tbl);

pNode = tbl.parentNode;

fixTableWidth(tbl);

c = container.length;

container[c] = document.createElement('SPAN style="height: 100; overflow: auto;"');

container[c].id = tbl.id + "Container";

pNode.insertBefore(container[c], tbl);

container[c].appendChild(tbl);

container[c].style.width = tbl.clientWidth + 2 * tbl.clientLeft + scrollbarWidth();

hdr = tbl.cloneNode(false);

hdr.id += 'Header';

hdr.appendChild(tbl.tHead.cloneNode(true));

tbl.tHead.style.display = 'none';

if (!scrollFooter || !tbl.tFoot){

ftr = document.createElement('SPAN style="width:1;height:1;clip: rect(0 1 1 0);background-color:transparent;"');

ftr.id = tbl.id + 'Footer';

ftr.style.border = tbl.style.border;

ftr.style.width = getActualWidth(tbl) + 2 * tbl.clientLeft;

ftr.style.borderBottom = ftr.style.borderLeft = ftr.style.borderRight = 'none';

}else{

ftr = tbl.cloneNode(false);

ftr.id += 'Footer';

ftr.appendChild(tbl.tFoot.cloneNode(true));

ftr.style.borderTop = 'none';

tbl.tFoot.style.display = 'none';

}

wrapper = document.createElement('table border=0 cellspacing=0 cellpadding=0');

wrapper.id = tbl.id + 'Wrapper';

pNode.insertBefore(wrapper, container[c]);

wrapper.insertRow(0).insertCell(0).appendChild(hdr);

wrapper.insertRow(1).insertCell(0).appendChild(container[c]);

wrapper.insertRow(2).insertCell(0).appendChild(ftr);

wrapper.align = tbl.align;

tbl.align = hdr.align = ftr.align = 'left';

hdr.style.borderBottom = 'none';

tbl.style.borderTop = tbl.style.borderBottom = 'none';

// adjust page size

if (c == 0 height == 'auto'){

onResizeAdjustTable();

onResizeHandler = window.onresize;

window.onresize = onResizeAdjustTable;

}else{

container[c].style.height = height;

}

}

function onResizeAdjustTable(){

if (onResizeHandler) onResizeHandler();

var rect = container[0].getClientRects()(0);

var h = document.body.clientHeight - (rect.top + (document.body.scrollHeight - rect.bottom));

container[0].style.height = (h 0) ? h : 1;

}

function printPage(){

var tbs = document.getElementsByTagName('TABLE');

var e;

for (var i=0; i container.length; i++) container[i].style.overflow = '';

window.print();

for (var i=0; i container.length; i++) container[i].style.overflow = 'auto';

}

/script

]]/value

/data

怎么控制datagrid 每行的样式

1、首先要下载datagrid-detailview.js,这个是easyUI的扩展插件

2、创建html页面,初始化datagrid表格

例如:

table class="easyui-datagrid" id="dg" style="width:700px;height:250px"

title="DataGrid - Expand Row"

singleSelect="true" fitColumns="true"

thead

tr

th field="itemid" width="80"Item ID/th

th field="productid" width="100"Product ID/th

th field="listprice" align="right" width="80"List Price/th

th field="unitcost" align="right" width="80"Unit Cost/th

th field="attr1" width="220"Attribute/th

th field="status" width="60" align="center"Status/th

/tr

/thead

tbody

tr

td001/tdtdp1/tdtd$100/tdtd$10/tdtdSpotless Male Puppy/tdtdp/td

/tr

tr

td002/tdtdp1/tdtd$100/tdtd$22/tdtd111/tdtdp/td

/tr

tr

td003/tdtdp1/tdtd$100/tdtd$33/tdtd222/tdtdp/td

/tr

tr

td004/tdtdp1/tdtd$100/tdtd$44/tdtd444/tdtdp/td

/tr

/tbody

/table

js:

$('#dg').datagrid({

view: detailview,

detailFormatter:function(index,rowData){

//如果需要更详细的数据,这里可以使用ajax获取数据。在封装返回。

return 'tabletr' +

'td rowspan=2 style="border:0"img src="images/' + rowData.itemid + '.png" style="height:50px;"/td' +

'td style="border:0"' +

'pAttribute: ' + rowData.attr1 + '/p' +

'pStatus: ' + rowData.status + '/p' +

'/td' +

'/tr/table';

},

});

easyui-datagrid的行高怎么设置

table?id="InvoiceMessage"?class="easyui-datagrid"?style="width:240px;height:auto;"?title="信息"?data-options="url:'datagrid_data.json',fitColumns:true,singleSelect:true,showHeader:false"??

????????????????thead??

????????????????????tr??

????????????????????????th?field="name1"?width="80"/th

????????????????????????th?field="name2"?width="150"/th

????????????????????/tr??

????????????????/thead?????????????????????????????

????????????????tbody

????????????????????tr

????????????????????????td起始号:/td

????????????????????????tdinput?type="text"?name="qc_invoice_no_begin"?id="qc_invoice_no_begin"?value=""//td??????????????

????????????????????/tr

????????????????????tr

????????????????????????td结束号:/td

????????????????????????tdinput?type="text"?name="qc_invoice_no_end"?id="qc_invoice_no_end"?value=""//td??????????????

????????????????????/tr

????????????????????tr

????????????????????????td当前号:/td??????????????

????????????????????????tdinput?type="text"?name="qc_invoice_no_current"?id="qc_invoice_no_current"?value=""//td??????????????

????????????????????/tr

????????????????/tbody

????????????/table

.datagrid-row?{

????????height:?32px;

????}

修改这个css,默认25px是太小了点

EasyUI控件想动态的改变tbody里面某个td的值怎么做?使用如下方式不能生效

1、更改行数据后可以getChanges到更改的数据,可提交数据库

需要更改的字段要可编辑editor:{type=‘text’}

添加事件:

onSelect: function (rowIndex, rowData) {

datagrid.datagrid('beginEdit', rowIndex);

if (rowData.SAPCode == 'Test') { \\SAPCode为要更改的字段名

rowData.SAPCode = 'Jophin';

}

datagrid.datagrid('endEdit', rowIndex);

}

2、只更改页面和缓存数据

onSelect: function (rowIndex, rowData) {

if (rowData.SAPCode == 'Test') {

datagrid.datagrid('updateRow', {

index: rowIndex,

row: {

SAPCode: '新名称'

}

});

}

}

如何设置使得DataGrid能够提供thead,tbody的支持

asp:Repeater ID="MessageList" runat="server"

HeaderTemplate

table id="MessageListTable" cellpadding="4" cellspacing="0" border="0" width="100%"

thead

tr align="center" style="font-weight: bold;"

td选择/td

td发信人/td

td时间/td

td内容/td

td操作/td

/tr

/thead

tbody

/HeaderTemplate

ItemTemplate

tr onmouseout="this.style.backgroundColor='';" onmouseover="this.style.backgroundColor='#cccccc';"

align="center"

tdinput type="checkbox" id='%#Eval("id")%' name="selected" value='%#Eval("id")%' //td

td id="Chatto"

%# ((bool)Eval("ReceiveOrSend")==false)?Messaging.MessageContext.Cuurent.Account.Name:Eval("ChatTo") %

/td

td

%#Eval("SendTime","{0:MM月dd日 hh:mm}")%

/td

td

%# Eval("content") %

/td

tdspan style="cursor: hand" onmouseover="Onmouseover(this)" onmouseout="Onmouseout(this)"

id="span%#Eval("ID")%" onclick="DeleteMessge(%# Eval("ID")%,this)"删除/span

span style="cursor: hand" onmouseover="Onmouseover (this)" onmouseout="Onmouseout(this)"

id="%#Eval("ChatTo")%" onclick="Reply(this)"回复/span

/td

/tr

/ItemTemplate

FooterTemplate

/tbody/table

/FooterTemplate

/asp:Repeater

在datagrid中显示了产品图片,图片是以二进制存放在数据库中的,鼠标放在图片上时,图片放大,请问怎么做啊

用js脚本实现吧,可以在页面上添加一个div层,设置图片的onmouseover事件及onmouseout事件,通过脚本控制显示层,层的内容为放大后的图片

参考脚本:

var ua = navigator.userAgent

var ps = navigator.productSub

var dom = (document.getElementById)? 1:0

var ie4 = (document.all!dom)? 1:0

var ie5 = (document.alldom)? 1:0

var nn4 =(navigator.appName.toLowerCase() == "netscape" parseInt(navigator.appVersion) == 4)

var nn6 = (dom!ie5)? 1:0

var sNav = (nn4||nn6||ie4||ie5)? 1:0

var cssFilters = ((ua.indexOf("MSIE 5.5")=0||ua.indexOf("MSIE 6")=0)ua.indexOf("Opera")0)? 1:0

var Style=[],Text=[],Count=0,sbw=0,move=0,hs="",mx,my,scl,sct,ww,wh,obj,sl,st,ih,iw,vl,hl,sv,evlh,evlw,tbody

var HideTip = "eval(obj+sv+hl+';'+obj+sl+'=0;'+obj+st+'=-800')"

var doc_root = ((ie5ua.indexOf("Opera")0||ie4)document.compatMode=="CSS1Compat")? "document.documentElement":"document.body"

var PX = (nn6)? "px" :""

if(sNav) {

window.onresize = ReloadTip

document.onmousemove = MoveTip

if(nn4) document.captureEvents(Event.MOUSEMOVE)

}

if(nn4||nn6) {

mx = "e.pageX"

my = "e.pageY"

scl = "window.pageXOffset"

sct = "window.pageYOffset"

if(nn4) {

obj = "document.TipLayer."

sl = "left"

st = "top"

ih = "clip.height"

iw = "clip.width"

vl = "'show'"

hl = "'hide'"

sv = "visibility="

}

else obj = "document.getElementById('TipLayer')."

}

if(ie4||ie5) {

obj = "TipLayer."

mx = "event.x"

my = "event.y"

scl = "eval(doc_root).scrollLeft"

sct = "eval(doc_root).scrollTop"

if(ie5) {

mx = mx+"+"+scl

my = my+"+"+sct

}

}

if(ie4||dom){

sl = "style.left"

st = "style.top"

ih = "offsetHeight"

iw = "offsetWidth"

vl = "'visible'"

hl = "'hidden'"

sv = "style.visibility="

}

if(ie4||ie5||ps=20020823) {

ww = "eval(doc_root).clientWidth"

wh = "eval(doc_root).clientHeight"

}

else {

ww = "window.innerWidth"

wh = "window.innerHeight"

evlh = eval(wh)

evlw = eval(ww)

sbw=15

}

function applyCssFilter(){

if(cssFiltersFiltersEnabled) {

var dx = " progid:DXImageTransform.Microsoft."

TipLayer.style.filter = "revealTrans()"+dx+"Fade(Overlap=1.00 enabled=0)"+dx+"Inset(enabled=0)"+dx+"Iris(irisstyle=PLUS,motion=in enabled=0)"+dx+"Iris(irisstyle=PLUS,motion=out enabled=0)"+dx+"Iris(irisstyle=DIAMOND,motion=in enabled=0)"+dx+"Iris(irisstyle=DIAMOND,motion=out enabled=0)"+dx+"Iris(irisstyle=CROSS,motion=in enabled=0)"+dx+"Iris(irisstyle=CROSS,motion=out enabled=0)"+dx+"Iris(irisstyle=STAR,motion=in enabled=0)"+dx+"Iris(irisstyle=STAR,motion=out enabled=0)"+dx+"RadialWipe(wipestyle=CLOCK enabled=0)"+dx+"RadialWipe(wipestyle=WEDGE enabled=0)"+dx+"RadialWipe(wipestyle=RADIAL enabled=0)"+dx+"Pixelate(MaxSquare=35,enabled=0)"+dx+"Slide(slidestyle=HIDE,Bands=25 enabled=0)"+dx+"Slide(slidestyle=PUSH,Bands=25 enabled=0)"+dx+"Slide(slidestyle=SWAP,Bands=25 enabled=0)"+dx+"Spiral(GridSizeX=16,GridSizeY=16 enabled=0)"+dx+"Stretch(stretchstyle=HIDE enabled=0)"+dx+"Stretch(stretchstyle=PUSH enabled=0)"+dx+"Stretch(stretchstyle=SPIN enabled=0)"+dx+"Wheel(spokes=16 enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=forward enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=reverse enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=forward enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=reverse enabled=0)"+dx+"Zigzag(GridSizeX=8,GridSizeY=8 enabled=0)"+dx+"Alpha(enabled=0)"+dx+"Dropshadow(OffX=3,OffY=3,Positive=true,enabled=0)"+dx+"Shadow(strength=3,direction=135,enabled=0)"

}

}

function stm(title,txt,s) {

if(sNav) {

if(title.length2||s.length25) {

var ErrorNotice = "DHTML TIP MESSAGE VERSION 1.2 ERROR NOTICE.\n"

if(t.length2s.length25) alert(ErrorNotice+"It looks like you removed an entry or more from the Style Array and Text Array of this tip.\nTheir should be 25 entries in every Style Array even though empty and 2 in every Text Array. You defined only "+s.length+" entries in the Style Array and "+t.length+" entry in the Text Array. This tip won't be viewed to avoid errors")

else if(t.length2) alert(ErrorNotice+"It looks like you removed an entry or more from the Text Array of this tip.\nTheir should be 2 entries in every Text Array. You defined only "+t.length+" entry. This tip won't be viewed to avoid errors.")

else if(s.length25) alert(ErrorNotice+"It looks like you removed an entry or more from the Style Array of this tip.\nTheir should be 25 entries in every Style Array even though empty. You defined only "+s.length+" entries. This tip won't be viewed to avoid errors.")

}

else {

var ab = "" ;var ap = ""

var titCol = (s[0])? "COLOR='"+s[0]+"'" : ""

var txtCol = (s[1])? "COLOR='"+s[1]+"'" : ""

var titBgCol = (s[2])? "BGCOLOR='"+s[2]+"'" : ""

var txtBgCol = (s[3])? "BGCOLOR='"+s[3]+"'" : ""

var titBgImg = (s[4])? "BACKGROUND='"+s[4]+"'" : ""

var txtBgImg = (s[5])? "BACKGROUND='"+s[5]+"'" : ""

var titTxtAli = (s[6] s[6].toLowerCase()!="left")? "ALIGN='"+s[6]+"'" : ""

var txtTxtAli = (s[7] s[7].toLowerCase()!="left")? "ALIGN='"+s[7]+"'" : ""

var add_height = (s[15])? "HEIGHT='"+s[15]+"'" : ""

if(!s[8]) s[8] = "Verdana,Arial,Helvetica"

if(!s[9]) s[9] = "Verdana,Arial,Helvetica"

if(!s[12]) s[12] = 2

if(!s[13]) s[13] = 2

if(!s[14]) s[14] = 200

if(!s[16]) s[16] = 0

if(!s[17]) s[17] = 0

if(!s[18]) s[18] = 10

if(!s[19]) s[19] = 10

hs = s[11].toLowerCase()

if(ps==20001108){

if(s[2]) ab="STYLE='border:"+s[16]+"px solid"+" "+s[2]+"'"

ap="STYLE='padding:"+s[17]+"px "+s[17]+"px "+s[17]+"px "+s[17]+"px'"}

var closeLink=(hs=="sticky")? "TD ALIGN='right'FONT SIZE='"+s[12]+"' FACE='"+s[8]+"'A HREF='javascript:void(0)' ONCLICK='stickyhide()' STYLE='text-decoration:none;color:"+s[0]+"'BClose/B/A/FONT/TD":""

var title=(title||hs=="sticky")? "TABLE WIDTH='100%' BORDER='0' CELLPADDING='0' CELLSPACING='0'TRTD "+titTxtAli+"FONT SIZE='"+s[12]+"' FACE='"+s[8]+"' "+titCol+"B"+title+"/B/FONT/TD"+closeLink+"/TR/TABLE" : ""

var txt="TABLE "+titBgImg+" "+ab+" WIDTH='"+s[14]+"' BORDER='0' CELLPADDING='"+s[16]+"' CELLSPACING='0' "+titBgCol+" TRTD"+title+"TABLE WIDTH='100%' "+add_height+" BORDER='0' CELLPADDING='"+s[17]+"' CELLSPACING='0' "+txtBgCol+" "+txtBgImg+"TRTD "+txtTxtAli+" "+ap+" VALIGN='top'FONT SIZE='"+s[13]+"' FACE='"+s[9]+"' "+txtCol +""+txt+"/FONT/TD/TR/TABLE/TD/TR/TABLE"

if(nn4) {

with(eval(obj+"document")) {

open()

write(txt)

close()

}

}

else eval(obj+"innerHTML=txt")

tbody = {

Pos:s[10].toLowerCase(),

Xpos:s[18],

Ypos:s[19],

Transition:s[20],

Duration:s[21],

Alpha:s[22],

ShadowType:s[23].toLowerCase(),

ShadowColor:s[24],

Width:parseInt(eval(obj+iw)+3+sbw)

}

if(ie4) {

TipLayer.style.width = s[14]

tbody.Width = s[14]

}

Count=0

move=1

}

}

}

function MoveTip(e) {

if(move) {

var X,Y,MouseX = eval(mx),MouseY = eval(my); tbody.Height = parseInt(eval(obj+ih)+3)

tbody.wiw = parseInt(eval(ww+"+"+scl)); tbody.wih = parseInt(eval(wh+"+"+sct))

switch(tbody.Pos) {

case "left" : X=MouseX-tbody.Width-tbody.Xpos; Y=MouseY+tbody.Ypos; break

case "center": X=MouseX-(tbody.Width/2); Y=MouseY+tbody.Ypos; break

case "float": X=tbody.Xpos+eval(scl); Y=tbody.Ypos+eval(sct); break

case "fixed": X=tbody.Xpos; Y=tbody.Ypos; break

default: X=MouseX+tbody.Xpos; Y=MouseY+tbody.Ypos

}

if(tbody.wiwtbody.Width+X) X = tbody.wiw-tbody.Width

if(tbody.wihtbody.Height+Y+sbw) {

if(tbody.Pos=="float"||tbody.Pos=="fixed") Y = tbody.wih-tbody.Height-sbw

else Y = MouseY-tbody.Height

}

if(X0) X=0

eval(obj+sl+"=X+PX;"+obj+st+"=Y+PX")

ViewTip()

}

}

function ViewTip() {

Count++

if(Count == 1) {

if(cssFiltersFiltersEnabled) {

for(Index=28; Index31; Index++) { TipLayer.filters[Index].enabled = 0 }

for(s=0; s28; s++) { if(TipLayer.filters[s].status == 2) TipLayer.filters[s].stop() }

if(tbody.Transition == 51) tbody.Transition = parseInt(Math.random()*50)

var applyTrans = (tbody.Transition-1tbody.Transition24tbody.Duration0)? 1:0

var advFilters = (tbody.Transition23tbody.Transition51tbody.Duration0)? 1:0

var which = (applyTrans)?0:(advFilters)? tbody.Transition-23:0

if(tbody.Alpha0tbody.Alpha100) {

TipLayer.filters[28].enabled = 1

TipLayer.filters[28].opacity = tbody.Alpha

}

if(tbody.ShadowColortbody.ShadowType == "simple") {

TipLayer.filters[29].enabled = 1

TipLayer.filters[29].color = tbody.ShadowColor

}

else if(tbody.ShadowColortbody.ShadowType == "complex") {

TipLayer.filters[30].enabled = 1

TipLayer.filters[30].color = tbody.ShadowColor

}

if(applyTrans||advFilters) {

eval(obj+sv+hl)

if(applyTrans) TipLayer.filters[0].transition = tbody.Transition

TipLayer.filters[which].duration = tbody.Duration

TipLayer.filters[which].apply()

}

}

eval(obj+sv+vl)

if(cssFiltersFiltersEnabled(applyTrans||advFilters)) TipLayer.filters[which].play()

if(hs == "sticky") move=0

}

}

function stickyhide() {

eval(HideTip)

}

function ReloadTip() {

if(nn4(evlw!=eval(ww)||evlh!=eval(wh))) location.reload()

else if(hs == "sticky") eval(HideTip)

}

function htm() {

if(sNav) {

if(hs!="keep") {

move=0;

if(hs!="sticky") eval(HideTip)

}

}

}

层代码

div id="TipLayer" style="Z-INDEX: 103; VISIBILITY: hidden; POSITION: absolute; TOP: -100px"/div

(责任编辑:IT教学网)

更多

推荐网页文字特效文章