分享
 
 
 

用Javascript制作旋转导航菜单

王朝html/css/js·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

你见过这样的导航菜单吗?导航菜单围绕着网站Logo不停地旋转,而一旦你把鼠标移到菜单上,旋转立即停止,在显示网站logo的地方显示出这个菜单链接的内容简介,点击链接将链接到指定的网页。一旦你的鼠标离开菜单,导航菜单又继续不停地旋转。你看这种导航菜单是不是既吸引人又贴近用户。本文例子如下图所示。是不是想在自已的网页上也放上一个,其实制作起来也不太难。

制作思路:要使页面的内容旋转起来,用图层和Javascript程序是肯定的了,要使图层的运动轨迹是一个圆,这要用到圆的参数方程,这是一个数学问题,不懂也没关系,程序我已写好,你只要复制就行了。关于鼠标指到某个链接就显示该链接的内容简介,这是图层的visible属性控制,用Dreamweaver的网友,用Behaviors很容易实现,不过在本文中我自编了一个小程序来控制图层的visible属性,以便不用Dreamweaver的网友也能很容易地做出本文的效果。

制作方法:

1、把下面这段程序插入到网页源代码的<head>与</head>之间:

<style> //这是一个CSS样式表,用于定义图层的外观属性<!--.rotatediv {position:absolute;z-index:2;}.nrjj {text-align: center;position:absolute;top:160px;left: 230px;width:200px;height:30px;background-color:#ffffff; visibility:hidden; z-index:1;}.logo {text-align: center;position:absolute;top:160px;left: 230px;width:200px;z-index:0;}--></style><script language="JavaScript">//程序开始<!--ns4 = (document.layers)? true:false //检测浏览器。ie4 = (document.all)? true:falsefunction showobject(obj) { //显示指定的图层。if (ns4) obj.visibility = "show"else if (ie4) obj.visibility = "visible"}function hideobject(obj) { //隐藏指定的图层。if (ns4) obj.visibility = "hide"else if (ie4) obj.visibility = "hidden"}function rotateobj(ctrl) { //使菜单图层旋转还是停止旋转的函数。if (ctrl) { //如果“ctrl”为真,则开始计算图层的移动坐标,开始旋转。for (var i = 0; i < pos.length; i++) {pos[i] += inc;objects[i].left = (r * Math.cos(pos[i])) + xoffobjects[i].top = (r * Math.sin(pos[i])) + yoff;}rotateTimer = setTimeout("rotateobj(true)", 50); //每50祚秒刷新一次。}else //如果“ctrl”不为真,则停止旋转。clearTimeout(rotateTimer);}function initobj() { //初始化函数,为图层的旋转准备基本数据objects = new Array(rotatediv1, rotatediv2, rotatediv3, rotatediv4); //菜单图层对象数组pos = new Array(); //菜单图层位置数组,存放初始位置的圆心角(弧度)。pos[0] = 0;for (var i = 1; i < objects.length; i++) {pos[i] = parseFloat(pos[i - 1] + ((2 * pi) / objects.length));}rotateobj(true);}var objects;var pos;var r = 100; //旋转半径,可根据需要修改。var xoff = 280; //旋转中心X坐标var yoff = 170; //旋转中心Y坐标var pi = Math.PI;var inc = pi / 180; //旋转步长,把分母改小,则旋转加快。--></script>

引用本程序时,注意以下几点:

1)可通过修改旋转半径来调整旋转范围的大小;

2)修改旋转中心的X、Y坐标,可以把旋转效果移到页面的任何地方。

2、在网页源代码的<body>与</body>之间插入下面的代码以制作导航菜单等图层:

<div ID="rotatediv1" CLASS="rotatediv" onMouseOver="showobject(nrjj1); rotateobj(false)" onMouseOut="hideobject(nrjj1);rotateobj(true)"> <p><a href="http://cms.ddvip.com/index.php#" ><img src="image/dot.gif" width="11" height="8">链接 1</a><br></p></div><div ID="rotatediv2" CLASS="rotatediv" onMouseOver="showobject(nrjj2); rotateobj(false)" onMouseOut="hideobject(nrjj2); rotateobj(true)"><p><img src="image/dot.gif" width="11" height="8"><a href="http://cms.ddvip.com/index.php#" >链接 2</a><br></p></div><div ID="rotatediv3" CLASS="rotatediv" onMouseOver="showobject(nrjj3); rotateobj(false)" onMouseOut="hideobject(nrjj3); rotateobj(true)"><p><a href="http://cms.ddvip.com/index.php#"><img src="image/dot.gif" width="11" height="8">链接 3</a><br></p></div><div ID="rotatediv4" CLASS="rotatediv" onMouseOver="showobject(nrjj4); rotateobj(false)" onMouseOut="hideobject(nrjj4); rotateobj(true)"><p><img src="image/dot.gif" width="11" height="8"><a href="http://cms.ddvip.com/index.php#" >链接 4</a><br></p></div><div ID="nrjj0" CLASS="logo"><p>黄山村夫站<br>http://fym888.go.163.com</p></div><div ID="nrjj1" CLASS="nrjj"><p><img src="image/a6ball.gif" width="18" height="18">链接1内容简介 </p></div><div ID="nrjj2" CLASS="nrjj"><p>链接2内容简介 </p></div><div ID="nrjj3" CLASS="nrjj"><p>链接3内容简介 </p></div><div ID="nrjj4" CLASS="nrjj"><p>链接4内容简介</p></div><script LANGUAGE="JavaScript">/* 下面是准备一些变量的初值,为事件调用程序作基础*/var isNS = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4);var rotatediv1 = (isNS) ? document.rotatediv1 : document.all.rotatediv1.style;var rotatediv2 = (isNS) ? document.rotatediv2 : document.all.rotatediv2.style;var rotatediv3 = (isNS) ? document.rotatediv3 : document.all.rotatediv3.style;var rotatediv4 = (isNS) ? document.rotatediv4 : document.all.rotatediv4.style;var nrjj1 = (isNS) ? document.nrjj1 : document.all.nrjj1.style;var nrjj2 = (isNS) ? document.nrjj2 : document.all.nrjj2.style;var nrjj3 = (isNS) ? document.nrjj3 : document.all.nrjj3.style;var nrjj4 = (isNS) ? document.nrjj4 : document.all.nrjj4.style;initobj();</script>

上面的代码看起来有点复杂,你若对HTML不熟悉的话,可以不要管它,只要把其中的文本、图片和超级链接换成你所需要的就行了。

至此,制作结束,一个美观实用的旋转导航菜单就做好了。在实际制作过程中,由菜单内容简介的图层是设置成隐藏的,若是用DW或FP的网友可能无法编辑,解决的办法是:

1)在源代码中编辑;

2)把CSS样式表中的这段代码visibility:hidden;删除,这样那些图层就可看见了,但是,是重叠在一起的,可用鼠标把它们拖开,把内容写好后,再把它们拖回原处。使用DW的网友可用DW的图层面板操作就方便多了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有