如何在鼠标单击位置显示一个层,而不影响其它超级链接或按钮?
在页面任何地方单击鼠标,就在鼠标位置显示一个层,但是在其它地方,比如:按钮、超级链接、TextArea之类,鼠标单击不受影响,不显示那个层,而是处理自己默认。
望给位大虾指点!
问题点数:30、回复次数:10Top
1 楼3Xman(Unix疯子)回复于 2001-02-15 13:55:00 得分 12
不妨试一试这个:(逻辑顺序需根据网页的逻辑顺序自己搞定!)
<html>
<head><style type="text/css">
body{font: 9pt "宋体"; margintop: 0px ; color: #003366; background: #ffffff}
a.{ font: 9pt "宋体"; cursor: hand; font-size: 9pt ; color: #ffffff; text-decoration: none }
a:active{ font: 9pt "宋体"; cursor: hand; color: #800080 }
a.cc:hover{ font: 9pt "宋体"; cursor: hand; color: #800080}
.box{ font: 9pt "宋体"; position: absolute; background: #99CCFF }
</style>
<title>3Xman</title>
</head>
<body><table id="itemopen" class="box" style="display:none">
<tr>
<td ><p align="center"><font size="2" face="BankGothic Lt BT">3Xman</font></td>
</tr>
<tr>
<td><a href="../../../index.html" class="cc">本站首页</a></td>
</tr>
<tr>
<td><a href="../../navigation/newscript.htm" class="cc">最新更新</a></td>
</tr>
<tr>
<td><a href="../../navigation/applet/appletindex.htm" class="cc">梦想软件</a></td>
</tr>
<tr>
<td><a href="../../../jsschool/index.htm" class="cc">桌面壁纸</a></td>
</tr>
<tr>
<td><a href="popmenu.htm" class="cc">更多连接</a></td>
</tr>
<tr>
<td><a href="popmenu.htm" class="cc">更多连接</a></td>
</tr>
<tr>
<td><a href="popmenu.htm" class="cc">更多连接</a></td>
</tr>
</table>
<script language="JavaScript">
document.onclick = popUp
function popUp() {
newX = window.event.x + document.body.scrollLeft
newY = window.event.y + document.body.scrollTop
menu = document.all.itemopen
if ( menu.style.display == ""){
menu.style.display = "none" }
else {
menu.style.display = ""}
menu.style.pixelLeft = newX - 50
menu.style.pixelTop = newY - 50
}
</script>
</body>
</html>
祝你好运,Bye! (@_@)/~~
Top
2 楼yankee(歪诗闲人)回复于 2001-02-15 14:34:00 得分 0
左键还是右键:
左键就定义window或form的onclick
右键就用body的oncontextmenu
Top
3 楼mrgong(SEA)回复于 2001-02-15 14:39:00 得分 0
3Xman(Unix疯子):谢谢你的帮助。我的问题还是没解决(你给我的这种方法我已经用过)。
我的问题正是这种方法的问题是:
如果你在网页中加入一个Button或TextArea,你会发现,在Button上单击,将会在Button上出现菜单,在TextArea中单击,也会出现菜单。况且,如果加入一个超级链接,将不会显示出来!
或许我没讲清楚:我的网页比较长,在顶行和底行各有一个按钮,单击顶行的的按钮后,就在顶行按钮处显示那个层;单击底行的按钮后,就在底行按钮处显示那个层。
我遇到的问题就是:不能够在单击按钮后,在按钮处显示那个层,而只能在定义层时使用的初始位置显示那个层(left,top)。
各位大虾,你们能帮我吗?Top
4 楼mrgong(SEA)回复于 2001-02-15 14:42:00 得分 0
yankee(歪诗闲人):谢谢,看了我上面贴子后,当然是左键了(按钮嘛)。请……Top
5 楼mrgong(SEA)回复于 2001-02-16 08:58:00 得分 0
大家都来看看吧!Top
6 楼unique(伪程序员)回复于 2001-02-16 12:35:00 得分 0
mrgong(龚先生),你好!
你的问题我看了,也许能帮你,可是不太清楚
1.是左键单击后,那个层没有在单击处出来?
2.还是想保持那些默认的点击行为。只点到没事的地方弹?Top
7 楼unique(伪程序员)回复于 2001-02-16 13:23:00 得分 18
mrgong(龚先生),你好!你要的功能可以用这个页面,
(现在是捕捉右键,稍微改改更猛)
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Popup </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script language="JavaScript">
<!--
//check left mouse button
function domouse()
{
if (event.button==2)(doalert());
}
//Pop Menu function
var MenuSkin=0;
var displayURL=0;
function popMenu()
{
var rightEdge=document.body.clientWidth-event.clientX;
var bottomEdge=document.body.clientHeight-event.clientY;
if(rightEdge<IE5Menu.offsetWidth) IE5Menu.style.left=document.body.scrollLeft+event.clientX-IE5Menu.offsetWidth;
else IE5Menu.style.left=document.body.scrollLeft+event.clientX;
if(bottomEdge<IE5Menu.offsetHeight) IE5Menu.style.top=document.body.scrollTop+event.clientY-IE5Menu.offsetHeight;
else IE5Menu.style.top=document.body.scrollTop+event.clientY;
IE5Menu.style.visibility="visible";
return false;
}
function hideMenu()
{
IE5Menu.style.visibility="hidden";
}
function highLight()
{
if(event.srcElement.className=="MenuItems")
{
event.srcElement.style.backgroundColor="highlight";
event.srcElement.style.color="white";
if(displayURL==1) window.status=event.srcElement.url;
}
}
function lowLight()
{
if(event.srcElement.className=="MenuItems")
{
event.srcElement.style.backgroundColor="";
event.srcElement.style.color="black";
window.status='';
}
}
function linkTo()
{
if(event.srcElement.className=="MenuItems")
{
if(event.srcElement.getAttribute("target")!=null) window.open(event.srcElement.url,event.srcElement.getAttribute("target"));
else window.location=event.srcElement.url;
}
}
function initMenu()
{
if(document.all&&window.print)
{
IE5Menu.className="MenuSkin0";
document.oncontextmenu=popMenu;
document.body.onclick=hideMenu;
}
}
//End function
//-->
</script>
<style>
.MenuItems{padding-left:15px; padding-right:10px}
.MenuSkin0{background-color:menu;border-top:buttonhighlight 2px outset;border-bottom:buttonhighlight 2px outset;border-left:buttonhighlight 2px outset;border-right:buttonhighlight 2px outset;line-height:15pt;font-size:9pt;cursor:default;position:absolute;visibility:hidden;z-index:1;width:150px}
</style>
</head>
<body bgcolor="#FFFFFF" onLoad="initMenu()">
<div class="MenuSkin0" id="IE5Menu" onclick="linkTo()" onmouseout="lowLight()" onmouseover="highLight()">
<div align="center">【精采家园网】</div><hr>
<div class=MenuItems url="JavaScript:history.go(-1)">后退(Backward)</div>
<div class=MenuItems url="JavaScript:history.go(+1)">前进(Forward)</div>
<div class=MenuItems url="JavaScript:location.reload()">刷新(Reload)</div><hr>
<div class=MenuItems url="/index.htm">【影音视界】</div>
<div class=MenuItems url="/index.htm">【相关文章】</div>
<div class=MenuItems url="/index.htm">【精采软件】</div>
<div class=MenuItems url="Others/about.htm">【关于本站】</div><hr>
<div class=MenuItems url="/gbook" target="_blank">留言簿(Message)</div>
<div class=MenuItems url="mailto:aa@aa.com.cn">给我来信(Mail me!)</div><hr>
<div class=MenuItems url="JavaScript:window.external.AddFavorite('http://www.aaa.com','【我的主页】')">将本站添加到收藏夹</div>
</div>
</body>
</html>Top
8 楼mrgong(SEA)回复于 2001-02-16 14:42:00 得分 0
3Xman(Unix疯子) & unique(伪程序员):
问题已经解决了。
谢谢你们!因为有了这种无私的帮助,网络才更可爱1Top
9 楼unique(伪程序员)回复于 2001-02-16 14:49:00 得分 0
不要客气嘛,呵呵Top
10 楼3Xman(Unix疯子)回复于 2001-02-16 20:21:00 得分 0
很高兴能够帮到你的忙,Bye! (@_@)/~~Top




