인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

나는나님의 프로필 이미지

작성한 질문수

[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기

QnA 디자인

answer 여러 개 나옵니다.

작성

·

309

1

아무 선택지나 누른 후 새로고침을 하고 다시 시작하기 버튼을 누르면 answer가 여러개가 나옵니다. 크게 불편함은 없지만 신경이 쓰이는데 없애는 방법은 없을까요?
 

답변 3

0

thehrto12님의 프로필 이미지

아래처럼 하니 해결됐습니다

let isClickable = true;

function start() {   
    
    main.style.WebkitAnimation = "fadeOut 1s";
    main.style.animation = "fadeOut 1s";
    setTimeout(()=>{            
        qna.style.WebkitAnimation = "fadeIn 1s";
        qna.style.animation = "fadeIn 1s";
        isClickable = false;
        setTimeout(()=>{
            main.style.display = "none";    
            qna.style.display = "block";        
        },450)
        let qIdx = 0;
        goNext(qIdx);        
    },450);     
}


function begin() {
    if(!isClickable) {
        return false;
    }
    isClickable = false;

    start();

    setTimeout(()=>{
        isClickable = true;
    }, 1000)
}

0

조병규님의 프로필 이미지

새로고침하고 시작하기 버튼을 빠르게 누르면 사라지는 도중에 버튼이 비활성되지 않아 begin() 함수가 여러번 호출되는 것 같습니다.

var start = false;

function begin() {

  if(start) return;

 ...

}

로 임시로 여러번 뜨지 않게 해봤습니다.

판다코딩님의 프로필 이미지
판다코딩
지식공유자

아하!

그 문제라면 button의 css에 disabled 속성을 걸어주면,

더 간편하게 해결할 것 같습니다~

나는나님의 프로필 이미지
나는나
질문자

botton css가 어디있나요?

판다코딩님의 프로필 이미지
판다코딩
지식공유자

시작하기 버튼을 클릭했을 때, 시작하기 버튼에 disabled css 속성을 추가해주면 될 것 같습니다~

나는나님의 프로필 이미지
나는나
질문자

아 이제 안 나오네요 빠른 답변 감사합니다~

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

https://twelvelovetype.netlify.app/

 

현재 제 수업의 코드로 배포된 사이트입니다.

질문자님이 말씀해주신 현상은 찾아볼 수 없는데,

코드가 제 수업의 내용과 다소 다른 부분이 있는 것 같습니다.

thehrto12님의 프로필 이미지

최초 질문자 님이 제시한 절차대로

  1. 시작하기 누르기

  2. 질문지 선택하기

  3. 새로고침

  4. 시작하기 연타

    하니 해당 문제가 있긴 있네요.. 참고로 begin 함수 내에 시작하기 버튼 css disable = true로 줘도 같은 문제가 발생합니다