转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
浮动菜单是如何作出来的mouse事件         ★★★★

浮动菜单是如何作出来的mouse事件

作者:闵涛 文章来源:闵涛的学习笔记 点击数:828 更新时间:2009/4/23 11:30:26

这个问题由我来做一个最终解答吧。我以前也同样惊异于闪光地带的这个特效,苦恼于不知如何实现。我在经典提问,有一位网友热心解答了我的问题,但只是局限于如何加入和“闪光地带”同样的效果,而且并不完美,实际上这个脚本还可以实现许多效果,不知是zippy不知道还是没有用?可是当时看代码看的头晕眼花的我还是不知如何实现,幸运的是随着时间的推移,我终于找到了这个问题非常圆满的答案。请看:
这个效果是一个js特效,js文件名为coollayer.js也有叫overlib.js的,它可实现一种非常酷的浮动菜单效果,有5种风格:
风格1:没有标题栏
风格2:显示标题栏
风格3:点击显示标题栏
风格4:点击左侧显示标题栏
风格5:居中显示浮动窗口
在js文件中,绝大部分不必修改,你只要改一下显示的字体的大小即可。主要修改html文档页面,因为弹出的浮动窗口的显示内容全部由它控制。看看源代码,非常容易看得懂。比如我新建的网页:http://q3a.go.163.com

参数含义:(caption--标题)

onMouseOver 用以下函数控制:

Center(居中)
dcs(text)
dcc(text, caption)
Right
drs(text)
drc(text, caption)
Left
dls(text)
dlc(text, caption)

onMouseOut 用以下函数控制:

nd()

onClick 用以下函数控制:

scc(text, caption)
src(text, caption)
slc(text, caption)

其余注意的要点:

在<BODY></BODY>标签内必须有下面的2行:
<DIV ID="overDiv" STYLE="position:absolute; visibility:hide; z-index:1;"></DIV>
<SCRIPT LANGUAGE="JavaScript" SRC="overlib.js"></SCRIPT>

CSS用下面的一行控制,放在<head></head>之间。
<LINK REL="stylesheet" HREF="overlib.css" TYPE="text/css">
这些内容是摘自java2000站点的关于这个特效的说明文件,我已经做成了压缩包供大家下载。
地址是http://go.163.com/~dreamwar/resource/downloads/classical/coollink.zip同时欢迎大家来我的新网站:“雷神战梦”(http://q3a.go.163.com)做客,比闪光地带的那个特效还酷哦!!

附java2000的网址:http://java2000.126.com

附coollayer.js(overlib.js)源文件:

////////////////////////////////////////////////////////////////////////////////////
// overLIB 2.22 -- Please leave this notice.
//
// By Erik Bosrup (erik@bosrup.com) Last modified 1999-03-31
// Portions by Dan Steinman, Landon Bradshaw and Gnowknayme.
////////////////////////////////////////////////////////////////////////////////////

//请不要随便修改
////////////////////////////////////////////////////////////////////////////////////
// CONFIGURATION
////////////////////////////////////////////////////////////////////////////////////

// 主背景色(大区域)
// 通常使用明快的颜色(浅黄色等...)
if (typeof fcolor == 'undefined') { var fcolor = "#CCCCFF";}

// Border的颜色和标题栏的颜色;
// 通常的颜色深(褐色,黑色等。)
if (typeof backcolor == 'undefined') { var backcolor = "#333399";}


// 文字的颜色
// 通常是比较深的颜色;
if (typeof textcolor == 'undefined') { var textcolor = "#000000";}

// 标题的颜色
// 通常是明快的颜色;
if (typeof capcolor == 'undefined') { var capcolor = "#FFFFFF";}

// "Close"的颜色
// 通常是明快的颜色;
if (typeof closecolor == 'undefined') { var closecolor = "#9999FF";}


// 弹出的窗口的宽度;
// 100-300 pixels 合适
if (typeof width == 'undefined') { var width = "200";}

// 边缘的宽度,象素。
// 1-3 pixels 合适
if (typeof border == 'undefined') { var border = "1";}


// 弹出窗口位于鼠标左侧或者右侧的距离,象素。
// 3-12合适
if (typeof offsetx == 'undefined') { var offsetx = 10;}

// 弹出窗口位于鼠标下方的距离;
// 3-12 合适
if (typeof offsety == 'undefined') { var offsety = 10;}

////////////////////////////////////////////////////////////////////////////////////
// 设置结束
////////////////////////////////////////////////////////////////////////////////////


ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

// Microsoft Stupidity Check.
if (ie4) {
if (navigator.userAgent.indexOf('MSIE 5')>0) {
ie5 = true;
} else {
ie5 = false; }
} else {
ie5 = false;
}

var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0;
var dir = 1;
var tr = 1;
if ( (ns4) || (ie4) ) {
if (ns4) over = document.overDiv
if (ie4) over = overDiv.style
document.onmousemove = mouseMove
if (ns4) document.captureEvents(Event.MOUSEMOVE)
}

// 以下是页面中使用的公共函数;

// Simple popup right
function drs(text) {
dts(1,text);
}

// Caption popup right
function drc(text, title) {
dtc(1,text,title);
}

// Sticky caption right
function src(text,title) {
stc(1,text,title);
}

// Simple popup left
function dls(text) {
dts(0,text);
}

// Caption popup left
function dlc(text, title) {
dtc(0,text,title);
}

// Sticky caption left
function slc(text,title) {
stc(0,text,title);
}

// Simple popup center
function dcs(text) {
dts(2,text);
}

// Caption popup center
function dcc(text, title) {
dtc(2,text,title);
}

// Sticky caption center
function scc(text,title) {
stc(2,text,title);
}

// Clears popups if appropriate
function nd() {
if ( cnt >= 1 ) { sw = 0 };
if ( (ns4) || (ie4) ) {
if ( sw == 0 ) {
snow = 0;
hideObject(over);
} else {
cnt++;
}
}
}

// 非公共函数,被其它的函数调用;

// Simple popup
function dts(d,text) {
txt = "<TABLE WIDTH="+width+" BORDER=0 CELLPADDING="+border+" CELLSPACING=0 BGCOLOR=""+backcolor+""><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=""+fcolor+""><TR><TD><FONT FACE="宋体" COLOR=""+textcolor+"">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>"
layerWrite(txt);
dir = d;
disp();
}

// Caption popup
function dtc(d,text, title) {
txt = "<TABLE WIDTH="+width+" BORDER=0 CELLPADDING="+border+" CELLSPACING=0 BGCOLOR=""+backcolor+""><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><SPAN ID="PTT"><FONT COLOR=""+capcolor+"">"+title+"</FONT></B></SPAN></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=""+fcolor+""><TR><TD><SPAN ID="PST"><FONT COLOR=""+textcolor+"">"+text+"</FONT><SPAN></TD></TR></TABLE></TD></TR></TABLE>"
layerWrite(txt);
dir = d;
disp();
}


// Sticky
function stc(d,text, title) {
sw = 1;
cnt = 0;
txt = "<TABLE WIDTH="+width+" BORDER=0 CELLPADDING="+border+" CELLSPACING=0 BGCOLOR=""+backcolor+""><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><SPAN ID="PTT"><FONT COLOR=""+capcolor+"">"+title+"</FONT></B></SPAN></TD><TD ALIGN=RIGHT><A HREF="/" onMouseOver="cClick();" ID="PCL"><FONT COLOR=""+closecolor+"">Close</FONT></A></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=""+fcolor+""><TR><TD><SPAN ID="PST"><FONT COLOR=""+textcolor+"">"+text+"</FONT><SPAN></TD></TR></TABLE></TD></TR></TABLE>"
layerWrite(txt);
dir = d;
disp();
snow = 0;
}

// Common calls
function disp() {
if ( (ns4) || (ie4) ) {
if (snow == 0) {
if (dir == 2) { // Center
moveTo(over,x+offsetx-(width/2),y+offsety);
}
if (dir == 1) { // Right
moveTo(over,x+offsetx,y+offsety);
}
if (dir == 0) { // Left
moveTo(over,x-offsetx-width,y+offsety);
}
showObject(over);
snow = 1;
}
}
// Here you can make the text goto the statusbar.
}

// Moves the layer
function mouseMove(e) {
if (ns4) {x=e.pageX; y=e.pageY;}
if (ie4) {x=event.x; y=event.y;}
if (ie5) {x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
if (snow) {
if (dir == 2) { // Center
moveTo(over,x+offsetx-(width/2),y+offsety);
}
if (dir == 1) { // Right
moveTo(over,x+offsetx,y+offsety);
}
if (dir == 0) { // Left
moveTo(over,x-offsetx-width,y+offsety);
}
}
}


// The Close onMouseOver function for Sticky
function cClick() {
hideObject(over);
sw=0;
}

// Writes to a layer
function layerWrite(txt) {
if (ns4) {
var lyr = document.overDiv.document
lyr.write(txt)
lyr.close()
}
else if (ie4) document.all["overDiv"].innerHTML = txt
if (tr) { trk(); }
}

// Make an object visible
function showObject(obj) {
if (ns4) obj.visibility = "show"
else if (ie4) obj.visibility = "visible"
}


// Hides an object
function hideObject(obj) {
if (ns4) obj.visibility = "hide"
else if (ie4) obj.visibility = "hidden"
}

// Move a layer
function moveTo(obj,xL,yL) {
obj.left = xL
obj.top = yL
}

function trk() {
if ( (ns4) || (ie4) ) {
nt=new Image(32,32); nt.src="http://www.nedstat.nl/cgi-bin/nedstat.gif?name=ol2t";
bt=new Image(1,1); bt.src="http://webdesign.chinaitlab.com/UploadFiles_8014/200605/20060512113425323.gif";
refnd=new Image(1,1); refnd.src="http://www.nedstat.nl/cgi-bin/referstat.gif?name=ol2t&refer="+escape(top.document.referrer);

}
tr = 0;
}

附overlib.css:

body {font-family:"宋体";font-size: 9pt; margin-top: 0px }

a {font-family:"宋体";font-size: 9pt }

td { FONT-SIZE: 9pt ; font-family: "宋体" }


#PCL {
font-family: 宋体
font-style: none;
font-weight: normal;
text-decoration: none;
font-size: 9pt;
}

#PTT {
font-family: 宋体
font-size: 9pt;
}

#PST {
font-family: 宋体
font-size: 9pt;
}

注:将以上两文件保存为.js文档和css文档,css用自己的就行了,没必要用他的。最后希望大家能用好这个特效来装点自己的主页,一定要记得好东东要共享哦!!


[网页制作]浮动菜单是如何作出来的mouse事件  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台