一段HTML 导航栏特效`谁帮我改下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一段HTML 导航栏特效`谁帮我改下相关的知识,希望对你有一定的参考价值。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css 菜单</title>
<style>
body
background-color:#FFFFFF;

#fbtn
display:none;
overflow:hidden;
border-style:solid;
border-width:1px;
border-color:#e1e1c9 #e1e1c9 #6e6e56 #6e6e56;
padding:1 1 1 1;
width:115px;
height:30px;

#fbtn_txt
position:relative;

#fbtn_txt div
height:30px;
padding-top:11px;
font-size:9px;
font-family:small fonts;
color:#800080;
text-align:center;
cursor:hand;

#fbtn_mask
background-color:#ffffff;
position:relative;
width:100%;
height:100%;

</style>

</head>

<body>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M1</div>
<div>my name is fireyy</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M1</div>
<div>my name is fireyy</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<script>
var current=null;
var t=null;
for(var i=0;i<fbtn.length;i++)
fbtn_txt[i].style.posTop=-30;
fbtn_mask[i].style.posTop=-30;
fbtn[i].index=i;
fbtn[i].style.display="block";
fbtn[i].onmouseover=function()
if(!current)
current=this;
domove(this.index);

else if(current!=this)
domove(current.index);
domove(this.index);
current=this;


fbtn[i].onmouseout=function()
if(event.toElement==this.parentElement&t==this)
domove(this.index);
current=null;



function domove(num)
var o=fbtn_txt[num];
var m=fbtn_mask[num];
if(o.style.posTop<-60)
o.style.display="none";
var t=o.children[1].innerHTML;
o.children[1].innerHTML=o.children[0].innerHTML;
o.children[0].innerHTML=t;
o.style.posTop=-30;
o.style.display="block";
if(m.style.posTop>30)
m.style.posTop=-30;
else
m.style.posTop=0;

else
m.style.posTop+=3;
o.style.posTop-=3;
setTimeout('domove('+num+')',15);


</script>
</body>
</html>

以上代码是当鼠标移动到按钮上的时候按钮字从下往上走`
我想让他从左往右 `关键应该是改script部分吧 告示来指点下啊 讲的详细点 谢谢
很急啊` ` 拜托高手们来指点下咯
我试过把 posTop 全改成 posRight 不行 ``上面还有要修改的地方````
我QQ 179844442\
还没改好哇` 哪位高手来帮我啊
真的很急 我加分` 再给 200!!!!!!!!!!!!

楼下的几个你们发的那个不太行哦` ` 新出现的那些文字 不是移动出来的
是直接变出来的``不过移开的文字倒是往右移走的

参考技术A 这个肯定行!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css 菜单</title>
<style>
body
background-color:#FFFFFF;

#fbtn
/*display:none; */
overflow:hidden;
position:relative;
width:115px;
height:30px;

border-style:solid;
border-width:1px;
border-color:#0e0eff;
padding:1px;

#fbtn_txt
position:absolute;
float:right;
right:0px;
width:250px;
height:30px;


#fbtn_txt div
width:115px;
height:30px;
float:right;
padding-top:11px;
font-size:9px;
font-family:small fonts;
color:#800080;
text-align:center;
cursor:pointer;

</style>

</head>

<body>
<div id=fbtn>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_txt>
<div>M1</div>
<div>my fhoujun </div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M1</div>
<div>my fhoujun</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<script>
var current=null;
var t=null;
for(var i=0;i<fbtn.length;i++)
fbtn[i].index=i;
fbtn[i].style.display="block";
fbtn[i].onmouseover=function()
if(!current)
current=this;
domove(this.index);

else if(current!=this)
domove(current.index);
domove(this.index);
current=this;


fbtn[i].onmouseout=function()
if(event.toElement==this.parentElement&t==this)
domove(this.index);
current=null;



function domove(i)
var o=fbtn[i].firstChild;
var x=fbtn[i].firstChild.firstChild.offsetWidth;
if(o.style.posRight<(-x))
o.style.posRight=0;
var t=o.removeChild(o.firstChild);
o.appendChild(t);

else
o.style.posRight-=3;
setTimeout('domove('+i+')',15);


</script>
</body>
</html>本回答被提问者采纳
参考技术B <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css 菜单</title>
<style>
body
background-color:#FFFFFF;

#fbtn
display:none;
overflow:hidden;
border-style:solid;
border-width:1px;
border-color:#e1e1c9 #e1e1c9 #6e6e56 #6e6e56;
padding:1 1 1 1;
width:115px;
height:30px;

#fbtn_txt
position:relative;

#fbtn_txt div
height:30px;
padding-top:11px;
font-size:9px;
font-family:small fonts;
color:#800080;
text-align:center;
cursor:hand;

#fbtn_mask
background-color:#ffffff;
position:relative;
width:100%;
height:100%;

</style>

</head>

<body>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M1</div>
<div>my name is fireyy</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M1</div>
<div>my name is fireyy</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<script>
var current=null;
var t=null;
for(var i=0;i<fbtn.length;i++)
fbtn_txt[i].style.posTop=-30;
fbtn_mask[i].style.posTop=-30;
fbtn[i].index=i;
fbtn[i].style.display="block";
fbtn[i].onmouseover=function()
if(!current)
current=this;
domove(this.index);

else if(current!=this)
domove(current.index);
domove(this.index);
current=this;


fbtn[i].onmouseout=function()
if(event.toElement==this.parentElement&t==this)
domove(this.index);
current=null;



function domove(num)
var o=fbtn_txt[num];
var m=fbtn_mask[num];
if(o.style.posRight<-25)
o.style.display="none";
var t=o.children[1].innerHTML;
o.children[1].innerHTML=o.children[0].innerHTML;
o.children[0].innerHTML=t;
o.style.posRight=-5;
o.style.display="block";
if(m.style.posRight>30)
m.style.posRight=-30;
else
m.style.posRight=0;

else
m.style.posRight+=3;
o.style.posRight-=3;
setTimeout('domove('+num+')',15);


</script>
</body>
</html>
参考技术C <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css 菜单</title>
<style>
body
background-color:#FFFFFF;

#fbtn
display:none;
overflow:hidden;
border-style:solid;
border-width:1px;
border-color:#e1e1c9 #e1e1c9 #6e6e56 #6e6e56;
padding:1 1 1 1;
width:115px;
height:30px;

#fbtn_txt
position:relative;

#fbtn_txt div
height:30px;
padding-top:11px;
font-size:9px;
font-family:small fonts;
color:#800080;
text-align:center;
cursor:hand;

#fbtn_mask
background-color:#ffffff;
position:relative;
width:100%;
height:100%;

</style>

</head>

<body>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M1</div>
<div>my name is fireyy</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M1</div>
<div>my name is fireyy</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_mask></div>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<script>
var current=null;
var t=null;
for(var i=0;i<fbtn.length;i++)
fbtn_txt[i].style.posTop=-30;
fbtn_mask[i].style.posTop=-30;
fbtn[i].index=i;
fbtn[i].style.display="block";
fbtn[i].onmouseover=function()
if(!current)
current=this;
domove(this.index);

else if(current!=this)
domove(current.index);
domove(this.index);
current=this;


fbtn[i].onmouseout=function()
if(event.toElement==this.parentElement&t==this)
domove(this.index);
current=null;




//由左向右滚动
function domove(num)
var o=fbtn_txt[num];
var m=fbtn_mask[num];
//将计算上端的位置改为右端、下同
if(o.style.posRight < -60)
o.style.display="none";
var t=o.children[1].innerHTML;
o.children[1].innerHTML=o.children[0].innerHTML;
o.children[0].innerHTML=t;
//这里也有所改动,目的是让还原的时候回到原来位置
o.style.posRight = 0;
o.style.display="block";
if(m.style.posRight>30)
m.style.posRight=-30;
else
m.style.posRight=0;

else
m.style.posRight+=3;
o.style.posRight-=3;
setTimeout('domove('+num+')',15);


</script>
</body>
</html>
参考技术D 最一开始误会你的意思了,以为你的只是想改成水平的导航条的,代码1..

然后就帮你改...可是改完后.才知道你只是想改成水平方向上运行.
先把改成水平导航条的代码贴上来吧,试下看效果..

水平方向运行的,在代码2

代码1:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css 菜单</title>
<style>
body
background-color:#FFFFFF;


#nav width:880px;
height:30px;

#fbtn
overflow:hidden;
position:relative;
width:100px;
height:30px;
float:left;
border-style:solid;
border-width:1px;
border-color:#0e0eff;
padding:1px;



#fbtn_txt
position:absolute;
float:left;
width:250px;


#fbtn_txt div
width:100px;
height:30px;
float:left;
padding-top:11px;
font-size:9px;
font-family:small fonts;
color:#800080;
text-align:center;
cursor:pointer;


</style>

</head>

<body>
<div id="nav">
<div id=fbtn>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_txt>
<div>M1</div>
<div>my fhoujun </div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M1</div>
<div>my fhoujun</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>
</div>

<script>
var current=null;
var t=null;
for(var i=0;i<fbtn.length;i++)
fbtn[i].index=i;
fbtn[i].style.display="block";
fbtn[i].onmouseover=function()
if(!current)
current=this;
domove(this.index);

else if(current!=this)
domove(current.index);
domove(this.index);
current=this;


fbtn[i].onmouseout=function()
if(event.toElement==this.parentElement&t==this)
domove(this.index);
current=null;



function domove(i)
var o=fbtn[i].firstChild;
var x=fbtn[i].firstChild.firstChild.offsetWidth;
if(o.style.posLeft<(-x))
o.style.posLeft=0;
var t=o.removeChild(o.firstChild);
o.appendChild(t);

else
o.style.posLeft-=3;
setTimeout('domove('+i+')',15);


</script>
</body>
</html>

代码2:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css 菜单</title>
<style>
body
background-color:#FFFFFF;

#fbtn
/*display:none; */
overflow:hidden;
position:relative;
width:115px;
height:30px;

border-style:solid;
border-width:1px;
border-color:#0e0eff;
padding:1px;

#fbtn_txt
position:absolute;
float:right;
right:0px;
width:250px;
height:30px;


#fbtn_txt div
width:115px;
height:30px;
float:right;
padding-top:11px;
font-size:9px;
font-family:small fonts;
color:#800080;
text-align:center;
cursor:pointer;

</style>

</head>

<body>
<div id=fbtn>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>
<div id=fbtn>
<div id=fbtn_txt>
<div>M1</div>
<div>my fhoujun </div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G1</div>
<div>good morning</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>G2</div>
<div>good evening</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M1</div>
<div>my fhoujun</div>
</div>
</div>

<div id=fbtn>
<div id=fbtn_txt>
<div>M2</div>
<div>mm mm i love u</div>
</div>
</div>

<script>
var current=null;
var t=null;
for(var i=0;i<fbtn.length;i++)
fbtn[i].index=i;
fbtn[i].style.display="block";
fbtn[i].onmouseover=function()
if(!current)
current=this;
domove(this.index);

else if(current!=this)
domove(current.index);
domove(this.index);
current=this;


fbtn[i].onmouseout=function()
if(event.toElement==this.parentElement&t==this)
domove(this.index);
current=null;



function domove(i)
var o=fbtn[i].firstChild;
var x=fbtn[i].firstChild.firstChild.offsetWidth;
if(o.style.posRight<(-x))
o.style.posRight=0;
var t=o.removeChild(o.firstChild);
o.appendChild(t);

else
o.style.posRight-=3;
setTimeout('domove('+i+')',15);


</script>
</body>
</html>

要是回答的内容有问题,或认为不妥,请发送百度消息给我,消息内容加上本页网址哦。。

·
第5个回答  2008-05-21 刚刚去吃饭了。另外你说的不太明白。。是想怎么左右移动?

css小案例:导航栏特效

css小案例:导航栏特效,实现如下图所示效果;

 技术分享

 技术分享

 

首先可以将html代码写出:

1 <nav class="cl-effect-1">
2     <a href="#">Umbrella</a>
3     <a href="#">Ineffable</a>
4     <a href="#">Lilt</a>
5     <a href="#">Mellifluous</a>
6     <a href="#">Serendipity</a>
7 </nav>

css部分:

 1 nav{
 2         text-align: center;
 3 }
 4 nav a {
 5         position: relative;
 6         display: inline-block;
 7         margin: 15px 25px;
 8         outline: none;
 9         color: #fff;
10         text-decoration: none;
11         text-transform: uppercase;
12         letter-spacing: 1px;
13         font-weight: 400;
14         text-shadow: 0 0 1px rgba(255,255,255,0.3);
15         font-size: 1.35em;
16 }
17             
18 nav a:hover,
19 nav a:focus {
20         outline: none;
21 }
22 .cl-effect-1 a {
23         margin: 0 10px;
24             padding: 10px 20px;
25 }
26             
27 .cl-effect-1 a::before {
28         position: absolute;
29         top: 0;
30         left: 0;
31         width: 100%;
32         height: 2px;
33         background: #fff;
34         content: ‘‘;
35         -webkit-transition: top 0.3s;
36         -moz-transition: top 0.3s;
37         transition: top 0.3s;
38 }
39             
40 .cl-effect-1 a::after {
41         position: absolute;
42         top: 0;
43         left: 0;
44         width: 2px;
45         height: 2px;
46         background: #fff;
47         content: ‘‘;
48         -webkit-transition: height 0.3s;
49         -moz-transition: height 0.3s;
50         transition: height 0.3s;
51 }
52             
53 .cl-effect-1 a:hover::before {
54         top: 100%;
55         opacity: 1;
56 }
57             
58 .cl-effect-1 a:hover::after {
59         height: 100%;
60 }                       

 

代码很简单,下面就其中的要素重点来解析。

一、可以看出我们所写的html部分文字内容为小写,而显示效果为全大写,这里有一个css属性:text-transform   定义文本的大小写状态,此属性对中文无意义。

    取值:capitalize | uppercase | lowercase | none | inherit

none

默认。定义带有小写字母和大写字母的标准的文本。

capitalize

文本中的每个单词以大写字母开头。

uppercase

定义仅有大写字母。

lowercase

定义无大写字母,仅有小写字母。

inherit

规定应该从父元素继承 text-transform 属性的值。

所以这里通过css部分写入text-transform: uppercase;来实现。

二、伪元素

  1、 基本语法

  在了解进阶的应用之前,先来了解一下语法规则。平常仅仅需要将这两个伪元素用于添加一些自定义字符时,只需使用伪类使用的单冒号写法,以保证浏览器的兼容性:

Html代码 

1 p:before  {}  

  不过,在 CSS3 中为了区别伪元素和伪类为伪元素使用了双冒号,因此如果使用了 display 或者 width 等属性时使得显示脱离了原本元素后,建议按照标准双写。过于老的浏览器可能会存在支持问题,不过伪元素大多是配合 CSS3 使用,就无所谓向下兼容了:

Html代码 

1 img::after {}  

  这两个伪类下特有的属性 content ,用于在 CSS 渲染中向元素逻辑上的头部或尾部添加内容。注意这些添加不会改变文档内容,不会出现在 DOM 中,不可复制,仅仅是在 CSS 渲染层加入。比较有用的是以下几个值:

· [String] - 使用引号包括一段字符串,将会向元素内容中添加字符串。示例:

Html代码 

1 a:after { content: "↗"; }  

· attr() 调用当前元素的属性,可以方便的比如将图片的 Alt 提示文字或者链接的 Href 地址显示出来。示例:

Html代码 

1 a:after { content:"(" attr(href) ")"; } 

· url() / uri() 用于引用媒体文件。示例:

Html代码 

1 h1::before { content: url(logo.png); }  

· counter() –  调用计数器,可以不使用列表元素实现序号功能。具体请参见 counter-increment counter-reset 属性的用法。示例:

Html代码 

1 h2:before { counter-increment: chapter; content: "Chapter " counter(chapter) ". " }

  2、进阶技巧

  清除浮动是一个时常会遇到的问题,不少人的解决办法是添加一个空的 div 应用 clear:both; 属性。现在,无需增加没有意义的元素,仅需要以下样式即可在元素尾部自动清除浮动:

Html代码

1 .clear-fix { *overflow: hidden; *zoom: 1; }  
2 
3 .clear-fix:after { display: table; content: ""; width: 0; clear: both; }  

  许多人喜欢给 blockquote 引用段添加巨大的引号作为背景,这种时候我们就可以用 :before 来代替 background 了,即可以给背景留下空间,还可以直接使用文字而非图片:

Html代码 

 1  blockquote::before {  
 2 
 3  content: open-quote;  
 4 
 5  position: absolute;  
 6 
 7  z-index: -1;  
 8 
 9  color: #DDD;  
10 
11  font-size: 120px;  
12 
13  font-family: serif;  
14 
15  font-weight: bolder;  
16 
17  }  

 

  用 :before :after 伪类结合更多 CSS3 强大的特性,还可以完成非常多有意思的特效和 Hack

 

 

取值:capitalize | uppercase | lowercase | none | inherit

以上是关于一段HTML 导航栏特效`谁帮我改下的主要内容,如果未能解决你的问题,请参考以下文章

CSS实现动画特效导航栏

delphi左侧导航栏收缩

特效导航栏

导航栏下拉至一定高度后固定在顶部的特效

请教大家一个关于css水平导航栏的问题?

前端javascript实现导航栏筋斗云效果特效