>  기사  >  웹 프론트엔드  >  js_javascript 기술에서 페이드인 및 페이드아웃 효과를 얻는 방법

js_javascript 기술에서 페이드인 및 페이드아웃 효과를 얻는 방법

WBOY
WBOY원래의
2016-05-16 15:33:281841검색

페이드 인 및 페이드 아웃 효과는 일상적인 프로젝트에서 자주 사용됩니다. 아쉽게도 네이티브 JS에는 유사한 방법이 없으며 때로는 작은 페이지가 jQuery 라이브러리를 도입할 가치가 없기 때문에 직접 작성했습니다. 유용합니다. 친구 여러분이 직접 사용할 수 있습니다. 코드에서 요소 투명도를 설정하는 방법도 있습니다. IE 규칙(0~100)에 따라 설정됩니다. 표준 설정 방법(0.00~1.00)으로 변경하는 경우 차이를 정확하게 표현하기 위해 부동 소수점을 고려하시기 바랍니다. 아래에서 사용할 때.

매개변수 설명:
fadeIn()과 fadeOut()에는 모두 세 개의 매개변수가 있습니다. 첫 번째는 필수인 event이고, 두 번째는 양의 정수인 fade speed입니다. 세 번째 매개변수는 페이드 인 및 아웃할 투명도 값 을 지정하는 것입니다(jQuery의 fadeTo()와 유사). 이는 0에서 100까지의 양의 정수 값입니다. 또한 선택적 매개변수입니다.
키 코드:

 //淡入效果(含淡入到指定透明度) 
 function fadeIn(elem, speed, opacity){ 
  /* 
   * 参数说明 
   * elem==>需要淡入的元素 
   * speed==>淡入速度,正整数(可选) 
   * opacity==>淡入到指定的透明度,0~100(可选) 
   */ 
  speedspeed = speed || 20; 
  opacityopacity = opacity || 100; 
  //显示元素,并将元素值为0透明度(不可见) 
  elem.style.display = 'block'; 
  iBase.SetOpacity(elem, 0); 
  //初始化透明度变化值为0 
  var val = 0; 
  //循环将透明值以5递增,即淡入效果 
  (function(){ 
   iBase.SetOpacity(elem, val); 
   val += 5; 
   if (val <= opacity) { 
    setTimeout(arguments.callee, speed) 
   } 
  })(); 
 } 
  
 //淡出效果(含淡出到指定透明度) 
 function fadeOut(elem, speed, opacity){ 
  /* 
   * 参数说明 
   * elem==>需要淡入的元素 
   * speed==>淡入速度,正整数(可选) 
   * opacity==>淡入到指定的透明度,0~100(可选) 
   */ 
  speedspeed = speed || 20; 
  opacityopacity = opacity || 0; 
  //初始化透明度变化值为0 
  var val = 100; 
  //循环将透明值以5递减,即淡出效果 
  (function(){ 
   iBase.SetOpacity(elem, val); 
   val -= 5; 
   if (val >= opacity) { 
    setTimeout(arguments.callee, speed); 
   }else if (val < 0) { 
    //元素透明度为0后隐藏元素 
    elem.style.display = 'none'; 
   } 
  })(); 
 } 

렌더링:

핵심 코드,

코드를 직접 복사하여 효과를 확인할 수 있습니다

 
 
 
 
原生JS实现淡入淡出效果 
 
<script> 
window.onload = function(){ 
 //底层共用 
 var iBase = { 
  Id: function(name){ 
   return document.getElementById(name); 
  }, 
  //设置元素透明度,透明度值按IE规则计,即0~100 
  SetOpacity: function(ev, v){ 
   ev.filters &#63; ev.style.filter = 'alpha(opacity=' + v + ')' : ev.style.opacity = v / 100; 
  } 
 } 
 //淡入效果(含淡入到指定透明度) 
 function fadeIn(elem, speed, opacity){ 
  /* 
   * 参数说明 
   * elem==&gt;需要淡入的元素 
   * speed==&gt;淡入速度,正整数(可选) 
   * opacity==&gt;淡入到指定的透明度,0~100(可选) 
   */ 
  speedspeed = speed || 20; 
  opacityopacity = opacity || 100; 
  //显示元素,并将元素值为0透明度(不可见) 
  elem.style.display = 'block'; 
  iBase.SetOpacity(elem, 0); 
  //初始化透明度变化值为0 
  var val = 0; 
  //循环将透明值以5递增,即淡入效果 
  (function(){ 
   iBase.SetOpacity(elem, val); 
   val += 5; 
   if (val &lt;= opacity) { 
    setTimeout(arguments.callee, speed) 
   } 
  })(); 
 } 
  
 //淡出效果(含淡出到指定透明度) 
 function fadeOut(elem, speed, opacity){ 
  /* 
   * 参数说明 
   * elem==&gt;需要淡入的元素 
   * speed==&gt;淡入速度,正整数(可选) 
   * opacity==&gt;淡入到指定的透明度,0~100(可选) 
   */ 
  speedspeed = speed || 20; 
  opacityopacity = opacity || 0; 
  //初始化透明度变化值为0 
  var val = 100; 
  //循环将透明值以5递减,即淡出效果 
  (function(){ 
   iBase.SetOpacity(elem, val); 
   val -= 5; 
   if (val &gt;= opacity) { 
    setTimeout(arguments.callee, speed); 
   }else if (val &lt; 0) { 
    //元素透明度为0后隐藏元素 
    elem.style.display = 'none'; 
   } 
  })(); 
 } 
  
  
 var btns = iBase.Id('demo').getElementsByTagName('input'); 
  
 btns[0].onclick = function(){ 
  fadeIn(iBase.Id('fadeIn')); 
 } 
 btns[1].onclick = function(){ 
  fadeOut(iBase.Id('fadeOut'),40); 
 } 
 btns[2].onclick = function(){ 
  fadeOut(iBase.Id('fadeTo'), 20, 10); 
 } 
  
} 
</script> 
 
 
 
 

脚本之家是国内专业的网站建设资源、脚本编程学习类网站,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。

脚本之家

脚本之家是国内专业的网站建设资源、脚本编程学习类网站,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。

脚本之家

脚本之家是国内专业的网站建设资源、脚本编程学习类网站,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。

위 내용은 모두 Native js에서 페이드인, 페이드아웃 효과를 구현하기 위한 코드입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.