> 웹 프론트엔드 > JS 튜토리얼 > js 체인 모션 프레임워크 및 예제 소개(코드)

js 체인 모션 프레임워크 및 예제 소개(코드)

不言
풀어 주다: 2018-09-01 11:47:31
원래의
1331명이 탐색했습니다.

이 기사는 js 체인 모션 프레임워크 및 예제에 대한 소개(코드)를 제공합니다. 이는 특정 참고 가치가 있으므로 도움이 될 수 있습니다.

앞서 소개한 모션은 객체가 이동한 후 모두 완료됩니다. 예를 들어 p가 처음에는 넓어지고, 다음에는 높아지고, 최종적으로는 더 투명해지는 등의 다른 작업이 있는 경우 이전 모션 프레임은 상황을 만족시키지 못할 것입니다. . 모션 프레임워크를 기반으로 fnEnd 기능을 추가하여 모션이 완료된 후 작업을 수행할 수 있습니다.

체인 모션 프레임

function getStyle(obj,name){
  if(obj.currentStyle){
    return obj.currentStyle[name];
  }
  else{
    return getComputedStyle(obj,false)[name];
  }
}

function startMove(obj, attr, iTarget, fnEnd) {
  clearInterval(obj.timer);
  obj.timer = setInterval(function() {
    var cur=0;
    if(attr==="opacity"){
      cur=Math.round(parseFloat(getStyle(obj,attr))*100);//有可能会出现误差0.07*100
    }
    else{
      cur=parseInt(getStyle(obj,attr));
    }
    var speed = (iTarget - cur) / 6;
    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
    if (cur === iTarget) {
      clearInterval(obj.timer);
      if(fnEnd)fnEnd();//运动结束后,如果fnEnd参数传递进去了就执行fnEnd函数
    } else {
      if(attr==="opacity"){
        obj.style.filter="alpha(opacity:"+cur+speed+")";
        obj.style.opacity=(cur+speed)/100;
      }else{
        obj.style[attr]=cur+speed+"px";
      }
    }
  }, 30)
}
로그인 후 복사

체인 모션 예시

위의 체인 모션 프레임을 사용하여 먼저 이동하여 너비를 조정하고, 이동하여 높이를 조정하고, 마지막으로 이동하여 투명도를 조정하는 p를 만듭니다.

<!DOCTYPE html>
<html>
  <head>
    <title>链式运动</title>
    <script src="move2.js"></script>
    <style>
      #p1{
        width: 100px;
        height: 100px;
        background: red;
        filter:alpha(opacity:30);
        opacity:0.3;
      }
    </style>
    <script>
      window.onload=function(){
        var op=document.getElementById("p1");
        op.onmouseover=function(){
          startMove(op,"width",300,function(){
            startMove(op,"height",300,function(){
              startMove(op,"opacity",100);
            })
          })
        }
        op.onmouseout=function(){
          startMove(op,"opacity",30,function(){
            startMove(op,"height",100,function(){
              startMove(op,"width",100);
            })
          });
        }
      }
    </script>
  </head>
  <body>
    <p id="p1"></p>
  </body>
</html>
로그인 후 복사

관련 추천:

완벽한 모션 샘플 코드를 위한 JavaScript 모션 프레임워크 체인 모션 (5)

javascript 체인 호출을 지원하는 비동기 호출 프레임워크 Async.Operation_javascript 기술

위 내용은 js 체인 모션 프레임워크 및 예제 소개(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿