JavaScript로 카드 놀이를 넘기는 애니메이션을 만들려고했습니다.
소개
카드를 넘기는 애니메이션을 만들어 보았습니다.
1. 폴더 구성
폴더 구성은 다음과 같습니다.
.
├── card_turning.html
├── cardTurning.js
├── clover11.js
└── backcard.png
2. 구현
코드는 다음과 같습니다.
card_turning.html<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>カードを捲るアニメーションプログラム</title>
</head>
<body>
</div>
<div>
<img id='img' src='./backcard.png'/>
</div>
<div>
<button id="button">めくる</button>
</div>
<div>
<script src='./script.js'></script>
</body>
</html>
다음은 JavaScript 코드입니다.
cardTurning.jsconst buttonElem = document.getElementById('button');
let isBack = true;
if(buttonElem !== null){
buttonElem.addEventListener('click', () => {
const element = document.getElementById('img');
if(element !== null){
let imagePath = isBack ? './clover11.png' : './backcard.png';
rotationAnimationLoop(element, imagePath, 0);
isBack = !isBack;
}
});
}
/* カードを捲る処理を指定された角度になるまでループさせる関数
* @param {Object} element imgタグのElement Object
* @param {String} imagePath 画像のパス
* @return {Number} deg カードの回転角度
*/
const rotationAnimationLoop = (element, imagePath, deg) =>{
if( deg <= 180 ){
rotationAnimation(element, imagePath, deg);
setTimeout(
() => {
rotationAnimationLoop(element, imagePath, deg+= 5 )
},
1 );
}
}
/* カードを捲る処理
* @param {Object} element imgタグのElement Object
* @param {String} imagePath 画像のパス
* @return {Number} deg カードの回転角度
*/
const rotationAnimation = (element, imagePath, deg) =>{
if ( 90 === deg ){
element.src = imagePath;
}else {
element.style.webkitTransform = 'rotateY(' + deg + 'deg)';
}
}
3. 결과
결과는, 이런 느낌이 됩니다.
Reference
이 문제에 관하여(JavaScript로 카드 놀이를 넘기는 애니메이션을 만들려고했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rspmharada7645/items/f32875b723ec8838c9f1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.
├── card_turning.html
├── cardTurning.js
├── clover11.js
└── backcard.png
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>カードを捲るアニメーションプログラム</title>
</head>
<body>
</div>
<div>
<img id='img' src='./backcard.png'/>
</div>
<div>
<button id="button">めくる</button>
</div>
<div>
<script src='./script.js'></script>
</body>
</html>
const buttonElem = document.getElementById('button');
let isBack = true;
if(buttonElem !== null){
buttonElem.addEventListener('click', () => {
const element = document.getElementById('img');
if(element !== null){
let imagePath = isBack ? './clover11.png' : './backcard.png';
rotationAnimationLoop(element, imagePath, 0);
isBack = !isBack;
}
});
}
/* カードを捲る処理を指定された角度になるまでループさせる関数
* @param {Object} element imgタグのElement Object
* @param {String} imagePath 画像のパス
* @return {Number} deg カードの回転角度
*/
const rotationAnimationLoop = (element, imagePath, deg) =>{
if( deg <= 180 ){
rotationAnimation(element, imagePath, deg);
setTimeout(
() => {
rotationAnimationLoop(element, imagePath, deg+= 5 )
},
1 );
}
}
/* カードを捲る処理
* @param {Object} element imgタグのElement Object
* @param {String} imagePath 画像のパス
* @return {Number} deg カードの回転角度
*/
const rotationAnimation = (element, imagePath, deg) =>{
if ( 90 === deg ){
element.src = imagePath;
}else {
element.style.webkitTransform = 'rotateY(' + deg + 'deg)';
}
}
Reference
이 문제에 관하여(JavaScript로 카드 놀이를 넘기는 애니메이션을 만들려고했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rspmharada7645/items/f32875b723ec8838c9f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)