• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account settings Log out
  • Favorite
  • Project
  • All
Loading...
  • Log in
  • Sign up
yangart / sejongOn_publish star
  • Project homeH
  • CodeC
  • IssueI
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB 1
  • Files
  • Commit
  • Branches
sejongOn_publishhtmlcbe2025managerclassViewerclassViewer2.html
Download as .zip file
File name
Commit message
Commit date
html
Merge branch 'master' of http://git.dataeum.kr/yangart/sejongOn_publish
09-29
resources/front/site/SITE_00000
Merge branch 'master' of http://git.dataeum.kr/yangart/sejongOn_publish
09-29
.gitignore
퍼블 세팅
09-23
README.md
Update README.md
09-23
File name
Commit message
Commit date
cbe2025
퍼블 세팅
09-23
onSejong
Merge branch 'master' of http://git.dataeum.kr/yangart/sejongOn_publish
09-29
File name
Commit message
Commit date
_module
퍼블 세팅
09-23
common
퍼블 세팅
09-23
manager
퍼블 세팅
09-23
member
퍼블 세팅
09-23
parents
퍼블 세팅
09-23
student
퍼블 세팅
09-23
temp
퍼블 세팅
09-23
index.html
퍼블 세팅
09-23
File name
Commit message
Commit date
_layout
퍼블 세팅
09-23
analytics
퍼블 세팅
09-23
class
퍼블 세팅
09-23
classViewer
퍼블 세팅
09-23
contents
퍼블 세팅
09-23
js
퍼블 세팅
09-23
layout
퍼블 세팅
09-23
sub
퍼블 세팅
09-23
textbookViewer
퍼블 세팅
09-23
tutorial
퍼블 세팅
09-23
util
퍼블 세팅
09-23
viewer
퍼블 세팅
09-23
File name
Commit message
Commit date
_layout
퍼블 세팅
09-23
ifrCnt
퍼블 세팅
09-23
classViewer.html
퍼블 세팅
09-23
classViewer2.html
퍼블 세팅
09-23
classViewer_URL.html
퍼블 세팅
09-23
classViewer_painter.html
퍼블 세팅
09-23
classViewer_painter_doc.html
퍼블 세팅
09-23
classViewer_painter_doc_old.html
퍼블 세팅
09-23
classViewer_quiz.html
퍼블 세팅
09-23
classViewer_test_done.html
퍼블 세팅
09-23
classViewer_weboffice.html
퍼블 세팅
09-23
index.html
퍼블 세팅
09-23
pop_addArchive.html
퍼블 세팅
09-23
pop_addFile.html
퍼블 세팅
09-23
pop_addLink.html
퍼블 세팅
09-23
pop_addNewWrite.html
퍼블 세팅
09-23
pop_bookmark.html
퍼블 세팅
09-23
pop_chat.html
퍼블 세팅
09-23
pop_savePackage.html
퍼블 세팅
09-23
pop_savePackage_new.html
퍼블 세팅
09-23
pop_searchContents.html
퍼블 세팅
09-23
pop_searchContents_searchAll.html
퍼블 세팅
09-23
pop_timer.html
퍼블 세팅
09-23
tutorial_classViewer1.html
퍼블 세팅
09-23
tutorial_classViewer2.html
퍼블 세팅
09-23
tutorial_classViewer3.html
퍼블 세팅
09-23
tutorial_classViewer4.html
퍼블 세팅
09-23
yanghyo 09-23 483aa79 퍼블 세팅 UNIX
Raw Open in browser Change history
<!DOCTYPE html> <html lang="ko"> <head> <title>온세종학교</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <meta name="format-detection" content="telephone=no"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0"> <link href="/resources/front/site/SITE_00000/css/style.css" rel="stylesheet"> <!-- 공통 plugin --> <script src="/resources/front/site/SITE_00000/js/common/jquery/jquery-3.6.0.min.js"></script> <script src="/resources/front/site/SITE_00000/js/common/jquery/jquery-ui.min.js"></script> <!-- //공통 plugin --> <!-- 페이지 plugin--> <!-- //페이지 plugin--> <!-- 공통 퍼블 layout: 개발시 삭제--> <!-- <script src="/resources/front/site/SITE_00000/js/_layout.js"></script> --> <!--//퍼블 layout--> <!-- 공통 메뉴 js--> <!-- //공통 메뉴 js --> <!--공통 퍼블 js--> <script src="/resources/front/site/SITE_00000/js/common.js"></script> <script src="/resources/front/site/SITE_00000/js/common-custom.js"></script> <!--//공통 퍼블 js--> </head> <body> <!--toast--> <div class="toast"></div> <!--popup--> <div class="dim"></div> <div class="popup-modal sm" data-popuppub="timer"> <div class="pop-header"> <h1>타이머</h1> </div> <div class="pop-body"> <div class="timer-area"> <div class="timer-input-area"> <div class="input-area"> <input type="number" value="00" min="0" max="99" readonly class="input-minute"> <span>:</span> <input type="number" value="00" min="0" max="59" readonly class="input-second"> </div> <div class="sound-area"> <label class="btn-sound"> <input type="checkbox" checked><span class="btn circle overlay ico-sound">소리</span> </label> </div> </div> <div class="control-area"> <button type="button" class="btn-play-toggle btn lg cta ico-play">시작</button> <button type="button" class="btn-reset btn ghost circle ico-refresh">재설정</button> </div> <ul class="option-area"> <li class="option-minute"> <div class="setting-area"> <button type="button" class="btn circle sm ico-down"></button> <span>분</span> <button type="button" class="btn circle sm ico-up"></button> </div> <div class="btn-group"> <button class="btn sm ico-plus">5분</button> <button class="btn sm ico-plus">10분</button> <button class="btn sm ico-plus">30분</button> </div> </li> <li class="option-second"> <div class="setting-area"> <button type="button" class="btn circle sm ico-down"></button> <span>초</span> <button type="button" class="btn circle sm ico-up"></button> </div> <div class="btn-group"> <button class="btn sm ico-plus">5초</button> <button class="btn sm ico-plus">10초</button> <button class="btn sm ico-plus">30초</button> </div> </li> </ul> </div> </div> <button type="button" class="pop-close cls"><span class="txt-hide">팝업닫기</span></button> </div> <script> // 과정추가 $(document).on('click', '.btn-menu-add', function (e) { e.stopPropagation(); $('.menu-add-area').toggleClass('is-active'); }); $(document).on('click', function () { $('.menu-add-area').removeClass('is-active'); }); //과정 순서 변경 $(".class-viewer-nav>ul").sortable({ handle: $(".class-viewer-nav>ul>li").find(".ico-move"), containment: "parent", update: function (event, ui) { var $list = $(this).children("li"); $list.each(function () { var $li = $(this); var newVal = $(this).index() + 1; $(this).find(".num").html(newVal); }); }, }); document.addEventListener('DOMContentLoaded', function () { // 타이머 const timerModule = (function () { let timerInterval; let isRunning = false; let totalSeconds = 0; const audio = new Audio("/resources/front/site/SITE_00000/images/timer/tick.mp3"); const startStopBtn = document.querySelector('.btn-play-toggle'); const resetBtn = document.querySelector('.btn-reset'); const minuteInput = document.querySelector('.input-minute'); const secondInput = document.querySelector('.input-second'); const soundCheckbox = document.querySelector('.btn-sound input[type="checkbox"]'); const minutePlusBtns = document.querySelectorAll('.option-minute .btn-group .btn'); const secondPlusBtns = document.querySelectorAll('.option-second .btn-group .btn'); const minuteUpBtn = document.querySelector('.option-minute .setting-area .ico-up'); const minuteDownBtn = document.querySelector('.option-minute .setting-area .ico-down'); const secondUpBtn = document.querySelector('.option-second .setting-area .ico-up'); const secondDownBtn = document.querySelector('.option-second .setting-area .ico-down'); const optionCont = document.querySelector('.option-area'); const popCloseBtn = document.querySelector('.pop-close'); const dim = document.querySelector('.dim'); // 시간 갱신 함수 function updateDisplay() { const minutes = Math.floor(totalSeconds / 60); const seconds = totalSeconds % 60; minuteInput.value = String(minutes).padStart(2, '0'); secondInput.value = String(seconds).padStart(2, '0'); } // .option-container에 is-disabled 추가 function disableOptions() { optionCont.classList.add('is-disabled'); } // .option-container에서 is-disabled 제거 function enableOptions() { optionCont.classList.remove('is-disabled'); } // 소리 재생 함수 function playAudio() { if (soundCheckbox.checked) { audio.play().catch((error) => { console.error('소리 재생 오류:', error); }); } } // 소리 정지 함수 function stopAudio() { audio.pause(); audio.currentTime = 0; // 재생 위치 초기화 } // 소리 체크박스 상태 변경 이벤트 soundCheckbox.addEventListener('change', () => { if (soundCheckbox.checked && isRunning) { playAudio(); } else { stopAudio(); } }); // 타이머 시작/정지 function startStopTimer() { if (isRunning) { clearInterval(timerInterval); stopAudio(); startStopBtn.textContent = '시작'; enableOptions(); } else { if (totalSeconds === 0) { toastShow('시간을 세팅해주세요.'); return; } if (soundCheckbox.checked) { playAudio(); } disableOptions(); timerInterval = setInterval(() => { if (totalSeconds > 0) { totalSeconds--; updateDisplay(); } else { clearInterval(timerInterval); toastShow('타이머 종료'); stopAudio(); startStopBtn.textContent = '시작'; enableOptions(); isRunning = false; } }, 1000); startStopBtn.textContent = '정지'; } isRunning = !isRunning; } // 타이머 재설정 function resetTimer() { clearInterval(timerInterval); isRunning = false; totalSeconds = 0; updateDisplay(); startStopBtn.textContent = '시작'; stopAudio(); enableOptions(); } // 분/초 조정 함수 function adjustTime(inputElement, adjustment, maxValue) { let currentValue = parseInt(inputElement.value, 10); currentValue += adjustment; if (currentValue > maxValue) currentValue = maxValue; if (currentValue < 0) currentValue = 0; // 최소값을 0으로 제한 inputElement.value = String(currentValue).padStart(2, '0'); } // 분 조정 함수 function adjustMinutes(inputElement, minutesToAdd) { let currentValue = parseInt(inputElement.value, 10); currentValue += minutesToAdd; if (currentValue > 60) currentValue = 60; if (currentValue < 0) currentValue = 0; // 최소값을 0으로 제한 inputElement.value = String(currentValue).padStart(2, '0'); } // 초 조정 함수 function adjustSeconds(inputElement, secondsToAdd) { let currentValue = parseInt(inputElement.value, 10); currentValue += secondsToAdd; if (currentValue > 59) currentValue = 59; if (currentValue < 0) currentValue = 0; // 최소값을 0으로 제한 inputElement.value = String(currentValue).padStart(2, '0'); } // 시간 추가 버튼들 function addMinutes(index) { const minutesToAdd = [5, 10, 30][index]; totalSeconds += minutesToAdd * 60; // 분 최대값 60으로 제한 if (totalSeconds > 60 * 60) { totalSeconds = 60 * 60; } updateDisplay(); } function addSeconds(index) { const secondsToAdd = [5, 10, 30][index]; totalSeconds += secondsToAdd; // 초가 60초를 넘지 않도록 제한 if (totalSeconds > 60 * 60) { totalSeconds = 60 * 60; } updateDisplay(); } // 이벤트 리스너 등록 startStopBtn.addEventListener('click', startStopTimer); resetBtn.addEventListener('click', resetTimer); minutePlusBtns.forEach((btn, index) => btn.addEventListener('click', () => addMinutes(index))); secondPlusBtns.forEach((btn, index) => btn.addEventListener('click', () => addSeconds(index))); minuteUpBtn.addEventListener('click', () => adjustMinutes(minuteInput, 1)); minuteDownBtn.addEventListener('click', () => adjustMinutes(minuteInput, -1)); secondUpBtn.addEventListener('click', () => adjustSeconds(secondInput, 1)); secondDownBtn.addEventListener('click', () => adjustSeconds(secondInput, -1)); popCloseBtn.addEventListener('click', resetTimer); dim.addEventListener('click', resetTimer); return { resetTimer, startStopTimer, updateDisplay, }; })(); }); </script> </body> </html>

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
Sign in with github login with Google Sign in with Google
Reset password | Sign up