|
主题: 我也不知道属于哪一类问题
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#12006/5/13 7:13:34
allinhands大哥, 蓝鲸大哥,帮帮忙。 问题有点难叙述清楚,我晕! 大哥们一定要耐心看啊! 问题类似于论坛分坛,但我的问题不存在分坛上。 先看主导航的数据库: 图片如下:  然后在页面实现了这样: 图片如下:  然后我做了下拉菜单,是用JS控制的一个层。 代码如下: <SCRIPT language=javascript>
<!--
function showMenu(oSrc,e,sCont,n)
{
var lay;
lay=document.getElementById("topicPrompt");
lay.style.visibility='visible';
if(n==0){
var x=document.body.scrollLeft + e.clientX - e.offsetX + oSrc.offsetLeft - 12;
var y=document.body.scrollTop + e.clientY - e.offsetY + oSrc.offsetTop + 18;
lay.style.left=x;
lay.style.top=y;
n=1;
}
else{
lay.style.left=x;
lay.style.top=y;
}
}
function hideMenu(s)
{
var lay=document.getElementById(s);
if(lay) lay.style.visibility='hidden';
}
//-->
</SCRIPT>
<DIV id=topicPrompt onMouseOver="showMenu(this,event,"1111",1)" onmouseout="hideMenu('topicPrompt')"
style="BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dddddd 1px solid; PADDING-LEFT: 12px; Z-INDEX: 1; BACKGROUND: #ffffff; FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=7, Direction=135, color=#aaaaaa); VISIBILITY: hidden; PADDING-BOTTOM: 0px; BORDER-LEFT: #dddddd 1px solid;LINE-HEIGHT: 22px; PADDING-TOP: 8px; BORDER-BOTTOM: #dddddd 1px solid; POSITION: absolute; HEIGHT: 30px">这里将放置下边表中的TITLE</DIV> 这个层里边要放的是这个表里边的东西: 图片如下:  这个表的idno字段与上边那个表的id关联。 我现在解决不了的问题是,当鼠标放在了比如“网站建设”上边,就在层中显示出第二个表中idno等于第一个表中id相同的字段中的内容。 简单的说,就是怎样onMouseOver的时候,让我知道鼠标onMouseOver所对应的第一个表中的id,以可以让我对应的去搜索第二个表中对应的idno中的内容? 也不知道说清楚了没有,晕死,搞一个通宵了,没搞出来。
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#22006/5/13 7:16:14
先去吃点东西
|
 yiliaocheng
职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
|
#32006/5/13 10:13:37
我也曾经想做过这种效果,也发过帖子,可是没人能回答,这里只好同情你下了。我已经放弃了这种效果。
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#42006/5/13 10:20:29
id可以有很多方法传递,比如当作参数
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#52006/5/13 13:45:16
不太明白,怎样onMouseOver的时候,传递这个ID值呢?
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#62006/5/13 13:52:34
真的很着急,构思这个网站很久了,以前没到这个问题,这才刚刚开始,就遇到了不可逾越的障碍,真的很不希望这样。在设计这一块我是个白痴,好不容易自己设计出一个自己感觉舒服的网站,不希望就这样结束了。 各位大哥一定要帮帮忙啊!!!很多网站都实现了我说的这种效果,应该是可以办到的吧。
|
 蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
|
#72006/5/13 14:06:55
可以把二个表的记录一次性读取放在二个数组中 用二个循环,第一个循环读取主栏目数组,第二循环(内循环)读取与主栏目相关ID号的数组记录。 其它方法与做静态菜单方法一样。
非常大鱼
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#82006/5/13 14:20:53
这个注意不错,这样可以让显示没有延迟。 但是怎样进行对应的显示呢? 还是不太明白onMouseOver的时候,怎样对应的显示。 可以举个小例子让我理解一下吗?
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#92006/5/13 14:22:05
onMouseOver = func(para1,para2,id)
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#102006/5/13 14:24:45
allinhands在上个帖子中说 引用: onMouseOver = func(para1,para2,id)
什么时候给ID赋值呢?
|
 缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
|
#112006/5/13 14:26:17
你在输出一级导航的时候就可以把参数写进去啊
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#122006/5/13 14:28:05
恩 我去试试
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#132006/5/13 14:42:52
不行,我怎么知道我鼠标放在一级导航上边的哪个兰目上边? 比如有“网站建设”,“我的亲人”。前者的ID=1,后者的ID=2。 我怎么让鼠标放在前者的时候,传递ID=1,让鼠标放在后者的时候,传递ID=2?
|
 蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
|
#142006/5/13 15:11:47
当栏目ID为1时,读取第2数组中所有相关ID为1的记录就行,放在次栏目中。
其实如果搞清了静态菜单的做法,做动态的不是很难。
非常大鱼
|
 studyASP
职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
|
#152006/5/13 19:39:11
已经做到这里了,帮我看看,下边应该怎么做,好吗? 一级导航放在:myarry1()里边,这是一维数组 二级导航防在:myarry2()里边,这是二维数组 <!-- #include file="conn.asp" --> <% set rs1=server.createobject("adodb.recordset") sql="select id,theme from wlj_theme" rs1.open sql,conn,1,1
set rs2=server.createobject("adodb.recordset") sql="select idno,title from wlj_title" rs2.open sql,conn,1,1 %> <% dim myarry1() dim myarry2() dim x dim y x=0 redim myarry1(rs1.recordcount) redim myarry2(rs1.recordcount-1,rs2.recordcount-1) if ((not rs1.bof) and (not rs1.eof)) then do until rs1.eof myarry1(x)=rs1("theme") 'response.write("<br>"&myarry1(x)&":") if ((not rs2.bof) and (not rs2.eof)) then y=0 do until rs2.eof if rs2("idno")=rs1("id") then myarry2(x,y)=rs2("title") 'response.write(myarry2(x,y)&" ") end if rs2.movenext y=y+1 loop rs2.movefirst end if rs1.movenext x=x+1 loop x=x-1 y=y-1 end if %> <html> <head><title>郁闷死我了</title> <SCRIPT language=javascript> <!-- function showMenu(oSrc,e,sCont,n) { var lay; lay=document.getElementById("topicPrompt"); lay.style.visibility='visible'; if(n==0){ var x=document.body.scrollLeft + e.clientX - e.offsetX + oSrc.offsetLeft+20; var y=document.body.scrollTop + e.clientY - e.offsetY + oSrc.offsetTop + 18; lay.style.left=x; lay.style.top=y; n=1; } else{ lay.style.left=x; lay.style.top=y; } } function hideMenu(s) { var lay=document.getElementById(s); if(lay) lay.style.visibility='hidden'; } //--> </SCRIPT> </head> <DIV id=topicPrompt onMouseOver="showMenu(this,event,"1111",1)" onmouseout="hideMenu('topicPrompt')" style="BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dddddd 1px solid; PADDING-LEFT: 12px; Z-INDEX: 1; BACKGROUND: #ffffff; FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=7, Direction=135, color=#aaaaaa); VISIBILITY: hidden; PADDING-BOTTOM: 0px; BORDER-LEFT: #dddddd 1px solid;LINE-HEIGHT: 22px; PADDING-TOP: 8px; BORDER-BOTTOM: #dddddd 1px solid; POSITION: absolute; HEIGHT: 30px"></DIV> <table border=1><tr> <% for i=0 to ubound(myarry1)-1 %> <td><a href="xxx.asp" onmouseover="showMenu(this,event,"520",0)" onmouseout="hideMenu('topicPrompt')"><%=myarry1(i)%></a></td> <%next%> </tr></table> <% 'for j=0 to ubound(myarry2,2) 'response.write(myarry2(i,j)) 'next
rs1.close set rs1=nothing rs2.close set rs2=nothing conn.close set conn=nothing %>
|