File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<!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 class="tutorial">
<section class="class-viewer">
<header class="viewer-header">
<div class="l-area">
<!-- <button type="button" class="btn-viewer-menu btn circle ico-menu sm">메뉴</button> -->
<div class="viewer-tit">
<h1 class="">[3학년 1학기] 5. 길이와 시간_시간은 어떻게 더할까요_6차시</h1>
</div>
</div>
<div class="r-area">
<div class="btn-group">
<!-- <button type="button" class="btn sm"><i class="ico-bookmark"></i> 북마크</button>
<button type="button" class="btn sm"><i class="ico-book"></i> 학생뷰어보기</button>
<button type="button" class="btn sm primary"><i class="ico-save"></i> 저장</button> -->
<button type="button" class="btn sm"><i class="ico-logout"></i> 나가기</button>
</div>
</div>
</header>
<div class="viewer-body">
<div class="viewer-menu-area">
<div class="viewer-menu-header">
<div class="menu-add-area">
<button class="btn-menu-add"><span>과정추가</span></button>
<div class="menu-add-option" >
<button type="button">파일 업로드</button>
<button type="button">링크추가</button>
<button type="button">나의 보관함에서 선택</button>
<button type="button">콘텐츠에서 검색</button>
<button type="button">웹오피스 추가</button>
<button type="button">화이트 보드</button>
<button type="button">새로 만들기</button>
</div>
</div>
</div>
<div class="viewer-menu-body">
<nav class="viewer-nav">
<ul>
<!-- <li class="is-active">
<a href="#none" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">1</span>
<div class="fnc order-front">
<button type="button" class="ico-delete order-front">삭제</button>
<i class="ico-move">이동</i>
</div>
</div>
<div class="nav-cont">
<div class="img-area">
<img src="/resources/front/site/SITE_00000/images/temp/img_tutorial_class.jpg" alt="">
</div>
<div class="txt-area">
<div class="label-area"><span class="label-cont-video">영상</span></div>
<div class="txt">파일명파일명 파일명파일명파일명파일명파일명파일명파일명파일명파일명파일명.mp4</div>
</div>
</div>
</li>
<li>
<a href="#none" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">2</span>
<div class="fnc order-front">
<button type="button" class="ico-delete order-front">삭제</button>
<i class="ico-move">이동</i>
</div>
</div>
<div class="nav-cont">
<div class="txt-area">
<div class="label-area"><span class="label-cont-video">영상</span></div>
<div class="txt">파일명.mp4</div>
</div>
</div>
</li> -->
</ul>
</nav>
</div>
<button type="button" class="btn-viewer-menu-toggle"><span class="txt-hide">메뉴 열기&닫기</span></button>
</div>
<div class="viewer-cont">
<div class="wrap-xsm viewer-cont-add-area">
<p>수업을 구성해보세요.</p>
<ul>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-folder.svg" alt="" aria-hidden="true">
</figure>
<span>파일 업로드</span>
</li>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-link.svg" alt="" aria-hidden="true">
</figure>
<span>링크 추가</span>
</li>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-filebox.svg" alt="" aria-hidden="true">
</figure>
<span>나의 보관함에서 선택</span>
</li>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-search.svg" alt="" aria-hidden="true">
</figure>
<span>콘텐츠에서 검색</span>
</li>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-page.svg" alt="" aria-hidden="true">
</figure>
<span>웹오피스 추가</span>
</li>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-whiteboard.svg" alt="" aria-hidden="true">
</figure>
<span>화이트 보드</span>
</li>
<li>
<button type="button" class="lnk-full">추가</button>
<figure>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-pencil.svg" alt="" aria-hidden="true">
</figure>
<span>새로 만들기</span>
</li>
</ul>
</div>
<div class="viewer-cont-etc">
<button type="button" class="btn circle overlay ico-bookmark toggle">북마크</button>
</div>
<div class="viewer-fnc-cont">
<!-- 색연필 -->
<div class="viewer-painter paint-target"></div>
</div>
<!-- <div class="viewer-cont-fnc">
<div class="viewer-paging fnc-section">
<button class="btn icon-only ico-pv" disabled>이전</button>
<button class="btn icon-only ico-fw">다음</button>
</div>
<div class="fnc-section">
<label for="completionTime" class="fnc-tit">이수시간</label>
<input type="number" id="completionTime" style="width:48px" max="999" value="0">
<select title="시간선택" class="sm">
<option>초</option>
<option>분</option>
</select>
</div>
<div class="fnc-section">
<fieldset class="checkradio-custom-row-area-inverse">
<legend>문항타입 선택</legend>
<div class="checkradio">
<input type="radio" name="quizType" id="quizTypeClass" checked>
<label for="quizTypeClass">수업용</label>
</div>
<div class="checkradio">
<input type="radio" name="quizType" id="quizTypeCBT">
<label for="quizTypeCBT">CBT용</label>
</div>
</fieldset>
</div>
<div class= "fnc-section">
<div class="input-num-area">
<input type="number" class="input-num" placeholder="점수 입력" title="점수 입력">
<span>점</span>
</div>
</div>
<div class="fnc-section btn-group">
<a href="#none" class="btn ico-edit sm primary">수정하기</a>
<a href="#none" class="btn sm ico-download">다운로드</a>
</div>
</div> -->
</div>
</div>
<!-- <ul class="viewer-tool">
<li>
<button type="button" class="btn-painter-toggle lnk-full">판서</button>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-pencil.svg" alt="" aria-hidden="true">
<strong>판서</strong>
</li>
<li>
<button type="button" class="lnk-full">채팅 열기&닫기</button>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-chat.svg" alt="" aria-hidden="true">
<strong>채팅</strong>
<span class="badge min">새 채팅</span>
</li>
<li>
<button type="button" class="lnk-full btn-timer-toggle" onclick="popupOpenPub('timer')">타이머 열기&닫기</button>
<img src="/resources/front/site/SITE_00000/images/common/ico-img/ico-img-hourglass.svg" alt="" aria-hidden="true">
<strong>타이머</strong>
</li>
</ul> -->
</section>
<!--toast-->
<div class="toast"></div>
<!--popup-->
<div class="dim"></div>
<div class="popup-modal xlg" data-popuppub="popupmodal">
<div class="pop-header">
<h1>나의 보관함에서 추가</h1>
</div>
<div class="pop-body">
<div class="fnc-extend-area">
<div class="extend-default-area">
<div class="l-area"></div>
<div class="r-area">
<fieldset class="search-area">
<legend>검색</legend>
<div class="search">
<input type="text" placeholder="검색어를 입력하세요" title="검색어를 입력하세요">
<button class="btn ico-search">검색</button>
</div>
</fieldset>
<fieldset class="checkradio-custom-row-area">
<legend>리스트형 석택</legend>
<div class="checkradio item-type-checkradio">
<input type="radio" title="피드형 선택" name="itemtype" checked="" id="item-type-feed">
<label for="item-type-feed"><i class="ico-thumblist"></i><span class="txt-hide">썸네일형</span></label>
</div>
<div class="checkradio item-type-checkradio">
<input type="radio" title="썸네일형 선택" name="itemtype" id="item-type-thumb">
<label for="item-type-thumb"><i class="ico-thumbnail"></i><span class="txt-hide">피드형</span></label>
</div>
<div class="checkradio item-type-checkradio">
<input type="radio" title="테이블형 선택" name="itemtype" id="item-type-table">
<label for="item-type-table"><i class="ico-list"></i><span class="txt-hide">테이블형</span></label>
</div>
</fieldset>
</div>
</div>
<div class="extend-filter-area">
<div class="l-area">
<fieldset class="filter-group">
<legend>과목 선택</legend>
<select title="과목 선택">
<option value="">전체 과목</option>
</select>
</fieldset>
<fieldset class="filter-group">
<legend>필터 선택</legend>
<div class="checkradio">
<input type="radio" id="extend-filter0" name="r1" checked>
<label for="extend-filter0">전체</label>
</div>
<div class="checkradio">
<input type="radio" id="extend-filter1" name="r1">
<label for="extend-filter1">비공개</label>
</div>
<div class="checkradio">
<input type="radio" id="extend-filter3" name="r1">
<label for="extend-filter3">담은보관함</label>
</div>
</fieldset>
</div>
<div class="r-area"></div>
</div>
</div>
<ul class="tabs-nav-lg">
<li><a href="#none" class="is-active" title="선택됨">영상</a></li>
<li><a href="#none">이미지</a></li>
<li><a href="#none">문서</a></li>
<li><a href="#none">문항</a></li>
<li><a href="#none">평가지</a></li>
<li><a href="#none">수업꾸러미</a></li>
</ul>
<h2 class="txt-hide">영상</h2>
<ul class="item-type-list item-type-feed">
<li>
<a href="#none" class="lnk-full">상세보기</a>
<div class="item-checkradio checkradio order-front">
<input type="checkbox" id="itemchk0" class="icon-only">
<label for="itemchk0">선택</label>
</div>
<div class="img-area">
<figure>
<img src="/resources/front/site/SITE_00000/images/temp/img_tutorial_class.jpg" alt="이미지">
</figure>
</div>
<div class="txt-area">
<div class="label-area">
</div>
<h4 class="item-title">시간의 합을 알아봅시다</h4>
<ul class="info-inline-list">
<li>
<i class="ico-profile" title="작성자"></i>
<div class="txt-area">
홍길동
</div>
</li>
<li>
<i class="ico-visibility" title="조회수"></i>
<div class="txt-area">
246
</div>
</li>
<li>
<i class="ico-calendar" title="작성일"></i>
<div class="txt-area">
25.01.01
</div>
</li>
<li>
<strong class="info-tit">출처</strong>
<div class="txt-area">
일반사용자
</div>
</li>
</ul>
<div class="txt editor-cont">
초 단위까지의 시간의 덧셈과 뺄셈을 할 수 있다.
</div>
</div>
<div class="item-btn-area order-front" style="z-index: 100;">
<div class="tutorial-area right">
<a href="#none" class="btn primary">추가</a>
<div class="tutorial-msg">
<span class="tutorial-num">2 / 4</span>
<div class="txt">추가하고 싶은 콘텐츠를 선택해서 추가버튼을 눌러주세요.</div>
<div class="fnc">
<button class="btn ghost" id="btn-win-close">종료</button>
<a href="tutorial_classViewer3.html" class="btn">다음</a>
</div>
</div>
</div>
</div>
</li>
</ul>
<ul class="pagenation">
<li class="ppv">
<a href="#none" class="btn ico-ppv circle sm" title="전체 목록에서 가장 처음 목록으로 이동합니다">처음으로</a>
</li>
<li class="pv">
<a href="#none" class="btn ico-pv circle sm" title="이전 목록으로 이동합니다">이전으로</a>
</li>
<li class="current">
<a href="#none" title="1번째 목록으로 이동합니다">1</a>
</li>
<li>
<a href="#none" title="2번째 목록으로 이동합니다">2</a>
</li>
<li>
<a href="#none" title="3번째 목록으로 이동합니다">3</a>
</li>
<li>
<a href="#none" title="4번째 목록으로 이동합니다">4</a>
</li>
<li>
<a href="#none" title="5번째 목록으로 이동합니다">5</a>
</li>
<li class="fw">
<a href="#none" class="btn ico-fw circle sm" title="다음 목록으로 이동합니다">다음으로</a>
</li>
<li class="ffw">
<a href="#none" class="btn ico-ffw circle sm" title="전체 목록에서 가장 마지막 목록으로 이동합니다">끝으로</a>
</li>
</ul>
</div>
<div class="pop-footer">
<div class="pop-btn-cont">
<button type="button" class="btn" onclick="popupClosePub('popupmodal')">취소</button>
<button type="button" class="btn primary" onclick="popupClosePub('popupmodal')">선택 추가</button>
</div>
</div>
<button type="button" class="pop-close"><span class="txt-hide">팝업닫기</span></button>
</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).ready(function() {
popupOpenPub('popupmodal');
});
// 과정추가
$(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,
};
})();
});
//창닫기
document.getElementById("btn-win-close").addEventListener("click", function () {
window.close();
});
</script>
</body>
</html>