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>
<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="">활동1) 무늬를 꾸며보는 방법 알아보기활동1) 무늬를 꾸며보는 방법 알아보기활동1) 무늬를 꾸며보는 방법 알아보기활동1) 무늬를 꾸며보는 방법 알아보기활동1) 무늬를 꾸며보는 방법 알아보기</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="javascript:changeIfr(1)" 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/img1.jpg" alt="">
</div>
<div class="txt-area">
<div class="label-area"><span class="label-cont-img">이미지</span></div>
<div class="txt">이미지</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(2)" 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">영상</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(3)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">3</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">유튜브</div>
</div>
</div>
</li>
<!-- <li>
<a href="javascript:changeIfr(4)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">4</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-doc">문서</span></div>
<div class="txt">문서</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(5)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">5</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-quiz">문항</span></div>
<div class="txt">문항</div>
</div>
</div>
</li> -->
<li>
<a href="javascript:changeIfr(6)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">6</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-whiteboard
">화이트보드</span></div>
<div class="txt">화이트보드</div>
</div>
</div>
</li>
<li class="is-active">
<a href="javascript:changeIfr(1)" 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/img1.jpg" alt="">
</div>
<div class="txt-area">
<div class="label-area"><span class="label-cont-img">이미지</span></div>
<div class="txt">이미지</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(2)" 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">영상</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(3)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">3</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">유튜브</div>
</div>
</div>
</li>
<!-- <li>
<a href="javascript:changeIfr(4)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">4</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-doc">문서</span></div>
<div class="txt">문서</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(5)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">5</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-quiz">문항</span></div>
<div class="txt">문항</div>
</div>
</div>
</li> -->
<li>
<a href="javascript:changeIfr(6)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">6</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-whiteboard
">화이트보드</span></div>
<div class="txt">화이트보드</div>
</div>
</div>
</li>
<li class="is-active">
<a href="javascript:changeIfr(1)" 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/img1.jpg" alt="">
</div>
<div class="txt-area">
<div class="label-area"><span class="label-cont-img">이미지</span></div>
<div class="txt">이미지</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(2)" 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">영상</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(3)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">3</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">유튜브</div>
</div>
</div>
</li>
<!-- <li>
<a href="javascript:changeIfr(4)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">4</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-doc">문서</span></div>
<div class="txt">문서</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(5)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">5</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-quiz">문항</span></div>
<div class="txt">문항</div>
</div>
</div>
</li> -->
<li>
<a href="javascript:changeIfr(6)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">6</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-whiteboard
">화이트보드</span></div>
<div class="txt">화이트보드</div>
</div>
</div>
</li>
<li class="is-active">
<a href="javascript:changeIfr(1)" 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/img1.jpg" alt="">
</div>
<div class="txt-area">
<div class="label-area"><span class="label-cont-img">이미지</span></div>
<div class="txt">이미지</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(2)" 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">영상</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(3)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">3</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">유튜브</div>
</div>
</div>
</li>
<!-- <li>
<a href="javascript:changeIfr(4)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">4</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-doc">문서</span></div>
<div class="txt">문서</div>
</div>
</div>
</li>
<li>
<a href="javascript:changeIfr(5)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">5</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-quiz">문항</span></div>
<div class="txt">문항</div>
</div>
</div>
</li> -->
<li>
<a href="javascript:changeIfr(6)" class="lnk-full">상세보기</a>
<div class="nav-info">
<span class="num">6</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-whiteboard
">화이트보드</span></div>
<div class="txt">화이트보드</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="iframe-area">
<input type="hidden" id="d8f68ffff73a47ff9b9185caf2452b0c_1" value="https://devdcuai.cbe.go.kr/contents/classLesson/202504/20250402125701229/20250402125701229_0001.jpg">
<input type="hidden" id="d8f68ffff73a47ff9b9185caf2452b0c_2" value="https://devdcuai.cbe.go.kr/contents/classLesson/202504/20250402125701229/20250402125701229_0002.jpg">
<div class="iframe-doc-area">
<iframe src="/resources/front/site/SITE_00000/images/temp/img-pdf.jpg" data-link="" class="view_iframe"></iframe>
<div class="doc-fnc-area">
<button class="btn circle ico-pv">이전</button>
<button class="btn circle ico-fw">다음</button>
</div>
</div>
</div>
<div class="viewer-cont-etc">
<button type="button" class="btn circle overlay ico-bookmark toggle">북마크</button>
</div>
<div class="viewer-cont-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>
<div class="time-set">
<input type="number" id="completionTimeMin" style="width:40px" value="0" oninput="limitInput(this, 3)" min="0" max="999">
<span>분</span>
<input type="number" id="completionTimeSec" style="width:40px" value="0" oninput="limitInput(this, 2)" min="0" max="59">
<span>초</span>
</div>
</div>
<script>
function limitInput(input, maxLength) {
if (input.value.length > maxLength) {
input.value = input.value.slice(0, maxLength);
}
// 초 입력 최대 59
if (input.id === "completionTimeSec") {
let max = input.max;
if (parseInt(input.value) > max) {
toastShow('초는 최대 ' + max + '까지 입력 가능합니다.');
input.value = ""; // 초과 입력 시 값을 초기화
}
}
}
</script>
<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>
<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>
</div>
</section>
<!--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');
});
//과정 순서 변경
$(".viewer-nav>ul").sortable({
handle: $(".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>
<!-- 모듈로 스크립트를 불러오기 -->
<script type="module">
import { initColouredPenciles } from '/resources/front/site/SITE_00000/js/custom/module/colouredPencilesSvg.js';
</script>
<script>
// colouredPencilesSvg.js 데이터 전달 스크립트
const cpInstanceData = (data) => {
if (window.cpInstance) {
window.cpInstance.setDataParam(data);
} else {
// console.log('cpInstance 아직 정의되지 않음, 500ms 후 다시 시도.');
setTimeout(cpInstanceData, 500, data); // cpInstance 정의 전까지 500ms 간격으로 재시도
}
}
const cpInstanceSave = () => {
if (window.cpInstance) {
window.cpInstance.saveDrawing();
} else {
// console.log('cpInstance 아직 정의되지 않음, 500ms 후 다시 시도.');
setTimeout(cpInstanceSave, 500, data); // cpInstance 정의 전까지 500ms 간격으로 재시도
}
}
// 페이지 로드 시 사용자 키 및 콘텐츠 키 전달
window.addEventListener('DOMContentLoaded', () => {
const page = 0;
cpInstanceData({ userKey: 'testuser', contentsKey: `ifrCnt_${page}` }); // 사용자 키 설정
});
// 콘텐츠 변경 시, 콘텐츠 키 발행 및 전달
const changeIfr = (page) => {
cpInstanceSave(); // 페이지 이동 전 저장
const ifr = document.querySelector('.iframe-area iframe');
ifr.src = `ifrCnt/ifrCnt_${page}.html`;
cpInstanceData({ contentsKey: `ifrCnt_${page}` }); // 콘텐츠 키 설정
}
</script>
</body>
</html>