网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 背景图像 >> 正文
最新文章
· 带文字说明的js幻灯片代码
· 浏览器全屏浏览图片集
· 创意中国flash+xml焦点图代码
· 仿QQ商城焦点图jquery幻灯特效
· 带缓冲效果的图片幻灯片
· css和jquery配合完成-ipad向左向右拖
· 图片自动按比例缩小代码(防止页面被
· 仿QQ新闻图片浏览效果
· 一个横向滑动的图片切换容器代码
· 鼠标移入/移出改变图片透明度
热门文章
 图片上的左右箭头切换上一张下一张
 带缩略图和左右箭头自动切换的图片
 产品展示专用的jQuery图片幻灯+缩略
 Flash+XML前后按钮的超漂亮图片切换
 图片左右滚动,带有左右方向控制
 Jquery幻灯片/焦点图插件KinSlides
 JS 图片左右滚动,图片控制左右滚动
 可控制左右滚动的无缝图片滚动特效
 可控制图片放大缩小还原移动效果的
 非常漂亮的JS带缩略图的幻灯图片切
相关文章
自动切换的JS菜单
隔指定时间选项卡自动切换
自动切换的选项卡
仿腾讯迷你首页选项卡清爽无修饰版
带左右切换和数字焦点切换的图片幻灯切换
带说明的淡入式图片幻灯切换效果
有预览图的渐显渐隐图片幻灯切换效果
产品展示专用的jQuery图片幻灯+缩略图、左
网站常用的Flash图片焦点幻灯代码
同一页面多种Tab及滑动门应用的综合实例
基于jQuery淡入淡出可自动切换的幻灯插件
不带三角图片却有三角效果的选项卡
可打开关闭固定底(顶)部的工具条菜单
很酷的仿Flash图片幻灯切换效果
简洁漂亮且附带提示的二级导航菜单
腾讯客服图片幻灯切换效果
腾讯软件首页的图片幻灯切换效果
横向和竖向联动的选项卡菜单
始终在页面底部的菜单导航
js和css滤镜效果导航菜单
遮罩过渡效果的图片幻灯和选项卡菜单
来源:中国站长天空 更新时间:2009/12/24 23:46:48 阅读次数: 我要投稿
△运行 ☉预览 #复制 +收藏
特效代码:
<!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>
<title>遮罩过渡效果的图片幻灯和选项卡菜单</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<!--把下面代码加到<head>与</head>之间-->
<style type="text/css">
div, ul, ol, li, dl, dt, dd {
margin:0;
padding:0;
}
.imgFlash,.tab{margin:auto}
/*------焦点图片的css-------*/
.imgFlash {
height:230px;width:270px;
position:relative;
}
.imgFlash dl {
height:100%;
overflow:hidden;
position:absolute;
width:100%;
}
.imgFlash img {
height:100%;
position:absolute;
width:100%;
background-color: #FFFFFF;
background-repeat: no-repeat;
background-position: center center;
}
.imgFlash dt {
bottom:0;
font-size:12px;
height:24px;line-height:24px;
left:0;
position:absolute;
width:100%;
z-index:1;
}
.imgFlash dt span {
background-color:#000000;
height:100%;
opacity:0.4;filter:Alpha(Opacity=40);
position:absolute;
width:100%;
}
.imgFlash dt a {
color:#FFFFFF;
position:absolute;
text-decoration:none;
text-indent:5px;
z-index:1;
}
.imgFlash dt a:hover {
text-decoration:underline;
}
.imgFlash div {
bottom:8px;
cursor:pointer;
display:block;
position:absolute;
right:8px;
z-index:99999;
}
.imgFlash div em {
background-color:#000000;
border:1px solid #FFFFFF;
display:block;
float:right;
height:4px;
margin-right:3px;
filter:Alpha(Opacity=50);opacity:0.5;
overflow:hidden;
width:4px;
}
.imgFlash div em.d {/*激活的小方块的样式*/
background-color:#CC0000;
filter:Alpha(Opacity=80);
opacity:0.8;
}
/*-------------------------Tab的css----------------------------*/
.tab,.tab ul{list-style-type: none;}
.tab{
width:270px;
background-color:#FFFFFF;
height: 160px;
font-size: 12px;
position: relative;
border-top-width: 30px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #0066FF;
border-right-color: #0066FF;
border-bottom-color: #0066FF;
border-left-color: #0066FF;
}
.tab ul {
position: absolute;
top: -30px;
}
.tab li{
float:left;
background-color:#A9CEEB;
background-repeat:no-repeat;
background-position:left top;
margin-top:5px;
margin-left: 5px;
}
.tab li.d {
background-color: #FFFFFF;
}
.tab li a{text-decoration:none;display:block;padding-right:8px;padding-left:8px;line-height:25px;color:#2B6FA2;}
.tab li.d a{color:#0C3E74;}
.tab li ul{
border-bottom-style:none;
position:absolute;
left:0px;
top:30px;
background-color: #FFFFFF;
padding-top: 10px;
width: 270px;
}
.tab li li{
float:none;
background-image:none;
margin:0px;
background-color: #FFFFFF;
}
.tab li li a{
background-image:none;
line-height:22px;
color: #000000;
float: none;
height: 22px;
}
.tab li ul li a:hover{text-decoration:underline;}
.tab li.d li a{color:#000000;}
</style>
<script language="javascript">
var $ = function (d){return document.getElementById( d );};
var isIE = (document.all) ? true : false;
var Bind = function (obj,fun,arr){return function() {arr || (arr = arguments);return fun.apply(obj,arr);}};//绑定
var Tween =  function(t,b,c,d){return c*t/d + b;};//缓冲函数
function addEventHandler(oTarget, sEventType, fnHandler) {if (oTarget.addEventListener) {oTarget.addEventListener(sEventType, fnHandler, false);} else if (oTarget.attachEvent) {oTarget.attachEvent("on" + sEventType, fnHandler);} else {oTarget["on" + sEventType] = fnHandler;
 }
};//事件监听
function removeEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {
        oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {
        oTarget.detachEvent("on" + sEventType, fnHandler);
    } else { 
        oTarget["on" + sEventType] = null;
    }
};//移除监听

var Timer = {};//Timer
Timer.add = function (fn){return new this.fn(fn)};
Timer.fn = function (fn){
  var timer;
  this.play = function (speed,only){
    speed || ( speed = 10 );
 if(only)timer = window.setTimeout(fn,speed);
    else timer = window.setInterval(fn,speed);
  };
  this.stop = function (){clearTimeout(timer);clearInterval(timer)};
};
//Mask 遮罩动画
var Mask = function (){
  this.fl = Timer.add(Bind(this,this.fn));
  this.from_num = 0;
  this.speed = 50;//动画速度,越大越慢
};
Mask.prototype.ready = function (ele,pos){
     if(this.ele)this.set(this.maxWidth,this.maxHeight);
     this.ele = ele;
     this.maxWidth = this.ele.offsetWidth;
  this.maxHeight = this.ele.offsetHeight;
  this.ele.style.position = "absolute";
  this.from_num = 0;
  if(!pos){
   var  x = ["left","center","right",""][parseInt(4*Math.random())],
              y = ["top","center","bottom",""][parseInt(4*Math.random())];
  if(x == "" && y == "")x = "left";//避免同时为""   
      this.position = [x,y];    
  }else{
     this.position = pos;
  }
  this.set(0,0);
  this.fl.stop();
};
Mask.prototype.start = function (){this.fl.play();};
Mask.prototype.stop = function (){this.fl.stop();};
Mask.prototype.set = function (width,height){//设置遮罩的矩形,用于定位遮罩的变换方向
    var t,r,b,l;
 switch(this.position[0]){
  case "left"   : 
       l = 0; 
    r = width; 
    break;
  case "center" : 
       l = (this.maxWidth - width)/2; 
    r = (this.maxWidth + width)/2;
    break;
  case "right"  : 
       l = this.maxWidth - width;
    r = this.maxWidth; 
    break;
  default:
       l = 0;
    r = this.maxWidth;    
 }
    switch(this.position[1]){
  case "top"    : 
       t = 0; 
    b = height; 
    break;
  case "center" : 
       t = (this.maxHeight - height)/2; 
    b = (this.maxHeight + height)/2;
    break;
  case "bottom"  : 
       t = this.maxHeight - height;
    b = this.maxHeight; 
    break;
  default :
       t = 0;
    b = this.maxHeight;
    break;   
 }
 this.ele.style.clip = "rect("
 + t + "px,"
 + r + "px,"
 + b + "px,"
 + l + "px)" ;
};
Mask.prototype.fn = function (){
     var w,h; 
     this.from_num ++ ;
  if(this.from_num<=this.speed){
     w = Tween(this.from_num,0,this.maxWidth,this.speed);
  h = Tween(this.from_num,0,this.maxHeight,this.speed);
  this.set(w,h);
  }else{
     this.fl.stop();
  //this.start();//若不需要重复动画,把这句注释,上句不注释
  }
};
function ImgFlash(box){
        this.box = box.getElementsByTagName("dl");
  this.ge = 4;//切换间隔秒数
  this.menu = [];
  this.mask = new Mask();//加载遮罩动画,不设置参数即随机效果
  this.zIndex = this.box.length;
  var _div = document.createElement('div');
  this.dang = 0;
  for(i=0;i<this.zIndex;i++){
   this.box[i].style.zIndex = this.zIndex-i;
   var _em = document.createElement('em'),_span = document.createElement('span');
   var _dt = this.box[i].getElementsByTagName("dt")[0];
   _dt.appendChild(_span);
   addEventHandler(_em,'mouseover',Bind(this,this.emEvent,[this.zIndex-i-1,true]));
   _div.appendChild(_em);
   this.menu.push(_em);
   if(this.zIndex-i==1){
   _em.className = 'd';
   }
  }
  box.appendChild(_div);
  addEventHandler(box,'mouseover',Bind(this,function(){this.fl.stop()}));
  addEventHandler(box,'mouseout',Bind(this,function(){this.fl.play(this.ge*1000)}));
  this.fl = Timer.add(Bind(this,this.enterFrame))
  this.fl.play(this.ge*1000);
}
ImgFlash.prototype.enterFrame = function(){
        var ddd = this.dang==2?0:this.dang+1;
  this.emEvent(ddd); 
};
ImgFlash.prototype.emEvent = function (index,b){
  if(b)this.fl.stop();
  if(index == this.dang)return;
  this.menu[this.menu.length-1-this.dang].className="";
  var odl = this.box[this.dang];
  this.zIndex++;
  this.dang = index;
  this.menu[this.menu.length-1-this.dang].className="d";
  var ndl = this.box[this.dang];
  var img = ndl.getElementsByTagName("img")[0];
  this.mask.ready(img);
  this.mask.start();
  ndl.style.zIndex = this.zIndex;
}
function Tab(id,type){
  var nav = id.getElementsByTagName("ul")[0].childNodes;
  var _nav,i=0;
  this.mask = new Mask();//初始化遮罩动画
  this.z = 1000;
  while(_nav = nav[i++]){
   if(_nav.className=="d")this.focusEle = _nav;
   if(_nav.childNodes.length>1){
    var A = _nav.getElementsByTagName("A")[0];
    addEventHandler(A,type,Bind(this,fun,[A]));
   }
   if(_nav.nodeType == 1)_nav.getElementsByTagName("UL")[0].style.zIndex = nav.length-i;
  }
  function fun(ele){
   var li = ele.parentNode;
   var ul = li.getElementsByTagName("UL")[0];
   this.z += 1
   ul.style.zIndex = this.z;
   if(li.className=="d")return;
   li.className+=(li.className.length>0? " ": "") + "d";
   this.focusEle.className=this.focusEle.className.replace(/( ?|^)d\b/g, "");
   this.focusEle = li;
   this.mask.ready(ul);
   this.mask.start();
  };
}
</script>
</head>
<body>
<!--把下面代码加到<body>与</body>之间-->
<center>图片幻灯应用:</center>
<div class="imgFlash" id="box">
  <dl>
    <dt><a href="#">美女一</a></dt>
    <dd><a href="#"><img src="http://www.cwydesign.com/effects/UploadFiles_7074/201008/2010081123403073.jpg" border="0" /></a></dd>
  </dl>
  <dl>
    <dt><a href="#">美女二</a></dt>
    <dd><a href="#"><img src="http://www.cwydesign.com/effects/UploadFiles_7074/201008/2010081123403065.jpg" border="0" /></a></dd>
  </dl>
  <dl>
    <dt><a href="#">美女三</a></dt>
    <dd><a href="#"><img src="http://www.cwydesign.com/effects/UploadFiles_7074/201008/2010081123403043.jpg" border="0" /></a></dd>
  </dl>
</div>
<br>
<center>导航菜单应用:</center>
<div class="tab" id="tab1">
<ul>
 <li class="d"><a href="javascript:;">菜单一</a>
   <ul>
     <li><a href="#" target="_blank">菜单一内容1</a></li><li><a href="#" target="_blank">菜单一内容2</a></li><li><a href="#" target="_blank">菜单一内容3</a></li><li><a href="#" target="_blank">菜单一内容4</a></li><li><a href="#" target="_blank">菜单一内容5</a></li><li><a href="#" target="_blank">菜单一内容6</a></li>
   </ul>
  </li>
  <li><a href="javascript:;">菜单二</a>
 <ul>
  <li><a href="#" target="_blank">菜单二内容1</a></li><li><a href="#" target="_blank">菜单二内容2</a></li><li><a href="#" target="_blank">菜单二内容3</a></li><li><a href="#" target="_blank">菜单二内容4</a></li><li><a href="#" target="_blank">菜单二内容5</a></li><li><a href="#" target="_blank">菜单二内容6</a></li>
    </ul>
  </li>
  <li><a href="javascript:;">菜单三</a>
 <ul>
 <li><a href="#" target="_blank">菜单三内容1</a></li><li><a href="#" target="_blank">菜单三内容2</a></li><li><a href="#" target="_blank">菜单三内容3</a></li><li><a href="#" target="_blank">菜单三内容4</a></li><li><a href="#" target="_blank">菜单三内容5</a></li><li><a href="#" target="_blank">菜单三内容6</a></li>
    </ul>
  </li>
  <li><a href="javascript:;">菜单四</a>
   <ul>
     <li><a href="#" target="_blank">菜单四内容1</a></li><li><a href="#" target="_blank">菜单四内容2</a></li><li><a href="#" target="_blank">菜单四内容3</a></li><li><a href="#" target="_blank">菜单四内容4</a></li><li><a href="#" target="_blank">菜单四内容5</a></li><li><a href="#" target="_blank">菜单四内容6</a></li>
   </ul>
  </li>
</ul>
</div>
<script language="javascript">
//初始化
new ImgFlash($("box"));
new Tab($("tab1"),"mouseover");
</script>
</body>
</html>

△运行 ☉预览 #复制 +收藏
特效说明:
遮罩过渡效果的图片幻灯和选项卡菜单
  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号