javascript制作的滑动图片菜单


Posted in Javascript onMay 15, 2015

方法很简单,特效非常棒,这里就先不多废话了,直接上代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js滑动菜单</title>
<style>
* {margin:0; padding:0}
.sm {list-style:none; width:459px; height:100px; display:block; overflow:hidden}
.sm li {float:left; display:inline; overflow:hidden}
</style>
<script type="text/javascript">
var slideMenu=function(){
var sp,st,t,m,sa,l,w,sw,ot;
return{
build:function(sm,sw,mt,s,sl,h){
sp=s; st=sw; t=mt;
m=document.getElementById(sm);
sa=m.getElementsByTagName('li');
l=sa.length; w=m.offsetWidth; sw=w/l;
ot=Math.floor((w-st)/(l-1)); var i=0;
for(i;i<l;i++){s=sa[i]; s.style.width=sw+'px'; this.timer(s)}
if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}
},
timer:function(s){s.onmouseover=function(){clearInterval(m.timer);m.timer=setInterval(function()


{slideMenu.slide(s)},t)}},
slide:function(s){
var cw=parseInt(s.style.width,'10');
if(cw<st){
var owt=0; var i=0;
for(i;i<l;i++){
if(sa[i]!=s){
var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width,'10');
if(ow>ot){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)


+'px'}
owt=owt+(ow-oi)}}
s.style.width=(w-owt)+'px';
}else{clearInterval(m.timer)}
}
};
}();
</script>
</head>
<body onload="slideMenu.build('sm',200,10,10,1)">
<ul id="sm" class="sm">
<li><img src="1.gif" alt="" /></li>
<li><img src="2.gif" alt="" /></li>
<li><img src="3.gif" alt="" /></li>
<li><img src="4.gif" alt="" /></li>
</ul>
</body>
</html>

再来一个网友实现的滑动菜单特效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js十分好看的滑动菜单效果。</title>
<style type="text/css">
body{
 margin:10px;
 padding:10px;
}
a:link { text-decoration: none;color: blue}
a:active { text-decoration:blink}
a:hover { text-decoration:underline;color: red}
a:visited { text-decoration: none;color: green}
body,td,div,span,li{
 font-size:12px;
}
.title01,.title02{
 color:#00b;
 font-weight:bold;
}
#DoorP{
 width:200px;
 height:300px;
 padding:0px;
 background:#FFFCF2;
 overflow:hidden;
}
.title01{
 width:100%;
 height:25px;
 background:#FFFCF2;
 cursor:pointer;
}
.title02{
 width:100%;
 height:25px;
 background:#FFFCF2;
 cursor:pointer;
}
.zzjs__net{
 background:#FFFCF2;
 border-bottom:2px solid #fff;
 overflow:hidden;
 color:#666;
 padding-left:4px;
 padding-right:4px;
 line-height:18px;
}
.www_zzjs_net {
 width:202px;
 }
.www_zzjs_net .b1, .www_zzjs_net .b2, .www_zzjs_net .b3, .www_zzjs_net .b4 {
 font-size:1px;
 display:block;
 background:#FFFCF2;
overflow: hidden;
}
.www_zzjs_net .b1, .www_zzjs_net .b2, .www_zzjs_net .b3 {
 height:1px;
 }
.www_zzjs_net .b2, .www_zzjs_net .b3, .www_zzjs_net .b4 {
 background:#FFFCF2;
 border-left:1px solid #C7BC98;
 border-right:1px solid #C7BC98;
 }
.www_zzjs_net .b1 {
 margin:0 4px;
 background:#C7BC98;
 }
.www_zzjs_net .b2 {
 margin:0 2px;
 border-width:0 2px;
 }
.www_zzjs_net .b3 {
 margin:0 1px;
 }
.www_zzjs_net .b4 {
 height:2px;
 margin:0;
 }
.www_zzjs_net .c1 {
 margin:0 5px;
 background:#C7BC98;
 }
.www_zzjs_net .c2 {
 margin:0 3px;
 border-width:0 2px;
 }
.www_zzjs_net .c3 {
 margin:0 2px;
 }
.www_zzjs_net .c4 {
 height:2px;
 margin: 0 1px;
 }
.www_zzjs_net .zzjs_net {
 display:block;
 background:transparent;
 border-left:1px solid #C7BC98;
 border-right:1px solid #C7BC98;
 font-size:0.9em;
 text-align:justify;
 }
</style>
</head>
<body>
<div class="www_zzjs_net">
 <b class="b1 c1"></b>
 <b class="b2 c2"></b>
 <b class="b3 c3"></b>
 <b class="b4 c4"></b>
 <div class="zzjs_net">
<div id="DoorP">
 <table>
 <tr>
  <td align="center">
   一号菜单
  </td>
 </tr>
 </table>
 <div class="zzjs__net" align="center">
 <a href="#">一号分类</a><br/>二号分类<br/>三号分类<br/>
 </div>
  <b class="b1"></b>
  <b class="b2"></b>
  <b class="b3"></b>
  <b class="b4"></b>
 <table>
 <tr>
  <td align="center">
  二号菜单
  </td>
 </tr>
 </table>
<div class="zzjs__net" align="center">
 <a href="#">四号分类</a><br/>五号分类<br/>六号分类<br/>
</div>
  <b class="b1"></b>
  <b class="b2"></b>
  <b class="b3"></b>
  <b class="b4"></b>
 <table>
 <tr>
  <td align="center">
  三号菜单
  </td>
 </tr>
 </table>
<div class="zzjs__net" align="center">
 <a href="#">七号分类</a><br/>八号分类<br/>九号分类<br/>
 </div>
</div></div>
 <b class="b4 c4"></b>
 <b class="b3 c3"></b>
 <b class="b2 c2"></b>
 <b class="b1 c1"></b>
<script type="text/javascript">
 var open = 2;
 var openState = new Array();
 var closeState = new Array();
 var dH = 220;
 function $(id){
 if(document.getElementById(id))
 {
  return document.getElementById(id);
 }
 else
 {
  alert("没有找到!");
 }
 }
 function $tag(id,tagName){
 return $(id).getElementsByTagName(tagName)
 }
 function closeMe(Cid,Oid){
 var h = parseInt(Ds[Cid].style.height);
 //alert(h);
 if(h > 2)
 {
  h = h - Math.ceil(h/3);
  Ds[Cid].style.height = h+"px";
 }
 else
 {
  openMe(Oid);
  clearTimeout(closeState[Cid]);
  return false;
 }
 closeState[Cid] = setTimeout("closeMe("+Cid+","+Oid+")");
 }
 function openMe(Oid){
 var h = parseInt(Ds[Oid].style.height);
 //alert(h);
 if(h < dH)
 {
  h = h + Math.ceil((dH-h)/3);
  Ds[Oid].style.height = h+"px";
 }
 else
 {
  clearTimeout(openState[Oid]);
  return false;
 }
 openState[Oid] = setTimeout("openMe("+Oid+")");
 }
 var Ds = $tag("DoorP","div");
 var Ts = $tag("DoorP","table");
 if(Ds.length != Ts.length)
 {
 alert("标题和内容数目不相同!");
 }
 for(var i = 0 ; i < Ds.length ; i++)
 {
 if(i==open)
 {
  Ds[i].style.height = dH+"px";
  Ts[i].className="title01";
 }
 else
 {
  Ds[i].style.height = "0px";
  Ts[i].className="title02";
 }
 Ts[i].value = i;
 Ts[i].onmouseover = function(){
  if(open==this.value)
  {
  return false;
  }
  Ts[open].className="title02";
  Ts[this.value].className="title01";
  for(var i = 0 ; i < openState.length ; i++)
  {
  clearTimeout(openState[i]);
  clearTimeout(closeState[i]);
  }
  closeMe(open,this.value);
  //openMe(this.value);
  open = this.value;
 }
 }
 function showDiv(id){
 Ds[id].style.height=dH+"px";
 Ds[open].style.height="0px";
 open = id;
 }
</script>
</body>
</html>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
用于table内容排序
Jul 21 Javascript
可插入图片的TEXT文本框
Dec 27 Javascript
详解基于Bootstrap扁平化的后台框架Ace
Nov 27 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
浅谈javascript中的constructor
Jun 08 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
自定义vue组件发布到npm的方法
May 09 Javascript
使用vue-cli导入Element UI组件的方法
May 16 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
Laravel admin实现消息提醒、播放音频功能
Jul 10 Javascript
vue+axios实现post文件下载
Sep 25 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 Javascript
Javascript通过overflow控制列表闭合与展开的方法
May 15 #Javascript
javascript实现日期按月份加减
May 15 #Javascript
Javascript递归打印Document层次关系实例分析
May 15 #Javascript
Javascript节点关系实例分析
May 15 #Javascript
自己编写的支持Ajax验证的JS表单验证插件
May 15 #Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 #Javascript
Javascript进制转换实例分析
May 14 #Javascript
You might like
用header 发送cookie的php代码
2007/03/16 PHP
用PHP实现的随机广告显示代码
2007/06/14 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
2014全国两会大学生学习心得体会
2014/03/10 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
亚运会口号
2014/06/20 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
党委工作总结2015
2015/04/27 职场文书
大学生见习总结报告
2015/06/24 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书