창 지터 효과는 여러 곳에서 사용됩니다. 예를 들어 NetEase의 로그인 창에는 로그인이 실패할 때 나타나는 지터 효과가 있습니다. 이 단락과 같은 코드 예제를 여러분과 공유하고 싶습니다.
코드는 다음과 같습니다.
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <meta name="author" content="http://www.softwhy.com/" /> <title>窗口登陆效果</title> <style type="text/css"> #win { position:relative; width:100px; height:100px; background-color:#666; } </style> <script type="text/javascript"> var a=['top','left']; var b=0; var u; function fudu() { win.style[a[b%2]]=(b++)%4<2?"0px":"4px"; if(b>15) { clearInterval(u); b=0 } } function zd() { clearInterval(u); u=setInterval(fudu,32) } window.onload=function() { var bt=document.getElementById("bt"); var win=document.getElementById("win"); bt.onclick=zd; } </script> </head> <body > <button id="bt">点击振动</button> <div id="win"></div> </body> </html>
위 코드에서 버튼을 클릭하면 div에 지터 효과가 나타납니다. 물론 이 효과는 비교적 간단합니다. 실제 애플리케이션에서 확장할 수 있습니다. 구현 과정까지.
1. 구현 원칙:
코드도 간단하고 원리도 매우 간단합니다. div는 상대 위치 지정을 채택합니다. 버튼을 클릭하면 타이머 함수 setInterval()을 통해 fudu() 함수가 계속 호출됩니다. 이 함수는 모듈로 메서드를 통해 계속해서 속성 값을 설정할 수 있습니다. 지터링 효과를 얻기 위해 div의 위치를 무작위로 조정합니다. b 값이 15보다 크면 지터링이 중지됩니다.
2. 코드 주석:
1.var a=['top','left'], 위쪽 및 왼쪽 문자열을 저장하는 배열을 선언합니다.
2.var b=0, 변수 b를 선언하고 값 0을 할당합니다.
3.var u, 타이머 함수 setInterval()의 반환 값으로 변수를 선언합니다.
4.function fudu(){}, 함수를 선언합니다.
5.win.style[a[b%2]]=(b )%4<2?"0px":"4px", 이 코드는 핵심 부분이며, b%2 모듈로 연산의 값은 0 또는 1입니다. 이는 배열 a의 인덱스 값이 되며 배열의 값을 가져오는 데 사용됩니다. style[a[b%]와 style.top의 효과는 동일합니다. ]]=(b )%4<2?"0px":"4px" 이런 식으로 모듈로를 취하여 값이 2보다 작은지 확인하여 div의 상단 및 왼쪽 속성에 값을 할당합니다.
6.if(b>15) {clearInterval(u); b=0}, b 값이 15보다 크면 디더링을 중지하고 b 값을 0으로 재설정합니다.
7.function zd(){}, 함수를 선언합니다.
8.clearInterval(u), 타이머 함수의 실행을 중지합니다. 이 코드는 두 개의 지터가 서로 영향을 미치기 때문에 버튼을 계속 클릭할 때 중지되지 않는 문제를 방지하기 위한 것입니다.
9.u=setInterval(fudu,30), 타이머 함수를 사용하여 fudu 함수를 지속적으로 호출합니다.
10.window.onload=function(){}, 문서 콘텐츠가 완전히 로드되면 함수의 코드를 실행합니다.
11.var bt=document.getElementById("bt"), 버튼 객체를 가져옵니다.
12.var win=document.getElementById("win"), div 개체를 가져옵니다.
13.bt.onclick=zd, 버튼에 대한 이벤트 핸들러 함수를 등록합니다.
다음은 QQ 창 흔들림을 흉내낸 자바스크립트 코드입니다
QQ 채팅창의 흔들림 효과를 모방한 매우 독특한 흔들림 효과입니다. JavaScript 코드로 구현되었습니다. 이 가짜 채팅창으로 QQ의 흔들림 효과와 정말 유사할 것이라고는 생각하지 못했습니다. 재미있는.
<title>仿QQ窗口抖动</title> <img id="win" style='position:relative' src="/jscss/demoimg/qqwinows.jpg"> <br /><br /> <button onclick="zd()">让我抖一下!</button> <script > function zd(u){ var a=['top','left'],b=0; u=setInterval(function(){ document.getElementById('win').style[a[b%2]]=(b++)%4<2?0:4; if(b>15){clearInterval(u);b=0} },32) } </script>
위 예제 코드를 통해 자바스크립트를 이용한 윈도우 지터와 QQ 윈도우 지터 구현 방법을 소개하겠습니다. 이 코드가 도움이 되길 바랍니다.