zoukankan      html  css  js  c++  java
  • JS打开层/关闭层/移动层动画效果

    css

    body, span, div, td { font-size:12px; line-height:1.5em; color:#849BCA; }
    #bodyL { float:left; 84px; margin-right:2px; }
    a.od { 80px; height:25px; line-height:25px; text-align:center; font-weight:bold; border: 2px solid #849BCA; display:block; color:#547BC9; float:left; text-decoration:none; margin-top:2px; }
    a.od:link { background:#EEF1F8; }
    a.od:visited { background:#EEF1F8; }
    a.od:hover { background:#EEE; }
    a.od:active { background:#EEE; }
    #fd { 500px; height:200px; background:#EDF1F8; border: 2px solid #849BCA; margin-top:2px; margin-left:2px; float:left; overflow:hidden; position:absolute; left:0px; top:0px; cursor:move; float:left;/*filter:alpha(opacity=50);*/ }
    .content { padding:10px; }

    html

    <div id="bodyL"> 
    <a href="#" class="od" onclick = "show('fd');return false;"> [打开层] </a> 
    <a href="#" class="od" onclick = "closeed('fd');return false;"> [关闭层] </a> 
    </div>
    <div id="fd" style="display:none;filter:alpha(opacity=100);opacity:1;">
      <div class="content">移动层</div>
    </div>

    jq

    var prox;
    var proy;
    var proxc;
    var proyc;
    function show(id){/*--打开--*/
    clearInterval(prox);
    clearInterval(proy);
    clearInterval(proxc);
    clearInterval(proyc);
    var o = document.getElementById(id);
    o.style.display = "block";
    o.style.width = "1px";
    o.style.height = "1px"; 
    prox = setInterval(function(){openx(o,500)},10);
    }
    function openx(o,x){/*--打开x--*/
    var cx = parseInt(o.style.width);
    if(cx < x)
    {
    o.style.width = (cx + Math.ceil((x-cx)/5)) +"px";
    }
    else
    {
    clearInterval(prox);
    proy = setInterval(function(){openy(o,200)},10);
    }
    }
    function openy(o,y){/*--打开y--*/
    var cy = parseInt(o.style.height);
    if(cy < y)
    {
    o.style.height = (cy + Math.ceil((y-cy)/5)) +"px";
    }
    else
    {
    clearInterval(proy);
    }
    }
    function closeed(id){/*--关闭--*/
    clearInterval(prox);
    clearInterval(proy);
    clearInterval(proxc);
    clearInterval(proyc);
    var o = document.getElementById(id);
    if(o.style.display == "block")
    {
    proyc = setInterval(function(){closey(o)},10);
    }
    }
    function closey(o){/*--打开y--*/
    var cy = parseInt(o.style.height);
    if(cy > 0)
    {
    o.style.height = (cy - Math.ceil(cy/5)) +"px";
    }
    else
    {
    clearInterval(proyc);
    proxc = setInterval(function(){closex(o)},10);
    }
    }
    function closex(o){/*--打开x--*/
    var cx = parseInt(o.style.width);
    if(cx > 0)
    {
    o.style.width = (cx - Math.ceil(cx/5)) +"px";
    }
    else
    {
    clearInterval(proxc);
    o.style.display = "none";
    }
    }
    /*-------------------------鼠标拖动---------------------*/
    var od = document.getElementById("fd");
    var dx,dy,mx,my,mouseD;
    var odrag;
    var isIE = document.all ? true : false;
    document.onmousedown = function(e){
    var e = e ? e : event;
    if(e.button == (document.all ? 1 : 0))
    {
    mouseD = true;
    }
    }
    document.onmouseup = function(){
    mouseD = false;
    odrag = "";
    if(isIE)
    {
    od.releaseCapture();
    od.filters.alpha.opacity = 100;
    }
    else
    {
    window.releaseEvents(od.MOUSEMOVE);
    od.style.opacity = 1;
    }
    }
    //function readyMove(e){
    od.onmousedown = function(e){
    odrag = this;
    var e = e ? e : event;
    if(e.button == (document.all ? 1 : 0))
    {
    mx = e.clientX;
    my = e.clientY;
    od.style.left = od.offsetLeft + "px";
    od.style.top = od.offsetTop + "px";
    if(isIE)
    {
    od.setCapture();
    od.filters.alpha.opacity = 50;
    }
    else
    {
    window.captureEvents(Event.MOUSEMOVE);
    od.style.opacity = 0.5;
    }
    //alert(mx);
    //alert(my);
    } 
    }
    document.onmousemove = function(e){
    var e = e ? e : event;
    //alert(mrx);
    //alert(e.button);
    if(mouseD==true && odrag)
    {
    var mrx = e.clientX - mx;
    var mry = e.clientY - my;
    od.style.left = parseInt(od.style.left) +mrx + "px";
    od.style.top = parseInt(od.style.top) + mry + "px";
    mx = e.clientX;
    my = e.clientY;
    }
    }
  • 相关阅读:
    Rotation Kinematics
    离职 mark
    PnP 问题方程怎么列?
    DSO windowed optimization 代码 (4)
    Adjoint of SE(3)
    IMU 预积分推导
    DSO windowed optimization 代码 (3)
    DSO windowed optimization 代码 (2)
    OKVIS 代码框架
    DSO windowed optimization 代码 (1)
  • 原文地址:https://www.cnblogs.com/Jlasp/p/3072388.html
Copyright © 2011-2022 走看看