Team:LZU-China/tempfortest

From 2014.igem.org

(Difference between revisions)
Line 1: Line 1:
-
<!DOCTYPE html>
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html lang="en-US"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
<html xmlns="http://www.w3.org/1999/xhtml">
-
<meta charset="UTF-8">
+
<head>
-
<title>js仿jquery-lightBox</title>
+
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
-
<style>
+
<title>CSS实现鼠标移动到图片,更换图片</title>
-
body,ul,li,p,img{margin: 0;padding: 0}
+
-
html,body{background: #fff;}
+
-
.lightBox{margin:30px auto;width:750px;height: 80px;padding: 10px 0;border: 1px solid #ccc}
+
-
.lightBox ul{width: 750px}
+
-
.lightBox li{height: 80px;width: 140px;margin:0 5px;float: left;overflow: hidden;display: inline;}
+
-
.lightBox li img{height: 80px;width: 140px}
+
-
/**弹出层样式***/
+
-
.mask{height: 100%;width: 100%;filter:alpha(opacity:0);opacity: 0;background: #000;position: absolute;z-index: 1;left: 0;top:0;display: -none;}
+
-
.popup{background:#fff url() no-repeat center;border: 10px solid #fff;position: absolute;z-index: 2;;overflow:-hidden;width: 320px;height: 240px;}
+
-
.popup img{height: auto;width: auto;}
+
-
.btn{position: absolute;right: 0;top:0;height: 100%;width: 50%;cursor: pointer;}
+
-
.prev{left: 0;background: url() no-repeat  0 50px;}
+
-
.next{background: url() no-repeat  right 50px;}
+
-
.popupBottom{position: relative;z-index: 3;margin-top:4px}
+
-
.popupTitle{line-height: 18px;color: #543424;font-family: Arial;font-size: 12px;padding-right: 100px;}
+
-
.popupClose{margin-right:15px;height: 22px;width: 66px;background: url() no-repeat;cursor: pointer;z-index: 4;position: absolute;top:0;right: 0;}
+
-
</style>
+
</head>
</head>
 +
<style type="text/css">
 +
*{ margin:0; padding:0;}
 +
ul li{ list-style:none;}
 +
.nav{ width:800px; height:40px; margin:150px auto;}
 +
.nav ul li{ float:left; width:200px;}
 +
.nav ul li a:link,a:visited{ display:block; width:190px; height:40px; background:url(/jscss/demoimg/wall_s1.jpg);}/*链接、点击后*/
 +
.nav ul li a:hover{background:url(/jscss/demoimg/wall_s2.jpg);}/*鼠标经过*/
 +
.nav ul li a:active{background:url(/jscss/demoimg/wall_s3.jpg);}/*点击时*/
 +
</style>
<body>
<body>
-
<div class="lightBox">
+
<div class="nav">
-
<ul>                      
+
<ul>
-
<li><img src="/jscss/demoimg/wall_s1.jpg" _title="仿jquery-lightBox" _src="/jscss/demoimg/wall1.jpg"></li>
+
    <li><a href="#"></a></li>
-
<li><img src="/jscss/demoimg/wall_s2.jpg" _title="仿jquery-lightBox" _src="/jscss/demoimg/wall2.jpg"></li>
+
        <li><a href="#"></a></li>
-
<li><img src="/jscss/demoimg/wall_s3.jpg" _title="仿jquery-lightBox" _src="/jscss/demoimg/wall3.jpg"></li>
+
        <li><a href="#"></a></li>
-
<li><img src="/jscss/demoimg/wall_s4.jpg" _title="仿jquery-lightBox" _src="/jscss/demoimg/wall4.jpg"></li>
+
    </ul>
-
<li><img src="/jscss/demoimg/wall_s5.jpg" _title="仿jquery-lightBox" _src="/jscss/demoimg/wall5.jpg"></li>
+
-
</ul>
+
</div>
</div>
-
<script>
 
-
/*
 
-
*  author:涛涛
 
-
*  date:2013/8/22
 
-
*/
 
-
(function(win){
 
-
    function myLightBox(elem,isZoom,src,titletxt){
 
-
        this.elem=typeof elem=='object' ? elem : this.$('lightBox')[0];
 
-
        this.isZoom=typeof isZoom=='undefined' ? true : isZoom;
 
-
        this.src=src || '_src';
 
-
        this.titletxt=titletxt || '_title';
 
-
        this.isShow=false;
 
-
        this.index=0;
 
-
        this.aImages=this.elem.getElementsByTagName('img');
 
-
        this.len=this.aImages.length;
 
-
        this.showPopup();
 
-
    };
 
-
    var lightBox=myLightBox.prototype;
 
-
    //显示弹出层
 
-
    lightBox.showPopup=function(){
 
-
        var self=this,
 
-
        img=this.aImages;
 
-
        for(var i=0;i<this.len;i++){
 
-
            img[i].index=i;
 
-
            img[i].onclick=function(){
 
-
                self.index=this.index;
 
-
                self.createPopup(this.getAttribute(self.src),this.getAttribute(self.titletxt));
 
-
            }
 
-
        }
 
-
    };
 
-
    //class获取元素
 
-
    lightBox.$=function(s,t,p){
 
-
    var aElement=(p||document).getElementsByTagName(t||'*'),
 
-
        reg=new RegExp('(^|\\s)'+s+'(\\s|$)'),
 
-
        aResult=[];
 
-
    for(var i=0;i<aElement.length;i++){
 
-
      reg.test(aElement[i].className) && aResult.push(aElement[i]);
 
-
    };
 
-
    return aResult;
 
-
    };
 
-
 
-
    //创建弹出层展示
 
-
    //params  src  图片路径
 
-
    //params title  显示文字
 
-
    lightBox.createPopup=function(src,title){
 
-
        var self=this,
 
-
        oPopup=document.createElement('div'),//弹出层外框
 
-
    oMask=document.createElement('div'),//遮罩
 
-
    oPrev=document.createElement('div'),//上按钮
 
-
    oNext=document.createElement('div'),//下按钮
 
-
    oBottom=document.createElement('div'),//底部盒子
 
-
    oTitle=document.createElement('div'),//底部文字盒子
 
-
    oClose=document.createElement('div'),//关闭
 
-
    oImg=document.createElement('img'),//图片
 
-
        vw=document.documentElement.clientWidth,
 
-
        vh=document.documentElement.clientHeight;
 
-
    oMask.className='mask';
 
-
    oPopup.className='popup';
 
-
    oPrev.className='prev btn';
 
-
    oNext.className='next btn';
 
-
    oBottom.className='popupBottom';
 
-
    oTitle.className='popupTitle';
 
-
    oClose.className='popupClose';
 
-
    oTitle.innerHTML=title || '';
 
-
        oPopup.style.margin='0';
 
-
        oPopup.style.left=(vw-320)/2+'px';
 
-
        oPopup.style.top=(vh-240)/2+'px';
 
-
        oMask.style.height=this.getFullHeight()+'px';
 
-
        this.hide(oPrev,oNext,oBottom,oClose,oImg);
 
-
        oBottom.appendChild(oClose);
 
-
        oBottom.appendChild(oTitle);
 
-
        oPopup.appendChild(oPrev);
 
-
        oPopup.appendChild(oNext);
 
-
        oPopup.appendChild(oImg);
 
-
        oPopup.appendChild(oBottom);
 
-
        document.body.appendChild(oMask);
 
-
        document.body.appendChild(oPopup);
 
-
    oImg.onload=function(){
 
-
            self.show(this,oClose,oBottom,oNext,oPrev);
 
-
            this.style.height='auto';
 
-
            this.style.width='auto';
 
-
            var oldw=self.css(oPopup,'width'),oldh=self.css(oPopup,'height');
 
-
            oPopup.style.height='auto';
 
-
            oPopup.style.width='auto';
 
-
            oPopup.style.opacity=0;
 
-
            oPopup.style.filter='alpha(opacity:0)';
 
-
            var h=oPopup.clientHeight,w=oPopup.clientWidth;
 
-
            oPopup.style.height=oldh;
 
-
            oPopup.style.width=oldw;
 
-
            self.hide(oBottom,oImg);
 
-
            self.move(oPopup,{opacity:100,height:h,width:w,left:parseInt((vw-w)/2),top:parseInt((vh-h)/2)},5,function(){
 
-
                self.show(oBottom,oImg);
 
-
                oImg.style.width='100%';
 
-
                self.isShow=true;
 
-
            });
 
-
    };
 
-
        self.move(oMask,{opacity:60},5);
 
-
        oImg.src=src;
 
-
        this.prev=oPrev;
 
-
        this.next=oNext;
 
-
        this.close=oClose;
 
-
        this.img=oImg;
 
-
        this.txt=oTitle;
 
-
        this.btm=oBottom;
 
-
        this.p=oPopup;
 
-
        this.mask=oMask;
 
-
        this.nexts();
 
-
        this.prevs();
 
-
        this.stopPropagation();
 
-
        this.closes();
 
-
        this.isZoom && this.mouseWheels();
 
-
        this.resizefn();
 
-
    };
 
-
    //============重置窗口大小
 
-
    lightBox.resizefn=function(){
 
-
        if(!this.p)return;
 
-
        var self=this;
 
-
        this.addEvent(window,'resize',function(){
 
-
            if(!self.p)return;
 
-
            var viw=self.getWinSize()[0],
 
-
            vih=self.getWinSize()[1],
 
-
            p=self.p,ms=self.mask,
 
-
            h=p.offsetHeight,w=p.offsetWidth;
 
-
 
-
            self.css(p,'left',(viw-w)/2);
 
-
            self.css(p,'top',(vih-h)/2);
 
-
            self.css(ms,'height',Math.max(h,vih));
 
-
            self.css(ms,'width',Math.max(w,viw));
 
-
        })
 
-
    };
 
-
    //===============获取窗口大小
 
-
    lightBox.getWinSize=function(){
 
-
        var d=document.documentElement;
 
-
        return [d.clientWidth,d.clientHeight];
 
-
    };
 
-
    //==============鼠标滚轮
 
-
    lightBox.mouseWheels=function(){
 
-
        this.addEvent(document,'mousewheel',wheel);
 
-
        this.addEvent(document,'DOMMouseScroll',wheel);
 
-
        var self=this,isBeyond=false;
 
-
 
-
        function wheel(e){
 
-
            var ev=window.event||e,flag=true,
 
-
            h=self.img.height,w=self.img.width,
 
-
            l=self.p.offsetLeft,t=self.p.offsetTop,
 
-
            scale=h/w,
 
-
            nw=Math.round(20/scale),
 
-
            txtH=Math.max(self.btm.offsetHeight,22)+8,
 
-
            viw=document.documentElement.clientWidth-80,
 
-
            vih=document.documentElement.clientHeight-50,
 
-
            maxH=self.p.offsetHeight,
 
-
            maxW=self.p.offsetWidth;
 
-
            flag=ev.wheelDelta ? ev.wheelDelta<0 : ev.detail>0;
 
-
            if(maxW>=viw || maxH>=vih){
 
-
                isBeyond=true;
 
-
            };
 
-
            switch(flag)
 
-
            {
 
-
                case true://往下
 
-
                  if(h<150 || w<200)return;
 
-
                    h-=20;
 
-
                    w-=nw;
 
-
                    l+=nw/2;
 
-
                    t+=10;
 
-
                    isBeyond=false;
 
-
                break;
 
-
                default :  //往上
 
-
                    h+=20;
 
-
                    w+=nw;
 
-
                    l-=nw/2;
 
-
                    t-=10;
 
-
            };
 
-
            if(!isBeyond){
 
-
                self.css(self.p,'height',h+txtH);
 
-
                self.css(self.p,'left',l);
 
-
                self.css(self.p,'width',w);
 
-
                self.css(self.p,'top',t);
 
-
                ev.preventDefault && ev.preventDefault();
 
-
            }
 
-
            return false;
 
-
        }
 
-
    };
 
-
    //==============阻止冒泡
 
-
    lightBox.stopPropagation=function(){
 
-
        this.p.onclick=function(ev){
 
-
            var e=window.event||ev;
 
-
            e.stoppropagation ? e.stopPropagation() :(e.cancelBubble=true);
 
-
        }
 
-
    };
 
-
    //=============隐藏
 
-
    lightBox.hide=function(){
 
-
        for(var i=0;i<arguments.length;i++){
 
-
            arguments[i].style.display='none';
 
-
        }
 
-
    };
 
-
    //=============显示
 
-
    lightBox.show=function(){
 
-
        for(var i=0;i<arguments.length;i++){
 
-
            arguments[i].style.display='block';
 
-
        }
 
-
    };
 
-
    //==============绑定事件
 
-
    //params  o dom对象
 
-
    //params  type 事件类型
 
-
    //params  fn  事件函数
 
-
    lightBox.addEvent=function(o,type,fn){
 
-
        return o.addEventListener ? o.addEventListener(type,fn,false) : o.attachEvent('on'+type,fn);
 
-
    };
 
-
    //==============解除事件绑定
 
-
    lightBox.removeEvent=function(o,type,fn){
 
-
        return o.detachEvent ? o.detachEvent('on'+type,fn) : o.removeEventListener(type,fn);
 
-
    };
 
-
    //==============关闭
 
-
    lightBox.closes=function(){
 
-
        var self=this;
 
-
        document.onclick=this.close.onclick=function(){
 
-
            if(!self.isShow)return;
 
-
            self.move(self.mask,{opacity:0},5,function(){
 
-
                  document.body.removeChild(self.mask);
 
-
            });
 
-
            document.body.removeChild(self.p);
 
-
            self.isShow=false;
 
-
            delete self.p,self.prev,self.next,self.close,self.img,self.txt,self.btm,self.mask;
 
-
            self.img.onload=null;
 
-
        };
 
-
    };
 
-
    //==============点击上一张
 
-
    lightBox.prevs=function(){
 
-
        var self=this;
 
-
        this.prev.onclick=function(){
 
-
            var index=--self.index;
 
-
            if(index<0){
 
-
                index=self.index=self.len-1;
 
-
            };
 
-
            self.clickSwitch(index);     
 
-
        }
 
-
    };
 
-
    //==============点击下一张
 
-
    lightBox.nexts=function(){
 
-
        var self=this;
 
-
        this.next.onclick=function(){
 
-
            var index=++self.index;
 
-
            if(index>=self.len){
 
-
                index=self.index=0;
 
-
            };
 
-
            self.clickSwitch(index);
 
-
        }
 
-
    };
 
-
    //================点击切换公有代码
 
-
    lightBox.clickSwitch=function(i){
 
-
        this.hide(this.prev,this.next,this.close,this.btm,this.img);
 
-
        this.img.src=this.aImages[i].getAttribute(this.src);
 
-
        this.txt.innerHTML=this.aImages[i].getAttribute(this.titletxt);
 
-
    }
 
-
    //=============缓冲运动
 
-
    lightBox.move=function(o,json,fx,fn){
 
-
    var self=this;
 
-
    o.timer && clearInterval(o.timer);
 
-
    o.timer=setInterval(function(){
 
-
    var bStop=true;
 
-
            var cur=0;
 
-
    for(var attr in json){
 
-
      cur=attr=='opacity' ? parseInt(parseFloat(self.css(o,attr)).toFixed(2)*100):parseInt(self.css(o,attr));
 
-
      var speed=(json[attr]-cur)/fx;
 
-
      speed=speed>0?Math.ceil(speed):Math.floor(speed);
 
-
      if(attr=='opacity'){
 
-
        o.style.filter='alpha(opacity:'+(speed+cur)+')';
 
-
        o.style.opacity=(speed+cur)/100;
 
-
      }else{
 
-
        o.style[attr]=(cur+speed)+'px';
 
-
      };
 
-
      if(cur!=json[attr]){
 
-
      bStop=false;
 
-
      };
 
-
      if(bStop){
 
-
      clearInterval(o.timer);
 
-
      (typeof fn=='function')&&fn();
 
-
      }
 
-
    }
 
-
    },30)
 
-
    };
 
-
    //=============获取元素样式
 
-
    lightBox.css=function(o,attr,val){
 
-
        if(arguments.length==2){
 
-
            return o.currentStyle ? o.currentStyle[attr] : getComputedStyle(o,false)[attr];
 
-
        }
 
-
        else
 
-
        {
 
-
            o.style[attr]=val+'px';
 
-
        }
 
-
    };
 
-
    //=============获取页面高度
 
-
    lightBox.getFullHeight=function(){
 
-
        var sh=document.body.scrollHeight-4,
 
-
            ch=document.documentElement.clientHeight;
 
-
        return Math.max(sh,ch);
 
-
    };
 
-
    win.myLightBox=myLightBox;
 
-
})(window);
 
-
var taotao=new myLightBox('lightBox');
 
-
//注意图片尺寸不能太小
 
-
taotao=null;
 
-
</script>
 
</body>
</body>
</html>
</html>

Revision as of 09:23, 6 September 2014

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> CSS实现鼠标移动到图片,更换图片