Other_1.利用JS伸缩变动导航栏宽度的效果。
2017-02-08 15:03
239 查看
该教程是我从慕课网上学习到的,觉得对初学JS有比较好的帮助。这是利用JS的循环语句和鼠标经过、鼠标离开时间写的。但是有一个BUG就是,效果不够流畅,当用户快速在导航栏之间切换的时候,很容易会出现文字变成竖型排列,而不是横向排列。
<html>
<head>
<meta charset="utf-8">
<title>JS伸缩变动导航栏效果</title>
<style>
*{margin: 0;padding: 0;text-decoration: none;list-style: none;}
nav{width: 100%;height: 40px;border-bottom: 10px solid #FC751B;}
nav ul{margin:20px 0 0 20px;width: 800px;}
nav ul li{float: left;height: 40px;margin-right: 5px;background: #EAEAEA;line-height: 30px;}
nav ul li a{display: block;width: 120px;height: 30px;color:#000;text-align: center;padding:5px 0}
nav ul li a:hover{background: #FC751B;color:#fff;}
</style>
<script>
window.onload=function () {
var aA=document.getElementsByTagName('a');
for(var i=0;i<aA.length;i++)
{
aA[i].onmouseover=function(){
clearInterval(this.time);
var This = this;
This.time=setInterval(function(){
This.style.width=This.offsetWidth+8+"px";
if (This.offsetWidth>=160) {
clearInterval(This.time);
}
},30)
}
aA[i].onmouseout=function(){
clearInterval(this.time);
var This = this;
This.time=setInterval(function(){
This.style.width=This.offsetWidth-8+"px";
if (This.offsetWidth<=120) {
This.offsetWidth="120px";
clearInterval(This.time);
}
},30)
}
}
}
</script>
</head>
<body>
<div class="box">
<nav>
<ul>
<li><a href="#">首 页</a></li>
<li><a href="#">新闻快讯</a></li>
<li><a href="#">产品展示</a></li>
<li><a href="#">售后服务</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</nav>
</div>
</body>
</html> <
4000
/p>
原状态:
![](https://img-blog.csdn.net/20170208150649474?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzM1ODIyNDA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
变动效果:鼠标所碰到的导航栏会被撑开
<html>
<head>
<meta charset="utf-8">
<title>JS伸缩变动导航栏效果</title>
<style>
*{margin: 0;padding: 0;text-decoration: none;list-style: none;}
nav{width: 100%;height: 40px;border-bottom: 10px solid #FC751B;}
nav ul{margin:20px 0 0 20px;width: 800px;}
nav ul li{float: left;height: 40px;margin-right: 5px;background: #EAEAEA;line-height: 30px;}
nav ul li a{display: block;width: 120px;height: 30px;color:#000;text-align: center;padding:5px 0}
nav ul li a:hover{background: #FC751B;color:#fff;}
</style>
<script>
window.onload=function () {
var aA=document.getElementsByTagName('a');
for(var i=0;i<aA.length;i++)
{
aA[i].onmouseover=function(){
clearInterval(this.time);
var This = this;
This.time=setInterval(function(){
This.style.width=This.offsetWidth+8+"px";
if (This.offsetWidth>=160) {
clearInterval(This.time);
}
},30)
}
aA[i].onmouseout=function(){
clearInterval(this.time);
var This = this;
This.time=setInterval(function(){
This.style.width=This.offsetWidth-8+"px";
if (This.offsetWidth<=120) {
This.offsetWidth="120px";
clearInterval(This.time);
}
},30)
}
}
}
</script>
</head>
<body>
<div class="box">
<nav>
<ul>
<li><a href="#">首 页</a></li>
<li><a href="#">新闻快讯</a></li>
<li><a href="#">产品展示</a></li>
<li><a href="#">售后服务</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</nav>
</div>
</body>
</html> <
4000
/p>
原状态:
变动效果:鼠标所碰到的导航栏会被撑开
相关文章推荐
- Other_2.利用JQ伸缩变动导航栏宽度的效果。
- Other_6.利用JQ作出,点击导航栏,所需内容渐入渐变的效果
- 利用JS实现可以自由拖拽调整宽度的表格
- js利用div背景,做一个竖线的效果。
- 利用JQuery和JS实现奇偶行背景颜色自定义效果
- 可拖动拉伸的左右分栏效果,本例子是用Table以及JS来实现的,左右分栏可改变,拖动中间的边框就可实现宽度的调整,点击时可设置为隐藏左侧列表。
- 利用js实现选项卡的特别效果
- Css利用js的expression实现的效果
- JS 实现导航栏悬停效果
- jQuery 导航菜单点击伸缩展开效果的JS特效
- js实现选项卡效果(利用建立索引方式实现)
- 如何在一张图片上添加多个链接 ,如何利用js做出靠右侧浮动菜单栏的效果
- js左右伸缩效果(兼容ff/ie)
- 二级分类JS实现,伸缩重叠效果
- 利用JS实现图片放大效果
- 利用js获取浏览器高度和宽度值(多浏览器)代码大全
- 利用JS实现简单的弹出窗品效果
- 利用js获取图片尺寸与图片大小(高度与宽度)
- 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
- 利用jQuery和JS实现奇偶行背景颜色自定义效果