Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[教程] 史上最简单的CSS 滑动门效果,无JS哦!

[复制链接]
benba 发表于 2009-2-12 20:08:06 | 显示全部楼层 |阅读模式
本帖最后由 benba 于 2009-10-27 10:50 编辑

一真想搞个简单的滑动门效果.去站长论坛也看了.一直没有搞到好的.终于被我发现了一个很不错的方法一样可以做滑动门.不需要写大量的JS .一看就明白.

没有写CSS 控制.只看效果.其它的自己去发挥吧!
  1. <div id="top_right">
  2.                         <ul>
  3.                                         <li><a href="#" onmouseover="test2.style.display='none';test3.style.display='none';test1.style.display='block'">菜单1</a></li>
  4.                                 <li><a href="#"  onmouseover="test1.style.display='none';test3.style.display='none';test2.style.display='block';">菜单1</a></li>
  5.                                 <li><a href="#"  onmouseover="test1.style.display='none';test2.style.display='none';test3.style.display='block';">菜单1</a></li>
  6.                         
  7.                         </ul>
  8.                         
  9.                         <div id="test1">
  10.                         我是菜单1里的内容
  11.                         </div>
  12.                         
  13.                         <div id="test2" style="display=none">
  14.                         我是菜单2里的内容
  15.                         </div>
  16.                         
  17.                         <div id="test3" style="display=none">
  18.                         我是菜单3里的内容
  19.                         </div>
  20.                
  21.                 </div>
复制代码
思路是这样的.当把光标放到菜单1上页就把test2和test3给隐藏起来.放到菜单2上就把test1和test3隐藏起来.放到菜单3上把test1和test2隐藏起来.就达到了滑动门的效果.
RobinQu 发表于 2009-2-12 20:42:40 | 显示全部楼层
onmouseover里面 不就是js么……
回复

使用道具 举报

 楼主| benba 发表于 2009-2-12 20:51:00 | 显示全部楼层
<script type="text/javascript">
//<!--
var _S_JV_="webbug_meta_ref_mod_noiframe_async_fc_:8.51a";var _S_DPID_="-9999-0-0-1";var _S_DOMAINROOT="sina.com.cn";var _S_PW_=window;var _S_PWD_=_S_PW_.document;var _S_PWDL_=_S_PWD_.location;var _S_BN_=navigator;var _S_NAN_=_S_BN_.appName.indexOf('Microsoft Internet Explorer')>-1?'MSIE':_S_BN_.appName;var _S_NAV_=_S_BN_.appVersion;var _S_PREF_=_S_PWD_.referrer.toLowerCase();var _S_PURL_=_S_PWDL_.href.toLowerCase();var _SP_MPID_="";
var _S_PID_="";var _S_UNA_="UNIPROU";var _S_UID_="nick";var _S_SID_="Apache";var _S_GID_="SINAGLOBAL";var _S_IFW=640;var _S_IFH=480;try{if (_S_ET>=0){_S_ET=_S_ET;}else{var _S_ET=0;}}catch(e){var _S_ET=0;} var _S_GIDT=0;var _S_EXT1="";var _S_EXT2="";
var _S_HTTP=_S_PURL_.indexOf('https')>-1?'https://':'http://';var _S_BCNDOMAIN="beacon.sina.com.cn";var _S_CP_RF=_S_HTTP+_S_BCNDOMAIN+"/a.gif";var _S_CP_RF_D=_S_HTTP+_S_BCNDOMAIN+"/d.gif";var _S_CP_FC=_S_HTTP+_S_BCNDOMAIN+"/fc.html";
function _S_gUCk(ckName){if (("undefined"==ckName)||(""==ckName))return "";var _S_PWDC_=_S_PWD_.cookie;var start=_S_PWDC_.indexOf(ckName+"=");if (-1==start){return "";} start=_S_PWDC_.indexOf("=", start)+1;var end=_S_PWDC_.indexOf(";", start);if (0 >=end){end=_S_PWDC_.length;}ckValue=_S_PWDC_.substring(start, end);return ckValue;}
function _S_sUCk(ckName,ckValue, ckdays){if(ckValue !=null){if(("undefined"==ckdays)||(null==ckdays)){_S_PWD_.cookie=ckName+"="+ ckValue+"; domain="+_S_DOMAINROOT+"; path=/";}else{var now=new Date();var time=now.getTime();time=time + 86400000*ckdays;now.setTime(time);time=now.getTime();_S_PWD_.cookie=ckName+"="+ckValue+"; domain="+_S_DOMAINROOT+"; expires="+now.toUTCString()+"; path=/";}}}
function _S_gMeta(MName){pMeta=_S_PWD_.getElementsByName(MName); return (pMeta.length>0)?pMeta[0].content:"";}
function _S_gCid(){try {metaTxt=_S_gMeta("publishid");if(""!=metaTxt){pbidList=metaTxt.split(",");if(pbidList.length>0) {if(pbidList.length>=3){_S_DPID_="-9999-0-"+pbidList[1]+"-"+pbidList[2];}return pbidList[0];}} else{return "0";}} catch(e){return "0";}}
function _S_gsSID(){var sid=_S_gUCk(_S_SID_);if(""==sid){_S_sSID();}return sid;} function _S_sSID(){_S_p2Bcn("",_S_CP_RF_D);} function _S_sSIDV(_s_sidv){if(""!=_s_sidv){_S_sUCk(_S_SID_,_s_sidv);}}
function _S_gGID(){return _S_gUCk(_S_GID_);} function _S_sGID(gid){if(""!=gid){_S_sUCk(_S_GID_,gid,3650);}}
function _S_IFC2GID(){var _S_ifc=_S_PWD_.getElementById("SUDA_FC");if(_S_ifc){_S_ifc.src=_S_CP_FC+"?a=g&n="+_S_GID_+"&r="+Math.random();}}
function _S_gsGID(){if(""!=_S_GID_){var gid=_S_gUCk(_S_GID_);if(""==gid){_S_IFC2GID();}return gid;}else{return "";}}
function _S_p2Bcn(q,u){var scd=_S_PWD_.getElementById("SUDA_CS_DIV");if(null!=scd){var now=new Date();scd.innerHTML="<img width=0 height=0 src='"+u+"?"+q+"gUid_"+now.getTime()+"' border='0' alt='' />";}}
function _S_gConType(){var ct="";try{_S_PWD_.body.addBehavior("#default#clientCaps");ct=_S_PWD_.body.connectionType;}catch(e){ct="unkown";} return ct;}
function _S_isHome(){var cul="";var isH="";try{cul=_S_PURL_;_S_PWD_.body.addBehavior("#default#homePage");isH=_S_PWD_.body.isHomePage(cul)?"Y":"N";}catch(e){isH="unkown";} return isH;}
function _S_isFreshMeta(){var ph=_S_PWD_.documentElement.innerHTML.substring(0,1024); var reg=new RegExp("<meta\\s*http-equiv\\s*=((\\s*refresh\\s*)|(\'refresh\')|(\"refresh\"))\s*content\s*=","ig"); return reg.test(ph); }
function _S_isIFrameSelf(){if(_S_PW_.top==_S_PW_){return false;}else{try{if(_S_PWD_.body.clientHeight==0){return false;}if((_S_PWD_.body.clientHeight>=_S_IFH)&&(_S_PWD_.body.clientWidth>=_S_IFW)){return false;}else{return true;}}catch(e){return true;}}}
function _S_gJVer(){var p,appsign,appver,jsver=1.0,isN6=0;if ('MSIE'==_S_NAN_){appsign='MSIE';p=_S_NAV_.indexOf(appsign);if (p>=0){appver=parseInt(_S_NAV_.substring(p+5));if(3<=appver){jsver=1.1;if(4<=appver){jsver=1.3;}}}}else if(("Netscape"==_S_NAN_)||("Opera"==_S_NAN_)||("Mozilla"==_S_NAN_)){jsver=1.3;appsign='Netscape6';p=_S_NAV_.indexOf(appsign);if(p>=0){jsver=1.5;}}return jsver;}
function _S_gPageInfo(pid,ref){return _S_gsSID()+"|pid:"+pid+"||st:0|et:"+_S_ET+"|"+escape(ref)+"|hp:"+_S_isHome()+"|lb:1|PGLS:"+_S_gMeta("stencil")+"|keys:"+_S_gMeta("keywords")+"|"+_S_EXT1+"|"+_S_EXT2+"|*|";}
function _S_gEnvInfo(){var now=new Date();return "sz:"+screen.width+"x"+screen.height+"||dp:"+screen.colorDepth+"||ac:"+_S_BN_.appCodeName+"||an:"+_S_NAN_+"||av:0||cpu:"+_S_BN_.cpuClass+"||pf:"+_S_BN_.platform+"||jv:"+_S_gJVer()+"||ct:"+_S_gConType()+"||lg:"+_S_BN_.systemLanguage+"||tz:"+now.getTimezoneOffset()/60;}
function _S_pBeacon(pid,ext1,ext2){try{var gid=_S_gsGID();if(""==gid){if(_S_GIDT<1){_S_PW_.setTimeout("_S_pBeacon('"+pid+"','"+ext1+"','"+ext2+"',0)",3000);_S_GIDT++;return;}else{gid=_S_gsSID();_S_sGID(gid);}}if(("undefined"==pid)||(""==pid)){pid=_S_gCid()+_S_DPID_;}_SP_MPID_=pid;_S_EXT1=("undefined"==ext1)?_S_EXT1:ext1;_S_EXT2=("undefined"==ext2)?_S_EXT2:ext2;var ckValue=_S_gEnvInfo();var unStr=_S_gUCk(_S_UNA_);var uidStr=_S_gUCk(_S_UID_);var envStr="UNIPROINFO="+ckValue+"||un:"+unStr+"||uid:"+uidStr+";";var refUrl=_S_PREF_;var cPageStr=_S_gPageInfo(_SP_MPID_,refUrl);var lbStr=gid+"|*|"+cPageStr;lbStr=envStr+"UNIPROPATH="+lbStr+";";_S_p2Bcn(lbStr,_S_CP_RF);}catch(e){}}
function _S_pSt(pid,ext1,ext2){try{if((_S_isFreshMeta())||(_S_isIFrameSelf())){return;}if(_S_ET>0){return;}++_S_ET;_S_PW_.setTimeout("_S_gsSID()",500);_S_PW_.setTimeout("_S_pBeacon('"+pid+"','"+ext1+"','"+ext2+"',0)",3000);}catch(e){}}
function _S_pStM(pid,ext1,ext2){++_S_ET;_S_pBeacon(pid,ext1,ext2);}
//-->
</script>
<script type="text/javascript">
//<!--
_S_pSt("");
//-->
</script>
<noScript>
<div style='position:absolute;top:0;left:0;width:0;height:0;visibility:hidden'><img width=0 height=0 src='http://beacon.sina.com.cn/a.gif?noScript' border='0' alt='' /></div>
</noScript>


总比这样的强!!!  牛角尖钻着好玩吗?
回复

使用道具 举报

ug8 发表于 2009-2-12 21:19:01 | 显示全部楼层

比较帮的 滑动门封装类

效果预览
滑动门滑动门滑动门滑动门滑动门第一层内容
第二层内容
第三层内容
第四层内容
第五层内容
滑动门滑动门滑动门滑动门滑动门第一层内容
第二层内容
第三层内容
第四层内容
第五层内容
滑动门滑动门滑动门滑动门滑动门第一层内容
第二层内容
第三层内容
第四层内容
第五层内容



<!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:0px;padding:0px;font-size:12px;background:#eee;line-height:20px;}
.bodyer{width:760px;margin:20px auto auto;border:1px dotted #ccc;background:#fff;}
.t_rt{text-align:right;}
h1,h2,h3,h4,h5,h6{font-weight:bold;margin:0px;padding:0px;font-size:12px;}
ul,li{margin:0px;padding:0px;}
li{list-style-type:none;}
h1{margin:10px;padding-right:10px;padding-bottom:5px;border-bottom:1px dotted #ccc;}
.preview{margin:10px;padding:10px;overflow:hidden;background:#eee;}
.cont{padding:10px;}
.cls{clear:both;}
.hidden{display:none;}
#sourse{border:1px dotted #ccc;width:600px;height:300px;margin:0px auto;}
.textDiv{margin:10px 40px 10px;text-align:center;}
h2{margin:0px 10px;background:#ccc;padding:5px;}
.example{margin:10px;background:#FFF;border:1px dotted #ccc;padding:10px;}
.scrolldoorFrame{width:400px;margin:0px auto;overflow:hidden;}
.scrollUl{width:400px;border-bottom:1px solid #CCC;overflow:hidden;height:35px;}
.scrollUl li{float:left;}
.bor03{border:1px solid #ccc;border-top-width:0px;}
.sd01{cursor:pointer;border:1px solid #CCC;background:#FFF;margin:5px;padding:2px;font-weight:bold;}
.sd02{cursor:pointer;border:0px solid #CCC;margin:5px;padding:2px;}
-->
</style>
<script type="text/javascript">
/*
十三妖
qq:181907667
msn:wl181907667@hotmail.com
邮箱:thirdteendevil@163.com
*/
function scrollDoor(){
}
scrollDoor.prototype = {
sd : function(menus,divs,openClass,closeClass){
var _this = this;
if(menus.length != divs.length)
{
alert("菜单层数量和内容层数量不一样!");
return false;
}
for(var i = 0 ; i < menus.length ; i++)
{
_this.$(menus).value = i;
_this.$(menus).onmouseover = function(){
for(var j = 0 ; j < menus.length ; j++)
{
_this.$(menus[j]).className = closeClass;
_this.$(divs[j]).style.display = "none";
}
_this.$(menus[this.value]).className = openClass;
_this.$(divs[this.value]).style.display = "block";
}
}
},
$ : function(oid){
if(typeof(oid) == "string")
return document.getElementById(oid);
return oid;
}
}
window.onload = function(){
var SDmodel = new scrollDoor();
SDmodel.sd(["m01","m02","m03","m04","m05"],["c01","c02","c03","c04","c05"],"sd01","sd02");
SDmodel.sd(["mm01","mm02","mm03","mm04","mm05"],["cc01","cc02","cc03","cc04","cc05"],"sd01","sd02");
SDmodel.sd(["mmm01","mmm02","mmm03","mmm04","mmm05"],["ccc01","ccc02","ccc03","ccc04","ccc05"],"sd01","sd02");
}
</script>
</head>
<body>
<div class="bodyer">
<h1 class="t_rt">
滑动门封装类
</h1>
<h2>
效果预览
</h2>
<div class="preview">
<div class="scrolldoorFrame">
<ul class="scrollUl">
<li class="sd01" id="m01">滑动门</li>
<li class="sd02" id="m02">滑动门</li>
<li class="sd02" id="m03">滑动门</li>
<li class="sd02" id="m04">滑动门</li>
<li class="sd02" id="m05">滑动门</li>
</ul>
<div class="bor03 cont">
<div id="c01">
第一层内容
</div>
<div id="c02" class="hidden">
第二层内容
</div>
<div id="c03" class="hidden">
第三层内容
</div>
<div id="c04" class="hidden">
第四层内容
</div>
<div id="c05" class="hidden">
第五层内容
</div>
</div>
</div>
</div>
<div class="preview">
<div class="scrolldoorFrame">
<ul class="scrollUl">
<li class="sd01" id="mm01">滑动门</li>
<li class="sd02" id="mm02">滑动门</li>
<li class="sd02" id="mm03">滑动门</li>
<li class="sd02" id="mm04">滑动门</li>
<li class="sd02" id="mm05">滑动门</li>
</ul>
<div class="bor03 cont">
<div id="cc01">
第一层内容
</div>
<div id="cc02" class="hidden">
第二层内容
</div>
<div id="cc03" class="hidden">
第三层内容
</div>
<div id="cc04" class="hidden">
第四层内容
</div>
<div id="cc05" class="hidden">
第五层内容
</div>
</div>
</div>
</div>
<div class="preview">
<div class="scrolldoorFrame">
<ul class="scrollUl">
<li class="sd01" id="mmm01">滑动门</li>
<li class="sd02" id="mmm02">滑动门</li>
<li class="sd02" id="mmm03">滑动门</li>
<li class="sd02" id="mmm04">滑动门</li>
<li class="sd02" id="mmm05">滑动门</li>
</ul>
<div class="bor03 cont">
<div id="ccc01">
第一层内容
</div>
<div id="ccc02" class="hidden">
第二层内容
</div>
<div id="ccc03" class="hidden">
第三层内容
</div>
<div id="ccc04" class="hidden">
第四层内容
</div>
<div id="ccc05" class="hidden">
第五层内容
</div>
</div>
</div>
</div>
</div>
</body>
</html>




使用方法

1.把以上代码引进你的页面

<script type="text/javascript" src="scrollDoor.js"></script>

2.在页面的"<body>"标签前加入以下代码:

<script type="text/javascript">
var SDmodel = new scrollDoor();
SDmodel.sd([菜单id数组],[显示层id数组],"菜单触发类","菜单关闭类");
SDmodel.sd([菜单id数组2],[显示层id数组2],"菜单触发类","菜单关闭类");
SDmodel.sd([菜单id数组3],[显示层id数组3],"菜单触发类","菜单关闭类");
</script>

其中sd方法中的参数为:

参数一 [菜单id数组]:滑动门菜单的id参数二 [内容id数组]:显示和隐藏滑动内容层的id参数三 "菜单触发类":鼠标经过滑动门菜单的类参数四 "菜单关闭类":鼠标滑出滑动门菜单的类3.页面中有几个滑动门就调用几次sd函数,只需改变sd调用的参数,如以上代码上所展示.




function scrollDoor(){
}
scrollDoor.prototype = {
sd : function(menus,divs,openClass,closeClass){
var _this = this;
if(menus.length != divs.length)
{
  alert("菜单层数量和内容层数量不一样!");
  return false;
}   
for(var i = 0 ; i < menus.length ; i++)
{
  _this.$(menus).value = i;   
  _this.$(menus).onmouseover = function(){
     
   for(var j = 0 ; j < menus.length ; j++)
   {      
    _this.$(menus[j]).className = closeClass;
    _this.$(divs[j]).style.display = "none";
   }
   _this.$(menus[this.value]).className = openClass;
   _this.$(divs[this.value]).style.display = "block";   
  }
}
},
$ : function(oid){
if(typeof(oid) == "string")
return document.getElementById(oid);
return oid;
}
}

TAG: 滑动 特效
上一篇:上一篇没有文章了 下一篇:CSS+JS连续向上滚动的文字
回复

使用道具 举报

ug8 发表于 2009-2-12 21:20:44 | 显示全部楼层
回复

使用道具 举报

SSAY 发表于 2009-2-12 21:21:21 | 显示全部楼层
呵呵,...................................有用,只是简单
回复

使用道具 举报

abcnic1 发表于 2009-2-13 09:13:14 | 显示全部楼层
不错 呵呵
回复

使用道具 举报

心灵刺客 发表于 2009-2-13 12:48:26 | 显示全部楼层
有演示吗
回复

使用道具 举报

egledzp 发表于 2009-2-13 17:41:13 | 显示全部楼层
经典 酷!
回复

使用道具 举报

网海漂舟 发表于 2010-1-14 14:20:40 | 显示全部楼层
收藏下哦!!!!!!!!111
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-18 21:37 , Processed in 0.101040 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表