19个文件已删除
39个文件已修改
25个文件已添加
| | |
| | | </p> |
| | | <div class="bkbj"> |
| | | <p> |
| | | <i>making you feel more active and healthy</i> foodie /ˈfuːdi/ |
| | | <i>n.</i> 吃货;美食家 |
| | | <i>making you feel more active and healthy</i> |
| | | </p> |
| | | </div> |
| | | <p> |
| | | <i |
| | | <p>foodie /ˈfuːdi/<i>n.</i> 吃货;美食家</p> |
| | | <div class="bkbj"> |
| | | <p> |
| | | <i |
| | | >a person who is very interested in cooking and eating different |
| | | kinds of food</i |
| | | > |
| | | </p> |
| | | </div> |
| | | <p> |
| | | unique /ju<i>ˈ</i>niːk/ <i>adj.</i> 唯一的;独一无二的 |
| | | </p> |
| | | <div class="bkbj"> |
| | |
| | | "online shopping", |
| | | "facial recognition", |
| | | "electronic payment", |
| | | "intercity train", |
| | | "intercity train", |
| | | "shared bike", |
| | | "take-away service", |
| | | ], |
| | |
| | | item.value == item.answer |
| | | ? (item.isRight = true) |
| | | : (item.isRight = false); |
| | | console.log(item.value,item.answer); |
| | | } |
| | | } |
| | | this.dropdownData = dropdownDatas; |
| | |
| | | autoplay: { |
| | | //自动开始 |
| | | delay: 3000, //时间间隔 |
| | | disableOnInteraction: false, //*手动操作轮播图后不会暂停* |
| | | disableOnInteraction: false //*手动操作轮播图后不会暂停* |
| | | }, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | observeParents: true |
| | | // // 如果需要分页器 |
| | | // pagination: { |
| | | // el: (this.container ? this.container : document).querySelector( |
| | |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | |
| | | } |
| | | |
| | | /* 媒体查询做基础响应式布局 */ |
| | | @media (max-width: 430px) { |
| | | .ans-dance { |
| | | .page-box { |
| | | min-height: 750px; |
| | | } |
| | | .pg-mh { |
| | | min-height: 815px; |
| | | } |
| | | } |
| | | } |
| | | @media (max-width: 660px) { |
| | | .ans-dance { |
| | | /* 分页padding */ |
| | |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | .page-box{ |
| | | min-height: 500px; |
| | | } |
| | | .pg-mh { |
| | | min-height: 815px; |
| | | } |
| | | .share-img-box { |
| | | min-height: 460px; |
| | | } |
| | | } |
| | | } |
| | | @media (min-width: 660px) { |
| | |
| | | .video-box { |
| | | max-width: 370px; |
| | | } |
| | | .share-img-box { |
| | | min-height: 650px; |
| | | } |
| | | .audio-box { |
| | | margin-top: 20px; |
| | | flex-wrap: nowrap; |
| | | li { |
| | | width: 58%; |
| | | } |
| | | li:nth-child(2) { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 10px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-track-piece { |
| | | background-color: rgba(0, 0, 0, 0.1); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb:vertical { |
| | | height: 5px; |
| | | background-color: rgba(125, 125, 125, 0.3); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb:horizontal { |
| | | width: 5px; |
| | | background-color: rgba(125, 125, 125, 0.3); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | |
| | | <template> |
| | | <div class="chapter" num="2"> |
| | | <div class="page-box" page="4" style="min-height: auto"> |
| | | <div class="page-box" page="4"> |
| | | <div v-if="showPageList.indexOf(4) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/dy1.jpg" /> |
| | | <img src="../../assets/images/01.gif" alt="" style="width: 53%;" class="cover-img"> |
| | | <audio></audio> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="5"> |
| | |
| | | <ul class="fl fl-cl al-cn audio-box"> |
| | | <li class="fl al-cn"> |
| | | <span class="wh-nr auido-text mr-8 ">男童音</span> |
| | | <audio :src="auidoPathOne" controls></audio> |
| | | <audio :src="auidoPathOne" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay" ></audio> |
| | | </li> |
| | | <li class="fl al-cn mt-20 " > |
| | | <span class="wh-nr auido-text mr-8 "> |
| | | 女童音 |
| | | </span> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <audio :src="auidoPathTwo" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | </ul> |
| | | <h3 id="c003">黄鹤楼送孟浩然之广陵</h3> |
| | |
| | | this.auidoPathOne = await getResourcePath("2c5f6c69b0f9f7a3c03e473cb8c977f5"); |
| | | this.auidoPathTwo = await getResourcePath("e93c0fdde08be5a4386c8c863892a287"); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <div class="chapter" num="3"> |
| | | <div class="page-box" page="8" style="min-height: auto;"> |
| | | <div class="page-box" page="8"> |
| | | <div v-if="showPageList.indexOf(8) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/dy2.jpg" /> |
| | | <img src="../../assets/images/03-2.gif" alt="" style="width: 55%;" class="cover-gif"> |
| | |
| | | <p class="center"> |
| | | <img class="img-b" alt="" src="../../assets/images/04-2.gif" /> |
| | | </p> |
| | | <ul class="fl al-cn ju-bt img-state " style="margin-top: 100px;"> |
| | | <!-- <ul class="fl al-cn ju-bt img-state " style="margin-top: 100px;"> |
| | | <li style="width: 45%;"> |
| | | <img src="../../assets/images/05.gif" alt="" class="w100" :style="{opacity:(10 - num) / 10}"> |
| | | <img src="../../assets/images/05.gif" alt="" class="w100" :style="{opacity:num / 10}"> |
| | | </li> |
| | | <li style="width: 35%;"> |
| | | <img src="../../assets/images/girl.png" alt="" class="w100" :style="{opacity: num / 10}"> |
| | | <img src="../../assets/images/girl.png" alt="" class="w100" :style="{opacity: (-num) / 10}"> |
| | | </li> |
| | | </ul> |
| | | </ul> --> |
| | | <p class="center"> |
| | | <img :src="num >= 0 ? shape : girl" alt="" :style="{opacity:num >= 0 ? num / 10 : (-num) / 10 , width:num >= 0 ? '80%' : '34%'}"> |
| | | </p> |
| | | |
| | | <p class="img">“羊角式”舞姿</p> |
| | | </div> |
| | | <ul class="pb-box"> |
| | |
| | | <ul class="fl fl-cl al-cn audio-box"> |
| | | <li class="fl al-cn"> |
| | | <span class="wh-nr auido-text mr-8">男童音</span> |
| | | <audio :src="auidoPathOne" controls></audio> |
| | | <audio :src="auidoPathOne" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | <li class="fl al-cn mt-20"> |
| | | <span class="wh-nr auido-text mr-8"> |
| | | 女童音 |
| | | </span> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <audio :src="auidoPathTwo" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | </ul> |
| | | <h3 id="c006">亡羊补牢</h3> |
| | |
| | | cutTimer:null, |
| | | auidoPathOne:"", |
| | | auidoPathTwo:"", |
| | | |
| | | shape:require("../../assets/images/05.gif"), |
| | | girl:require("../../assets/images/girl.png") |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | }, |
| | | cutNum() { |
| | | this.cutTimer = setInterval(() => { |
| | | if(this.num > 0) { |
| | | if(this.num > -10) { |
| | | this.num -- |
| | | } else { |
| | | clearInterval(this.cutTimer) |
| | | this.addNum() |
| | | } |
| | | },200) |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | <template> |
| | | <div class="chapter" num="4"> |
| | | <div class="page-box" page="12" style="min-height: auto"> |
| | | <div class="page-box" page="12"> |
| | | <div v-if="showPageList.indexOf(12) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/dy3.jpg" /> |
| | | <img src="../../assets/images/07.gif" alt="" style="width: 56%;" class="cover-gif"> |
| | | <img src="../../assets/images/07.gif" alt="" style="width: 54%;" class="cover-gif"> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="13"> |
| | |
| | | <ul class="fl fl-cl al-cn audio-box"> |
| | | <li class="fl al-cn"> |
| | | <span class="wh-nr auido-text mr-8">男童音</span> |
| | | <audio :src="auidoPathOne" controls></audio> |
| | | <audio :src="auidoPathOne" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | <li class="fl al-cn mt-20"> |
| | | <span class="wh-nr auido-text mr-8"> |
| | | 女童音 |
| | | </span> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <audio :src="auidoPathTwo" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | </ul> |
| | | <h3 id="c009">小儿垂钓</h3> |
| | |
| | | this.auidoPathOne = await getResourcePath("85923e871441c541991be07fe4ce8771"); |
| | | this.auidoPathTwo = await getResourcePath("c018f7a6434abfac0b0e0da1174d643a"); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <div class="chapter" num="5"> |
| | | <div class="page-box" page="16" style="min-height: auto;"> |
| | | <div class="page-box" page="16"> |
| | | <div v-if="showPageList.indexOf(16) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/dy4.jpg" /> |
| | | <img src="../../assets/images/08.gif" alt="" style="width: 55%;" class="cover-gif"> |
| | |
| | | <ul class="fl fl-cl al-cn audio-box"> |
| | | <li class="fl al-cn"> |
| | | <span class="wh-nr auido-text mr-8">男童音</span> |
| | | <audio :src="auidoPathOne" controls></audio> |
| | | <audio :src="auidoPathOne" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | <li class="fl al-cn mt-20"> |
| | | <span class="wh-nr auido-text mr-8"> |
| | | 女童音 |
| | | </span> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <audio :src="auidoPathTwo" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | </ul> |
| | | <h3 id="c012">寻隐者不遇</h3> |
| | |
| | | this.auidoPathOne = await getResourcePath("a865ff99b91fa24d87ac81a883be54db"); |
| | | this.auidoPathTwo = await getResourcePath("66f3cc00d272a120514201e13e87fb9d"); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <div class="chapter" num="6"> |
| | | <div class="page-box" page="20" style="min-height: auto"> |
| | | <div class="page-box" page="20"> |
| | | <div v-if="showPageList.indexOf(20) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/dy5.jpg" /> |
| | | <img |
| | |
| | | alt="" |
| | | class="w100 mb-40" |
| | | /> |
| | | <div class="padding-96"> |
| | | <ul class="fl fl-cl al-cn img-state" style="margin-top: 100px"> |
| | | <li style="width: 45%"> |
| | | <img |
| | | src="../../assets/images/crane.png" |
| | | alt="" |
| | | class="w100" |
| | | :style="{ opacity: (10 - num) / 10 }" |
| | | /> |
| | | </li> |
| | | <li style="width: 35%"> |
| | | <img |
| | | src="../../assets/images/rise.png" |
| | | alt="" |
| | | class="w100" |
| | | :style="{ opacity: num / 10 }" |
| | | /> |
| | | </li> |
| | | </ul> |
| | | <p class="img">“西塞山前白鹭飞”动作</p> |
| | | <div class="padding-96 fl ju-cn al-cn fl-cl"> |
| | | <p class="center share-img-box"> |
| | | <img :src="num >= 0 ? crane : rise" alt="" :style="{opacity:num >= 0 ? num / 10 : (-num) / 10 , width:num >= 0 ? '80%' : '70%'}"> |
| | | |
| | | </p> |
| | | <p class="img">“西塞山前白鹭飞”动作</p> |
| | | </div> |
| | | <ul class="pb-box"> |
| | | <li class="ml-40"> |
| | |
| | | <ul class="fl fl-cl al-cn audio-box"> |
| | | <li class="fl al-cn"> |
| | | <span class="wh-nr auido-text mr-8">男童音</span> |
| | | <audio :src="auidoPathOne" controls></audio> |
| | | <audio :src="auidoPathOne" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | <li class="fl al-cn mt-20"> |
| | | <span class="wh-nr auido-text mr-8"> 女童音 </span> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <audio :src="auidoPathTwo" controls controlslist="noplaybackrate nodownload" class="audio" @play="audioPlay"></audio> |
| | | </li> |
| | | </ul> |
| | | <h3 id="c015">渔歌子</h3> |
| | |
| | | auidoPathOne: "", |
| | | auidoPathTwo: "", |
| | | num: 0, |
| | | crane:require("../../assets/images/crane.png"), |
| | | rise:require("../../assets/images/rise.png") |
| | | }; |
| | | }, |
| | | unmounted() { |
| | |
| | | ); |
| | | }, |
| | | addNum() { |
| | | this.addTimer = setInterval(() => { |
| | | if (this.num < 10) { |
| | | this.num++; |
| | | this.addTimer = setInterval(() => { |
| | | if(this.num < 10) { |
| | | this.num ++ |
| | | } else { |
| | | clearInterval(this.addTimer); |
| | | this.cutNum(); |
| | | clearInterval(this.addTimer) |
| | | this.cutNum() |
| | | } |
| | | }, 200); |
| | | },200) |
| | | }, |
| | | cutNum() { |
| | | this.cutTimer = setInterval(() => { |
| | | if (this.num > 0) { |
| | | this.num--; |
| | | this.cutTimer = setInterval(() => { |
| | | if(this.num > -10) { |
| | | this.num -- |
| | | } else { |
| | | clearInterval(this.cutTimer); |
| | | this.addNum(); |
| | | clearInterval(this.cutTimer) |
| | | this.addNum() |
| | | } |
| | | }, 200); |
| | | },200) |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <div class="chapter" num="7"> |
| | | <div class="page-box" page="24" style="min-height: auto"> |
| | | <div class="page-box" page="24"> |
| | | <div v-if="showPageList.indexOf(24) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/dzk.jpg" /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image26-1.jpg" |
| | | src="../../assets/images/image26-1.png" |
| | | alt="1 “故人西辞黄鹤楼”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image26-2.jpg" |
| | | src="../../assets/images/image26-2.png" |
| | | alt="2 “烟花三月下扬州”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image26-3.jpg" |
| | | src="../../assets/images/image26-3.png" |
| | | alt="3 “孤帆远影碧空尽”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image26-4.jpg" |
| | | src="../../assets/images/image26-4.png" |
| | | alt="4 “唯见长江天际流”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image27-1.jpg" |
| | | src="../../assets/images/image27-1.png" |
| | | alt="1 “羊角式”舞姿" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image27-2.jpg" |
| | | src="../../assets/images/image27-2.png" |
| | | alt="2 模仿“窟窿”舞姿" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image27-3.jpg" |
| | | src="../../assets/images/image27-3.png" |
| | | alt="3 “捂嘴状”舞姿" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image27-4.jpg" |
| | | src="../../assets/images/image27-4.png" |
| | | alt="4 “双人配合”舞姿" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image28-1.jpg" |
| | | src="../../assets/images/image28-1.png" |
| | | alt="1 吸跳步" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image28-2.jpg" |
| | | src="../../assets/images/image28-2.png" |
| | | alt="2 “侧坐莓苔草映身”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image28-3.jpg" |
| | | src="../../assets/images/image28-3.png" |
| | | alt="3 “路人借问遥招手”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image28-4.jpg" |
| | | src="../../assets/images/image28-4.png" |
| | | alt="4 模仿“钓鱼”舞姿" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image29-1.jpg" |
| | | src="../../assets/images/image29-1.png" |
| | | alt="1 “松下问童子”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image29-2.jpg" |
| | | src="../../assets/images/image29-2.png" |
| | | alt="2 “言师采药去”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image29-3.jpg" |
| | | src="../../assets/images/image29-3.png" |
| | | alt="3 “云深不知处”动作" |
| | | /> |
| | | </div> |
| | |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image30-1.jpg" |
| | | alt="1 吸跳步" |
| | | src="../../assets/images/image30-1.png" |
| | | alt="1 “西塞山前白鹭飞”动作" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image30-2.jpg" |
| | | alt="2 “侧坐莓苔草映身”动作" |
| | | src="../../assets/images/image30-2.png" |
| | | alt="2 “桃花流水鳜鱼肥”动作" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image30-3.jpg" |
| | | alt="3 “路人借问遥招手”动作" |
| | | src="../../assets/images/image30-3.png" |
| | | alt="3 “青箬笠,绿蓑衣”动作" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="swiper-slide"> |
| | | <div class="imgBox" style="width: 100%; height: 100%"> |
| | | <img |
| | | src="../../assets/images/image30-4.jpg" |
| | | alt="4 模仿“钓鱼”舞姿" |
| | | src="../../assets/images/image30-4.png" |
| | | alt="4 “斜风细雨不须归”动作" |
| | | /> |
| | | </div> |
| | | </div> |
| | |
| | | <template> |
| | | <div class="chapter" num="1"> |
| | | <div class="page-box mt-20" page="1" style="min-height: auto;"> |
| | | <div class="page-box mt-20" page="1"> |
| | | <div v-if="showPageList.indexOf(1) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/Cover.jpg" /> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="2" style="min-height: auto;"> |
| | | <div class="page-box" page="2" > |
| | | <div v-if="showPageList.indexOf(2) > -1"> |
| | | <img class="img-0" alt="" src="../../assets/images/SMY.jpg" /> |
| | | </div> |
| | |
| | | <chapterOne |
| | | v-if="showCatalogList.indexOf(2) > -1" |
| | | :showPageList="loadPageList" |
| | | @closeAudio="closeAudio" |
| | | ></chapterOne> |
| | | <chapterTwo |
| | | v-if="showCatalogList.indexOf(3) > -1" |
| | | :showPageList="loadPageList" |
| | | @closeAudio="closeAudio" |
| | | > |
| | | </chapterTwo> |
| | | <chapterThree |
| | | v-if="showCatalogList.indexOf(4) > -1" |
| | | :showPageList="loadPageList" |
| | | @closeAudio="closeAudio" |
| | | ></chapterThree> |
| | | <chapterFour |
| | | v-if="showCatalogList.indexOf(5) > -1" |
| | | :showPageList="loadPageList" |
| | | @closeAudio="closeAudio" |
| | | ></chapterFour> |
| | | <chapterFive |
| | | v-if="showCatalogList.indexOf(6) > -1" |
| | | :showPageList="loadPageList" |
| | | @closeAudio="closeAudio" |
| | | ></chapterFive> |
| | | <chapterSix |
| | | v-if="showCatalogList.indexOf(7) > -1" |
| | | :showPageList="loadPageList" |
| | | ></chapterSix> |
| | | </div> |
| | | |
| | | <miniAudio |
| | | :path="audioPath" |
| | | :currentTime="currentTime" |
| | | @closeMiniAudio="closeMiniAudio" |
| | | ref="audioPlayer" |
| | | ></miniAudio> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import chapterFive from './chapter005.vue' |
| | | import chapterSix from './chapter006.vue' |
| | | import NoteIcon from "@/assets/images/biji.png"; |
| | | import miniAudio from "@/components/miniAudio/index.vue"; |
| | | import _ from "lodash"; |
| | | import Swiper from "swiper/bundle"; |
| | | import "swiper/swiper-bundle.css"; |
| | |
| | | questionDataMap: {}, |
| | | renderSignMap: {}, |
| | | highlightData: null, |
| | | audioPath: "", |
| | | currentTime: null, |
| | | videoList: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | |
| | | // 测试页面跳转 |
| | | // setTimeout(() => { |
| | | // this.gotoPage(1, 10); |
| | | // this.gotoPage(6, 26); |
| | | // setTimeout(() => { |
| | | // this.renderSign("Highlight", { |
| | | // id: "2ACA9359", |
| | |
| | | // txt: " 运动系统是由骨、骨连结和骨骼肌三部分组成的。全身的骨通过骨连结组成人体骨骼(见图1-1)。骨骼是人体的支架,具有保护内脏器官、供肌肉附着和作为肌肉运动的杠杆等作用。在神经系统的支配下,肌肉收缩牵动所附着的骨绕着关节转动,使身体产生各种动作。所以,运动系统具有运动、支持和保护等功能,幼年时期的骨骼还具有造血功能。 ", |
| | | // txtIndex: 57 |
| | | // }); |
| | | // }, 5000); |
| | | // }, 500); |
| | | }, |
| | | methods: { |
| | | // setZoom1() { |
| | |
| | | scrollFun(event) { |
| | | // 判断向上滚动还是向下滚动 |
| | | if (event.target.scrollTop > this.previousScrollTop) { |
| | | this.getAduio() |
| | | // 向下 |
| | | const currentScrollTop = |
| | | event.target.scrollTop + event.target.offsetHeight; |
| | |
| | | } |
| | | } |
| | | } else if (event.target.scrollTop < this.previousScrollTop) { |
| | | this.handleAudio() |
| | | // 向上 |
| | | const currentScrollTop = event.target.scrollTop; |
| | | if (currentScrollTop <= this.loadThreshold) { |
| | |
| | | autoplay: { |
| | | //自动开始 |
| | | delay: 3000, //时间间隔 |
| | | disableOnInteraction: false, //*手动操作轮播图后不会暂停* |
| | | disableOnInteraction: false //*手动操作轮播图后不会暂停* |
| | | }, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | // observer: true, |
| | | // observeParents: true |
| | | // // 如果需要分页器 |
| | | // pagination: { |
| | | // el: (this.container ? this.container : document).querySelector( |
| | |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | |
| | | // 跳转 |
| | | this.gotoPage(data.catalog, data.page, () => {}); |
| | | }, |
| | | // 页面向下滚动,音频小窗播放功能 |
| | | getAduio() { |
| | | let allVideo = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".audio"); |
| | | allVideo = Array.from(allVideo); |
| | | this.videoList = allVideo; |
| | | if (allVideo.length) { |
| | | // 查找播放状态的最后一条音频 |
| | | const playAudio = allVideo |
| | | .reverse() |
| | | .find((item) => item.paused == false); |
| | | if (playAudio) { |
| | | const bottomGap = playAudio.getBoundingClientRect().bottom; |
| | | if (bottomGap < 0) { |
| | | playAudio.pause(); |
| | | this.audioPath = playAudio.src; |
| | | this.currentTime = playAudio.currentTime; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // 页面向上滚动,音频小窗回收 |
| | | handleAudio() { |
| | | if (!this.audioPath) return false; |
| | | let allVideo = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".audio"); |
| | | allVideo = Array.from(allVideo); |
| | | if (allVideo.length) { |
| | | //查找与小窗播放音频同源的页面audio DOM |
| | | const playAudio = allVideo.find((item) => item.src == this.audioPath); |
| | | if (playAudio) { |
| | | const bottomGap = playAudio.getBoundingClientRect().bottom; |
| | | if (bottomGap >= 0) { |
| | | if (this.$refs.audioPlayer) { |
| | | const playerState = this.$refs.audioPlayer.getVideoPlayer(); |
| | | this.audioPath = ""; |
| | | playAudio.currentTime = playerState.currentTime; |
| | | if (!playerState.paused) playAudio.play(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // 关闭mini video |
| | | closeMiniAudio() { |
| | | this.audioPath = ""; |
| | | }, |
| | | // 点击音频播放,关闭其他音频 |
| | | closeAudio(path) { |
| | | let allVideo = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".audio"); |
| | | allVideo = Array.from(allVideo); |
| | | if(allVideo.length) { |
| | | for (let index = 0; index < allVideo.length; index++) { |
| | | const item = allVideo[index]; |
| | | if(item.currentSrc != path) { |
| | | item.pause() |
| | | } |
| | | } |
| | | } |
| | | this.closeMiniAudio() |
| | | } |
| | | }, |
| | | components: { |
| | | pageHeader, |
| | |
| | | chapterFour, |
| | | chapterFive, |
| | | chapterSix, |
| | | miniAudio |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .ans-drama { |
| | | width: 100%; |
| | | height: 100%; |
| | | font-family: "宋体", SimSun, sans-serif; |
| | | font-family: "STKaiti", SimSun, sans-serif; |
| | | span.un1{ |
| | | -webkit-text-emphasis-style:dot; |
| | | -moz-text-emphasis-style:dot; |
| | |
| | | div.bodystyle { |
| | | font-size:18px; |
| | | text-align:justify; |
| | | margin:5%; |
| | | margin:5% 15%; |
| | | line-height:30px; |
| | | |
| | | } |
| | | |
| | | span.zt-0 |
| | |
| | | |
| | | p |
| | | { |
| | | margin-top:1em; |
| | | // margin-top:1em; |
| | | margin: 0; |
| | | text-indent:2em; |
| | | line-height:30px; |
| | | font-size:18px; |
| | |
| | | text-align:center; |
| | | font-size:1.8em; |
| | | color:#515594; |
| | | margin-bottom:0.5cm; |
| | | margin-bottom:0%; |
| | | margin-top:0.5cm; |
| | | } |
| | | |
| | |
| | | |
| | | .img-0{ |
| | | width:100%; |
| | | height: auto; |
| | | } |
| | | .imz{ |
| | | width:96%; |
| | |
| | | outline: none; |
| | | } |
| | | } |
| | | // 整行的input标签 |
| | | .input-w-66{ |
| | | width: 66%; |
| | | } |
| | | .headerimg{ |
| | | margin-left: 5%; |
| | | } |
| | | .page-footer { |
| | | position: relative; |
| | | display: flex; |
| | |
| | | } |
| | | } |
| | | /* 媒体查询做基础响应式布局 */ |
| | | @media (max-width: 430px) { |
| | | .ans-drama { |
| | | .page-box { |
| | | min-height: 750px; |
| | | } |
| | | .pg-mh { |
| | | min-height: 815px !important; |
| | | } |
| | | } |
| | | } |
| | | @media (max-width: 660px) { |
| | | .ans-drama { |
| | | /* 分页padding */ |
| | | .page-padding { |
| | | .pg-mh { |
| | | min-height: 815px !important; |
| | | } |
| | | /* 分页padding */ |
| | | .page-padding { |
| | | padding: 104px 20px; |
| | | } |
| | | .padding-96 { |
| | |
| | | <div class="page-box" page="4"> |
| | | <div v-if="showPageList.indexOf(4) > -1"> |
| | | <h1 id="a004"> |
| | | <!-- 这里的动图有问题,没有背景图片 --> |
| | | <img class="img-0" alt="" src="../../assets/images/dy1.jpg" /> |
| | | <audio :src="auidoPathOne" class="audio" controls></audio> |
| | | <audio :src="auidoPathOne" controls class="audio" @play="audioPlay"></audio> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <div class="bk"> |
| | |
| | | <img class="img-gn" alt="" src="../../assets/images/dydd.jpg" /> |
| | | </p> |
| | | </div> |
| | | |
| | | <p class="block"> |
| | | 在故事《一块奶酪》中,蚂蚁家庭的每一位成员都为了共同的目标分工协作、努力奋斗,在面对诱惑和挑战时更是严于律己、遵守团队纪律。本单元,让我们读一读《一块奶酪》的故事,学习蚂蚁们的优秀品格吧! |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">1</div> |
| | |
| | | </div> |
| | | <div class="page-box" page="5"> |
| | | <div v-if="showPageList.indexOf(5) > -1"> |
| | | <h1> |
| | | <h1 style="margin-bottom: 0%"> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h2 id="b001">第一课 齐心协力</h2> |
| | | <h3 class="lefth3" id="c001"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /> |
| | |
| | | <span class="hs1">◇</span>大声朗读下面的句子,连一连不同逻辑重音强调的意思。 |
| | | </p> |
| | | <h1> |
| | | <audio :src="auidoPathTwo" class="audio" controls></audio> |
| | | <audio :src="auidoPathTwo" controls class="audio" @play="audioPlay"></audio> |
| | | </h1> |
| | | <p>小提示:加点的文字为本句话中的逻辑重音,在朗读发音时请重读。</p> |
| | | |
| | | <!-- 连线题 --> |
| | | <matching :rawData="rawData" :item="question"></matching> |
| | | <matching :rawData="rawData" :item="question" class="macthing" :primaryColor="'transparent'"></matching> |
| | | <p>小提示:加点的文字为本句话中的逻辑重音,在朗读发音时请重读。</p> |
| | | |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | |
| | | </div> |
| | | <div class="page-box" page="7"> |
| | | <div v-if="showPageList.indexOf(7) > -1"> |
| | | <h1> |
| | | <h1 style="margin-bottom: 0%"> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h2 id="b002">第二课 津津乐道</h2> |
| | | <h3 class="lefth3" id="c003"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /> |
| | |
| | | <p> |
| | | <span class="hs1">◇</span>请将以下课文选段大声朗诵出来,加点的字请重读。 |
| | | </p> |
| | | <h1><audio :src="auidoPathThree" class="audio" controls></audio></h1> |
| | | <h1><audio :src="auidoPathThree" controls class="audio" @play="audioPlay"></audio></h1> |
| | | |
| | | <div class="bj3"> |
| | | <p class="center"> |
| | |
| | | <div class="page-box" page="8"> |
| | | <div v-if="showPageList.indexOf(8) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | <img src="../../assets/images/page6-header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h2 id="b003">第三课 内心的声音</h2> |
| | | <h1 class="lefth3 openImgBox" id="c005"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/1-3.gif" style="height: auto; width: 50%" /> |
| | | </h1> |
| | | <h3 class="lefth3" id="c006"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /> |
| | | </h3> |
| | | <p> |
| | | <span class="hs1">◇</span>请将以下课文选段大声朗诵出来,加点的字请重读。 |
| | | </p> |
| | | <h1><audio :src="auidoPathTwo" class="audio" controls></audio></h1> |
| | | <h1 class="lefth3 openImgBox" id="c005"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/1-3.gif" style="height: auto; width: 50%" /> |
| | | </h1> |
| | | <h1><audio :src="auidoPathTwo" controls class="audio" @play="audioPlay"></audio></h1> |
| | | <div class="bj3"> |
| | | <p class="center"> |
| | | <span class="hs">春<a id="w1"></a><sup>1</sup>(节选)</span> |
| | |
| | | class="un1">轻悄悄</span>的,草<span class="un1">软绵绵</span>的。 |
| | | </p> |
| | | </div> |
| | | <hr /> |
| | | <hr style="margin-left: 0; width: 20%;" /> |
| | | <p class="note"> |
| | | <a id="m1">1</a> |
| | | 朱自清:《春》,见温儒敏等:《义务教育教科书 语文 |
| | |
| | | </div> |
| | | <div class="page-box" page="9"> |
| | | <div v-if="showPageList.indexOf(9) > -1"> |
| | | <h1> |
| | | <h1 style="margin-bottom: 0%;"> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h3 class="lefth3" id="c006"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /> |
| | | </h3> |
| | |
| | | class="hs1">◇</span>生活中,我们总会遇到各种各样的诱惑。面对诱惑时,我们的内心常常会有两个不同的声音出现:一个声音要求我们严于律己,另一个声音要求我们随心所欲。请你分析一下,当蚂蚁队长面对掉落的奶酪渣的诱惑时,他内心的两个声音会说些什么呢? |
| | | </p> |
| | | <p>正义队长:“ |
| | | <input v-model="questionData.warnUp.one" class="input-bottom-border fz-18" @change="setBookQuestion" />” |
| | | <input v-model="questionData.warnUp.one" class="input-bottom-border input-w-66" @change="setBookQuestion" />。” |
| | | </p> |
| | | <p>黑暗队长:“ <input v-model="questionData.warnUp.two" class="input-bottom-border fz-18" |
| | | @change="setBookQuestion" />”</p> |
| | | <p>黑暗队长:“ <input v-model="questionData.warnUp.two" class="input-bottom-border input-w-66" @change="setBookQuestion" />。” |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | |
| | | <span class="hs1">◇</span>请将以下课文选段大声朗诵出来,加点的字请重读。 |
| | | </p> |
| | | <h1> |
| | | <audio :src="auidoPathTwo" class="audio" controls></audio> |
| | | <audio :src="auidoPathTwo" controls class="audio" @play="audioPlay"></audio> |
| | | </h1> |
| | | |
| | | <div class="bj3"> |
| | |
| | | v-model="questionData.warnUp.six" class="input-bottom-border fz-18" style=" width: 10%;" |
| | | @change="setBookQuestion" />(身体感觉)啊! |
| | | </p> |
| | | <hr /> |
| | | <hr style="margin-left: 0; width: 20%;" /> |
| | | <p class="note"> |
| | | <a id="m1">1</a> |
| | | 朱自清:《春》,见温儒敏等:《义务教育教科书 语文 |
| | |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | |
| | | <p class="center openImgBox"> |
| | | <img class="img-e" alt="" src="../../assets/images/1-5.gif" /> |
| | | </p> |
| | |
| | | <h1> |
| | | <img src="../../assets/images/page6-header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h3 class="lefth3" id="c010"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/tzyys.jpg" /> |
| | |
| | | showPageList: { |
| | | type: Array, |
| | | }, |
| | | primaryColor: { |
| | | type: String, |
| | | default: "red" |
| | | } |
| | | }, |
| | | //在这里对调用的方法进行挂载 |
| | | mounted() { |
| | |
| | | data() { |
| | | return { |
| | | videoPathOne: "", |
| | | videoPathTwo: "", |
| | | videoPathThree: "", |
| | | videoPathFour: "", |
| | | auidoPathOne: "", |
| | | auidoPathTwo: "", |
| | | auidoPathThree: "", |
| | |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | methods: { |
| | | //视频和音频的MD5地址 |
| | | async getVidoePath() { |
| | | this.videoPathOne = await getResourcePath( |
| | | "691cbd2c13198d04afc7800d0f2cafb0" |
| | | ); |
| | | this.videoPathTwo = await getResourcePath( |
| | | "a3c9b55ac8227e4c885384ff2fc6c0e7" |
| | | ); |
| | | this.videoPathThree = await getResourcePath( |
| | | "dd44a1e31b4304f50d10b2481a148411" |
| | | ); |
| | | this.videoPathFour = await getResourcePath( |
| | | "09de7704eeaaf3a210b8c6af0a94d545" |
| | | ); |
| | | // this.auidoPathOne = await getResourcePath( |
| | | // "2c5f6c69b0f9f7a3c03e473cb8c977f5" |
| | |
| | | JSON.stringify(this.questionData) |
| | | ); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio', e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | height: 100%; |
| | | background-color: red; |
| | | } |
| | | |
| | | .macthing { |
| | | background-color: rgb(188, 220, 164); |
| | | padding: 5% 5%; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="chapter" num="3"> |
| | | <!-- <div class="page-box" page="14" style="min-height: auto"> |
| | | <div class="page-box" page="14"> |
| | | <div v-if="showPageList.indexOf(14) > -1"> |
| | | <h1 id="a004"> |
| | | <img class="img-0" alt="" src="../../assets/images/dy2.jpg" /> |
| | | <audio :src="auidoPathOne" controls></audio> |
| | | <audio :src="auidoPathOne" controls class="audio" @play="audioPlay"></audio> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <div class="bk"> |
| | |
| | | <img class="img-gn" alt="" src="../../assets/images/dydd.jpg" /> |
| | | </p> |
| | | </div> |
| | | |
| | | <p class="block"> |
| | | 戏剧表演中的动作、体态、眼神、声音在塑造角色时起到了重要的作用。本单元我们将继续学习《一块奶酪》的故事,并以偶剧的形式进行表演。 |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p><br /></p> |
| | | <h1><img class="img-0" alt="" src="../../assets/images/ym.jpg" /></h1> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">11</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="15" style="min-height: auto"> |
| | | <div class="page-box" page="15"> |
| | | <div v-if="showPageList.indexOf(15) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h2 id="b006">第一课 五官的力量</h2> |
| | | <h3 class="lefth3" id="c011"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /> |
| | |
| | | </p> |
| | | <p><span class="hs1">◇</span>嗅觉大冒险</p> |
| | | <p> |
| | | 你最爱吃的食物是_________。当闻到它的味道时,你会做出什么表情呢? |
| | | 你最爱吃的食物是 <input v-model="questionData.warnUp.one" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 10%" />。当闻到它的味道时,你会做出什么表情呢? |
| | | </p> |
| | | <p> |
| | | 你最不爱吃的食物是_________。当闻到它的味道时,你会做出什么表情呢? |
| | | 你最不爱吃的食物是 <input v-model="questionData.warnUp.two" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 10%"/>。当闻到它的味道时,你会做出什么表情呢? |
| | | </p> |
| | | <h3 class="lefth3" id="c012"> |
| | | <h3 class="lefth3 openImgBox" id="c012"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /> |
| | | </h3> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >以小组为单位,使用手偶道具表演附录中的剧本选段2。 |
| | | <span class="hs1">◇</span>以小组为单位,使用手偶道具表演附录中的剧本选段2。 |
| | | </p> |
| | | <p class="center"> |
| | | <img class="img-e" alt="" src="../../assets/images/0016-2.jpg" /> |
| | | <p class="center openImgBox"> |
| | | <img class="img-e" alt="" src="../../assets/images/2-1.gif" /> |
| | | </p> |
| | | </div> |
| | | <p><br /></p> |
| | | <h1><img class="img-0" alt="" src="../../assets/images/ym.jpg" /></h1> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">12</div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <!--<div class="page-box" page="16" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(16) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/page6-header-green.png" |
| | | alt="" |
| | | style="height: auto; width: 100%" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h1 class="lefth3" id="c002"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /> |
| | | </h1> |
| | | <p><span class="hs1">◇</span>请选出你认为正确的答案。</p> |
| | | <p class="center"> |
| | | <img class="img-e" alt="" src="../../assets/images/1-2蚂蚁举大树.gif" /> |
| | | </p> |
| | | <p>蚂蚁是典型的( )昆虫。(多选)</p> |
| | | <p>A.群居</p> |
| | | <p>B.社会性</p> |
| | | <p>C.独居</p> |
| | | <p>蚂蚁内部有( )分工。(多选)</p> |
| | | <p>A.明确的</p> |
| | | <p>B.奇怪的</p> |
| | | <p>C.有序的</p> |
| | | <p>一个( )群体少不了默契的配合。(多选)</p> |
| | | <p>A.团结的</p> |
| | | <p>B.优秀的</p> |
| | | <p>C.松散的</p> |
| | | <video |
| | | :src="videoPathOne" |
| | | webkit-playsinline="true" |
| | | x-webkit-airplay="true" |
| | | playsinline="true" |
| | | x5-video-orientation="h5" |
| | | x5-video-player-fullscreen="true" |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100" |
| | | style="margin-top: 40px" |
| | | ></video> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="page-box" page="16"> |
| | | <div v-if="showPageList.indexOf(16) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit2-header-img.png" alt="" style="height: auto; width: 100%" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b007">第二课 明察秋毫</h2> |
| | | <h3 class="lefth3" id="c013"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>我们的世界五彩斑斓。请你填一填,提到这些颜色,你想到了哪些事物?</p> |
| | | <p>黄色:柠檬、<input v-model="questionData.warnUp.three" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>、<input v-model="questionData.warnUp.four" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>。</p> |
| | | <p>红色:鞭炮、<input v-model="questionData.warnUp.five" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>、<input v-model="questionData.warnUp.six" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>。</p> |
| | | <p>绿色:叶子、<input v-model="questionData.warnUp.seven" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>、<input v-model="questionData.warnUp.eight" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>。</p> |
| | | <p>黑色:黑板、<input v-model="questionData.warnUp.nine" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>、<input v-model="questionData.warnUp.ten" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>。</p> |
| | | <p>蓝色:大海、<input v-model="questionData.warnUp.eleven" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>、<input v-model="questionData.warnUp.twelve" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 15%"/>。</p> |
| | | <h3 class="lefth3" id="c014"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>阅读下面的文字,为小蚂蚁选择一种性格吧。</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/2-2.gif" /></p> |
| | | <p>蚂蚁队长走路昂首挺胸、步伐坚定,它是一只( )蚂蚁;小蚂蚁走起路来小心翼翼,眼神飘忽不定,它是一只( )蚂蚁;蚂蚁小妹面带微笑,时刻愿意帮助大家,它是一只( )蚂蚁。</p> |
| | | <p>A.胆小的</p> |
| | | <p>B.善良的</p> |
| | | <p>C.沉稳的</p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">13</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="17"> |
| | | <div v-if="showPageList.indexOf(17) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h2 id="b008">第三课 闻声识人</h2> |
| | | <h3 class="lefth3" id="c015"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p>常言道:良言一句三冬暖,恶语伤人六月寒。语言在人与人的交往中起着重要的作用,有着无穷的力量。</p> |
| | | <p><span class="hs1">◇</span>如果朋友心情不好,你该怎么安慰他/她呢?</p> |
| | | <p>“<input v-model="questionData.warnUp.thirteen" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 80%"/>。”</p> |
| | | <p><span class="hs1">◇</span>如果你邀请好朋友来家里做客,你该说什么来欢迎他/她呢?</p> |
| | | <p>“<input v-model="questionData.warnUp.fourteen" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 80%"/>。”</p> |
| | | <h3 class="lefth3" id="c016"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>请根据提示读出句子,注意声音和语气的变化。</p> |
| | | <p><span class="hs">这一大块奶酪都是我的了!</span>(一只狡猾的蚂蚁,想要把奶酪偷偷地占为己有)</p> |
| | | <p><span class="hs">这一大块奶酪都是我的了!</span>(一只善良的蚂蚁,在帮助他人后得到了奖励)</p> |
| | | <p><span class="hs">这块奶酪太沉了,我们休息一下吧!</span>(严肃的蚂蚁队长,向队伍发出命令)</p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">14</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="18"> |
| | | <div v-if="showPageList.indexOf(18) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit2-header-img.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <p><span class="hs">这块奶酪太沉了,我们休息一下吧!</span>(一只弱小的蚂蚁,在向蚂蚁队长请求休息)</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/2-3.gif" /></p> |
| | | </div> |
| | | </div> |
| | | <!-- 此处为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">15</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="19"> |
| | | <div v-if="showPageList.indexOf(19) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h2 id="b009">第四课 真听真看真感受</h2> |
| | | <h3 class="lefth3" id="c017"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p>待人接物有礼有节、谦卑恭敬,在让他人感到如沐春风的同时,也会让自己受到他人的尊重和理解。请说一说,在下面这些场景中你应该如何做?</p> |
| | | <p><span class="hs1">◇</span>你看到妈妈的水杯没水了。</p> |
| | | <p><span class="hs1">◇</span>电梯里,你站在最前排,后面的人需要下电梯。</p> |
| | | <h3 class="lefth3" id="c018"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p>你知道吗?无实物训练是一种训练演员的有效方法,不仅能够培养演员良好的想象能力,更能够培养其行动的逻辑性和情景适应性,最终提高其塑造人物形象的能力。</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/2-4.gif" /></p> |
| | | <p><span class="hs1">◇</span>请试着用无实物表演的方式把下面的情景表演出来吧!</p> |
| | | <p class="center"><img class="img-0" alt="" src="../../assets/images/0020-2.jpg" /></p> |
| | | </div> |
| | | </div> |
| | | <!-- 此处为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">16</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="20"> |
| | | <div v-if="showPageList.indexOf(20) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit2-header-img.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b010">单元活动任务</h2> |
| | | <h3 class="lefth3" id="c019"><img class="img-gn1" alt="" src="../../assets/images/xsyty.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>吹纸练习</p> |
| | | <p class="center"><img class="img-e" alt="" src="../../assets/images/0021-1.jpg" /></p> |
| | | <p>找一张纸巾,将它按在墙上。移开双手,努力用气息将纸“钉”在墙面上,不要让它向下滑落。</p> |
| | | <p><span class="hs1">◇</span>吹笔练习</p> |
| | | <p>将一支笔立于桌面,看看你能不能用一口气将它吹倒。</p> |
| | | <p><span class="hs1">◇</span>吹袋子练习</p> |
| | | <p>将一只塑料袋抛至空中,和你的小伙伴一起轮流吹气,避免塑料袋落地。</p> |
| | | </div> |
| | | </div> |
| | | <!-- 此处为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">17</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="21"> |
| | | <div v-if="showPageList.indexOf(21) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <p><span class="hs1">◇</span>吹乒乓球练习</p> |
| | | <p>用气息将桌面上的乒乓球从“起点”运送至“终点”,运送过程中避免乒乓球触碰障碍物。</p> |
| | | <h3 class="lefth3" id="c020"><img class="img-gn1" alt="" src="../../assets/images/tzyys.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>请走进剧场观看不同剧种的现场演出,感受戏剧的魅力吧!</p> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="17" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(17) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h2 id="b002">第二课 津津乐道</h2> |
| | | <h3 class="lefth3" id="c003"> |
| | | <img class="img-gn1" alt="" src="image/rhybx.jpg" /> |
| | | </h3> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >请将以下课文选段大声朗诵出来,加点的字请重读。 |
| | | </p> |
| | | <audio :src="auidoPathThree" controls></audio> |
| | | <div class="bj3"> |
| | | <p class="center"> |
| | | <span class="hs" |
| | | >春<a id="w1"></a><a href="chapter003.html#m1"><sup>[1]</sup></a |
| | | >(节选)</span |
| | | > |
| | | </p> |
| | | <p class="center">朱自清</p> |
| | | <p class="block"> |
| | | 盼望着,<span class="un1">盼望着</span>,东风来了,春天的脚步<span |
| | | class="un1" |
| | | >近</span |
| | | >了。 |
| | | </p> |
| | | <p class="block"> |
| | | 一切都像<span class="un1">刚睡醒</span>的样子,欣欣然<span |
| | | class="un1" |
| | | >张开</span |
| | | >了眼。山<span class="un1">朗润</span>起来了,水<span class="un1" |
| | | >涨</span |
| | | >起来了,太阳的脸<span class="un1">红</span>起来了。 |
| | | </p> |
| | | </div> |
| | | <h3 class="lefth3" id="c004"> |
| | | <img class="img-gn1" alt="" src="image/czysj.jpg" /> |
| | | </h3> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >在《一块奶酪》的故事中,小蚂蚁们都有各自的立场,你能理解他们的想法吗?请你和同伴根据故事内容讨论一下。 |
| | | </p> |
| | | <hr /> |
| | | <p class="note"> |
| | | <a id="m1"></a><a href="chapter003.html#w1">[1]</a> |
| | | 朱自清:《春》,见温儒敏等:《义务教育教科书 语文 |
| | | 七年级上册》,2页,北京,人民教育出版社,2016。 |
| | | </p> |
| | | </div> |
| | | |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="18" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(18) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h2 id="b003">第三课 内心的声音</h2> |
| | | <h1 class="lefth3" id="c005"> |
| | | <img |
| | | class="img-gn1" |
| | | alt="" |
| | | src="../../assets/images/1-3.gif" |
| | | style="height: auto; width: 50%" |
| | | /> |
| | | </h1> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >请将以下课文选段大声朗诵出来,加点的字请重读。 |
| | | </p> |
| | | <p class="center"> |
| | | <img class="img-e" alt="" src="image/0009-1.jpg" /> |
| | | </p> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <div class="bj3"> |
| | | <p class="center"> |
| | | <span class="hs" |
| | | >春<a id="w1"></a><a href="chapter004.html#m1"><sup>[1]</sup></a |
| | | >(节选)</span |
| | | > |
| | | </p> |
| | | <p class="center">朱自清</p> |
| | | <p class="block"> |
| | | 小草偷偷地从土里<span class="un1">钻出来</span>,<span class="un1" |
| | | >嫩嫩的</span |
| | | >,<span class="un1">绿绿的</span>。园子里,田野里,<span |
| | | class="un1" |
| | | >瞧</span |
| | | >去,一大片一大片满是的。<span class="un1">坐</span>着,<span |
| | | class="un1" |
| | | >躺</span |
| | | >着,<span class="un1">打</span>两个<span class="un1">滚</span |
| | | >儿,<span class="un1">踢</span>几脚<span class="un1">球</span |
| | | >,<span class="un1">赛</span>几趟<span class="un1">跑</span |
| | | >,<span class="un1">捉</span>几回<span class="un1">迷藏</span |
| | | >。风<span class="un1">轻悄悄</span>的,草<span class="un1" |
| | | >软绵绵</span |
| | | >的。 |
| | | </p> |
| | | </div> |
| | | <h3 class="lefth3" id="c006"> |
| | | <img class="img-gn1" alt="" src="image/czysj.jpg" /> |
| | | </h3> |
| | | <p class="center"> |
| | | <img class="img-e" alt="" src="image/0010-1.jpg" /> |
| | | </p> |
| | | <hr /> |
| | | <p class="note"> |
| | | <a id="m1"></a><a href="chapter004.html#w1">[1]</a> |
| | | 朱自清:《春》,见温儒敏等:《义务教育教科书 语文 |
| | | 七年级上册》,2页,北京,人民教育出版社,2016。 |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true" playsinline="true" |
| | | x5-video-orientation="h5" x5-video-player-fullscreen="true" x5-playsinline="" controls |
| | | controlslist="nodownload" class="w100" |
| | | style="margin-top: 40px; border-radius: 10px; border: 2px solid green;"></video> |
| | | <h2>视频: 惟妙惟肖的人物</h2> |
| | | </p> |
| | | </div> |
| | | <div class="page-box" page="19" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(19) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h3 class="lefth3" id="c006"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /> |
| | | </h3> |
| | | <h1 class="center"> |
| | | <img |
| | | class="img-e" |
| | | alt="" |
| | | src="../../assets/images/1-4.gif" |
| | | style="height: auto; width: 50%" |
| | | /> |
| | | </h1> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >生活中,我们总会遇到各种各样的诱惑。面对诱惑时,我们的内心常常会有两个不同的声音出现:一个声音要求我们严于律己,另一个声音要求我们随心所欲。请你分析一下,当蚂蚁队长面对掉落的奶酪渣的诱惑时,他内心的两个声音会说些什么呢? |
| | | </p> |
| | | <p>正义队长:“_________________________________。”</p> |
| | | <p>黑暗队长:“_________________________________。”</p> |
| | | </div> |
| | | </div> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | </div> |
| | | <div class="page-box" page="20" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(20) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/page6-header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b004">第四课 身临其境</h2> |
| | | <h3 class="lefth3" id="c007"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /> |
| | | </h3> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >请将以下课文选段大声朗诵出来,加点的字请重读。 |
| | | </p> |
| | | <audio :src="auidoPathTwo" controls></audio> |
| | | <div class="bj3"> |
| | | <p class="center"> |
| | | <span class="hs" |
| | | >春<a id="w1"></a><a href="chapter005.html#m1"><sup>[1]</sup></a |
| | | >(节选)</span |
| | | > |
| | | </p> |
| | | <p class="center">朱自清</p> |
| | | <p class="block"> |
| | | <span class="un1">桃</span>树、<span class="un1">杏</span |
| | | >树、<span class="un1">梨</span |
| | | >树,你不让我,我不让你,都开满了花赶趟儿。红的像<span class="un1" |
| | | >火</span |
| | | >,粉的像<span class="un1">霞</span>,白的像<span class="un1" |
| | | >雪</span |
| | | >。花里带着甜味儿…… |
| | | </p> |
| | | </div> |
| | | <h3 class="lefth3" id="c008"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /> |
| | | </h3> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >假如你是搬运奶酪的蚂蚁,你要怎么搬运不同形状、大小的奶酪呢?请先为自己设计一个剧本吧: |
| | | </p> |
| | | <p> |
| | | 我是蚂蚁_________(名字),今天是_________(天气),我的奶酪特别_________(轻/重),我感觉好_________(身体感觉)啊! |
| | | </p> |
| | | <hr /> |
| | | <p class="note"> |
| | | <a id="m1"></a><a href="chapter003.html#w1">[1]</a> |
| | | 朱自清:《春》,见温儒敏等:《义务教育教科书 语文 |
| | | 七年级上册》,2页,北京,人民教育出版社,2016。 |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | <!-- 此处为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">18</div> |
| | | </div> |
| | | <div class="page-box" page="21" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(21) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <p class="center"> |
| | | <img class="img-e" alt="" src="../../assets/images/1-5.gif" /> |
| | | </p> |
| | | <p> |
| | | <span class="hs1">◇</span |
| | | >蚂蚁队长把奶酪渣留给了年龄最小的蚂蚁,赢得了大家的认可。在生活中,你曾经像“蚂蚁队长”一样爱护弱小吗?或者像“小蚂蚁”一样得到过哥哥姐姐们的关爱吗? |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | </div> |
| | | <div class="page-box" page="22" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(22) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/page6-header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b005">单元活动任务</h2> |
| | | <h3 class="lefth3" id="c009"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/xsyty.jpg" /> |
| | | </h3> |
| | | <p><span class="hs1">◇</span>放大缩小</p> |
| | | <p> |
| | | 请你交替“放大”和“缩小”五官。在“放大”时,想象五官要飞到外太空;在“缩小”时,想象五官全部缩小到了鼻尖上。 |
| | | </p> |
| | | <p><span class="hs1">◇</span>提升苹果肌</p> |
| | | <p> |
| | | 想象你在一个陌生的地方,谁都不认识,突然遇见了好朋友,你很高兴,上前和他/她打招呼。做一做你此时的表情吧。 |
| | | </p> |
| | | <p><span class="hs1">◇</span>微笑说“ang”</p> |
| | | <p> |
| | | 请你试一试在提升苹果肌的基础上,发出“ang”的音。声音要尽可能拉长、保持稳定,并向远送。 |
| | | </p> |
| | | <p><span class="hs1">◇</span>向远山喊“阿毛”</p> |
| | | <p> |
| | | 想象自己站在一座高山上,好朋友“阿毛”站在对面的高山上,你要如何喊他呢? |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | </div> |
| | | <div class="page-box" page="23" style="min-height: auto"> |
| | | <div v-if="showPageList.indexOf(23) > -1"> |
| | | <h1> |
| | | <img |
| | | src="../../assets/images/page6-header-green.png" |
| | | alt="" |
| | | style="width: 100%; height: auto" |
| | | /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h3 class="lefth3" id="c010"> |
| | | <img class="img-gn1" alt="" src="../../assets/images/tzyys.jpg" /> |
| | | </h3> |
| | | <p><span class="hs1">◇</span>排一排·演一演:孔融让梨</p> |
| | | <p> |
| | | 孔融四岁就懂礼貌、知谦让,是我们学习的好榜样,让我们运用本单元的戏剧知识,把他的故事表演出来吧! |
| | | </p> |
| | | <p class="center"> |
| | | <video |
| | | :src="videoPathOne" |
| | | webkit-playsinline="true" |
| | | x-webkit-airplay="true" |
| | | playsinline="true" |
| | | x5-video-orientation="h5" |
| | | x5-video-player-fullscreen="true" |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100" |
| | | style="margin-top: 40px" |
| | | ></video> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <p class="center"> |
| | | <img class="img-0" alt="" src="../../assets/images/ym.jpg" /> |
| | | </p> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | //import matching from "@/components/matching/matching.vue"; |
| | | |
| | | <script> |
| | | |
| | | import { getResourcePath } from "@/assets/methods/resources"; |
| | | export default { |
| | | name: "chapterTwo", |
| | | //components: { matching }, |
| | | props: { |
| | | showPageList: { |
| | | type: Array, |
| | | }, |
| | | }, |
| | | //在这里对调用的方法进行挂载 |
| | | }, |
| | | //在这里对调用的方法进行挂载 |
| | | mounted() { |
| | | this.getVidoePath(); |
| | | const bookQuestion = localStorage.getItem("artAndDrama-book-question-two"); |
| | | if (bookQuestion) { |
| | | this.questionData = JSON.parse(bookQuestion); |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | videoPathOne: "", |
| | | videoPathTwo: "", |
| | | videoPathThree: "", |
| | | videoPathFour: "", |
| | | auidoPathOne: "", |
| | | auidoPathTwo: "", |
| | | auidoPathThree: "", |
| | | rawData: { |
| | | left: [ |
| | | { |
| | | oldId: "FB34", |
| | | txt: "我请你吃苹果吧!", |
| | | }, |
| | | { |
| | | oldId: "64D6", |
| | | txt: "我请你吃苹果吧!", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "我请你吃苹果吧!", |
| | | }, |
| | | { |
| | | oldId: "44DE", |
| | | txt: "我请你吃苹果吧!", |
| | | }, |
| | | ], |
| | | right: [ |
| | | { |
| | | oldId: "64D6", |
| | | txt: "强调是请客", |
| | | }, |
| | | { |
| | | oldId: "FB34", |
| | | txt: "强调请的是“你”", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "强调吃的东西是“苹果”", |
| | | }, |
| | | { |
| | | oldId: "44DE", |
| | | txt: "强调请客的人是“我”", |
| | | }, |
| | | ], |
| | | }, |
| | | question: { |
| | | KnowledgePoint: "123", |
| | | analysis: "123", |
| | | answer: [ |
| | | { |
| | | id: "FB34", |
| | | linkValue: "我请你吃苹果吧!", |
| | | value: "强调是请客", |
| | | }, |
| | | { |
| | | id: "64D6", |
| | | linkValue: "我请你吃苹果吧!", |
| | | value: "强调请的是“你”", |
| | | }, |
| | | { |
| | | id: "2ED4", |
| | | linkValue: "我请你吃苹果吧!", |
| | | value: "强调吃的东西是“苹果”", |
| | | }, |
| | | { |
| | | id: "44DE", |
| | | linkValue: "我请你吃苹果吧!", |
| | | value: "强调请客的人是“我”", |
| | | }, |
| | | ], |
| | | optionStyle: undefined, |
| | | id: 489306, |
| | | options: { |
| | | linkValues: [ |
| | | { |
| | | oldId: "64D6", |
| | | txt: "It is one of China's must-see sights for visitors, which shows thewisdom of Chinese people.", |
| | | }, |
| | | { |
| | | oldId: "44DE", |
| | | txt: "It was first discovered and drank in China and my favoriteLongjing tea is produced near the West Lake in Hangzhou.", |
| | | }, |
| | | { |
| | | oldId: "FB34", |
| | | txt: "The clothing material is quite popular among Roman women inancient times.", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "It is very delicious and I like the hot and spicy Sichuan lavor hest.", |
| | | }, |
| | | ], |
| | | values: [ |
| | | { |
| | | oldId: "FB34", |
| | | txt: "Martin Silk", |
| | | }, |
| | | { |
| | | oldId: "64D6", |
| | | txt: "The Great Wall", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "Chinese Food", |
| | | }, |
| | | { |
| | | oldId: "44DE", |
| | | txt: "Chinese Tea", |
| | | }, |
| | | ], |
| | | questionData: { |
| | | warnUp: { |
| | | one: "", |
| | | two: "", |
| | | three: "", |
| | | four: "", |
| | | five: "", |
| | | six: "", |
| | | seven:"", |
| | | eight:"", |
| | | nine:"", |
| | | ten:"", |
| | | eleven:"", |
| | | twelve:"", |
| | | thirteen:"", |
| | | fourteen:"", |
| | | }, |
| | | questionType: "matching", |
| | | stem: { |
| | | stemTxt: "按顺序连线", |
| | | reading: { |
| | | one: "", |
| | | two: "", |
| | | }, |
| | | stemStyle: undefined, |
| | | titleDescription: "1", |
| | | userChoise: [], |
| | | value: [], |
| | | table: { |
| | | one: "", |
| | | two: "", |
| | | three: "", |
| | | four: "", |
| | | five: "", |
| | | six: "", |
| | | seven: "", |
| | | enight: "", |
| | | nine: "", |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | //视频和音频的MD5地址 |
| | | async getVidoePath() { |
| | | this.videoPathOne = await getResourcePath( |
| | | "691cbd2c13198d04afc7800d0f2cafb0" |
| | | ); |
| | | this.videoPathTwo = await getResourcePath( |
| | | "a3c9b55ac8227e4c885384ff2fc6c0e7" |
| | | ); |
| | | this.videoPathThree = await getResourcePath( |
| | | "dd44a1e31b4304f50d10b2481a148411" |
| | | ); |
| | | this.videoPathFour = await getResourcePath( |
| | | "09de7704eeaaf3a210b8c6af0a94d545" |
| | | ); |
| | | this.auidoPathOne = await getResourcePath( |
| | | "2c5f6c69b0f9f7a3c03e473cb8c977f5" |
| | | ); |
| | | this.auidoPathTwo = await getResourcePath( |
| | | "e93c0fdde08be5a4386c8c863892a287" |
| | | ); |
| | | this.auidoPathThree = await getResourcePath( |
| | | "e93c0fdde08be5a4386c8c863892a287" |
| | | // this.auidoPathOne = await getResourcePath( |
| | | // "2c5f6c69b0f9f7a3c03e473cb8c977f5" |
| | | // ); |
| | | }, |
| | | setBookQuestion() { |
| | | console.log("保存"); |
| | | localStorage.setItem( |
| | | "artAndDrama-book-question-two", |
| | | JSON.stringify(this.questionData) |
| | | ); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | <style lang="less" scoped> |
| | | .w70 { |
| | | width: 78%; |
| | | } |
| | | |
| | | .fw-400 { |
| | | font-weight: 400 !important; |
| | | } |
| | | |
| | | .fz-26 { |
| | | font-size: 26px !important; |
| | | } |
| | | |
| | | .cover-img { |
| | | position: absolute; |
| | | top: 33%; |
| | | left: 23%; |
| | | } |
| | | |
| | | .division-line { |
| | | width: 2px; |
| | | height: 100%; |
| | | background-color: red; |
| | | } |
| | | </style> |
| | | |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="chapter" num="4"> |
| | | <div class="page-box" page="22"> |
| | | <div v-if="showPageList.indexOf(22) > -1"> |
| | | <h1 id="a004"> |
| | | <!-- 这里的动图有问题,没有背景图片 --> |
| | | <img class="img-0" alt="" src="../../assets/images/dy3.jpg" /> |
| | | <audio :src="auidoPathOne" controls class="audio" @play="audioPlay" ></audio> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <div class="bk"> |
| | | <div class="bj1"> |
| | | <p class="left"><img class="img-gn" alt="" src="../../assets/images/dydd.jpg" /></p> |
| | | </div> |
| | | <p>每个人的心中都有一个舞台,演绎着生活的酸甜苦辣,记录着成长的点点滴滴。《一块奶酪》中的每只小蚂蚁也有很多心里话要表达,让我们一起演绎出来吧!</p> |
| | | </div> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">19</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="23"> |
| | | <div v-if="showPageList.indexOf(23) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%;" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | |
| | | <h2 id="b011">第一课 吹响劳动的集结号</h2> |
| | | <h3 class="lefth3" id="c021"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p>寒来暑往,秋收冬藏。一年四季,劳碌奔忙。</p> |
| | | <p>团结一心,吹响号角。幸福生活,劳动创造。</p> |
| | | <p><span class="hs1">◇</span>说一说你会做哪些家务?</p> |
| | | <p><span class="hs1">◇</span>和小伙伴讨论劳动在生活中的作用。</p> |
| | | <p><span class="hs1">◇</span>表演一种家务劳动,请小伙伴猜一猜。</p> |
| | | <h3 class="lefth3" id="c022"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>邀请小伙伴分角色朗诵附录中的剧本选段1~2,重读加点文字。</p> |
| | | <p class="center"><img class="img-e" alt="" src="../../assets/images/0024-1.jpg" /></p> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">20</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="24"> |
| | | <div v-if="showPageList.indexOf(24) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit3-header-img.png" alt="" style="height: auto; width: 100%" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b012">第二课 意外发生了!</h2> |
| | | <h3 class="lefth3" id="c023"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>当上半场比赛失利,中场休息时,你会怎么做?当别人夸赞你的时候,你会怎么做?请你和朋友一起演一演吧。</p> |
| | | <h3 class="lefth3" id="c024"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/3-2.gif" /></p> |
| | | <p><span class="hs1">◇</span>请把蚂蚁队长的台词和他的内心独白连起来吧!</p> |
| | | <!-- 连线题 --> |
| | | <matching :rawData="rawData" :item="question" class="macthing" :primaryColor="'transparent'"> |
| | | </matching> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">21</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="25"> |
| | | <div v-if="showPageList.indexOf(25) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h2 id="b013">第三课 我该怎么办?</h2> |
| | | <h3 class="lefth3" id="c025"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>在《一块奶酪》的故事中,蚂蚁队长也起过贪心,但他最终成功克服了贪心,你认为他是怎么做到的呢?</p> |
| | | <p><input v-model="questionData.warnUp.one" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 90%"/></p> |
| | | <h3 class="lefth3" id="c026"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>阅读附录中的剧本选段5,为自己的表演设计动作吧!</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/3-3.gif" /></p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">22</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="26"> |
| | | <div v-if="showPageList.indexOf(26) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit3-header-img.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | |
| | | <div class="bodystyle"> |
| | | |
| | | <h2 id="b014">第四课 皆大欢喜</h2> |
| | | <h3 class="lefth3" id="c027"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>请按照事件六要素的结构给大家分享一件快乐的事吧!</p> |
| | | <p>时间:<input v-model="questionData.warnUp.two" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 70%"/></p> |
| | | <p>地点:<input v-model="questionData.warnUp.three" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 70%"/></p> |
| | | <p>人物:<input v-model="questionData.warnUp.four" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 70%"/></p> |
| | | <p>起因:<input v-model="questionData.warnUp.five" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 70%"/></p> |
| | | <p>经过:<input v-model="questionData.warnUp.six" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 70%"/></p> |
| | | <p>结果:<input v-model="questionData.warnUp.seven" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 70%"/></p> |
| | | <p><span class="hs1">◇</span>你有烦恼吗?说一说是什么,你是怎么处理它的?</p> |
| | | <p><input v-model="questionData.warnUp.enight" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 85%"/></p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">23</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="27"> |
| | | <div v-if="showPageList.indexOf(27) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <img src="../../assets/images/page5.png" alt="" /> |
| | | <h3 class="lefth3" id="c028"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>运用重音、内心独白和动作设计等表现方式,将《一块奶酪》的故事表演出来吧!(剧本见附录)</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/3-3.gif" /></p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">24</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="28"> |
| | | <div v-if="showPageList.indexOf(28) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit3-header-img.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b015">单元活动任务</h2> |
| | | <h3 class="lefth3" id="c029"><img class="img-gn1" alt="" src="../../assets/images/xsyty.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>喘气练习</p> |
| | | <p>平视前方,肩膀放松,双手自然下垂或叉腰,双脚分开,与肩同宽。模仿小狗喘气,感受腹部的“呼吸”状态,想象自己的腹部是一个气球,在吸气时腹部向外扩张,吐气时腹部向内收缩。</p> |
| | | <p><span class="hs1">◇</span>“嘶”声练习</p> |
| | | <p>在“喘气练习”的基础上,发出“嘶”音,每组4短1长。</p> |
| | | <p><span class="hs1">◇</span>“嘟”音练习</p> |
| | | <p>平视前方,肩膀放松,双手自然下垂,双脚分开,与肩同宽。放松双唇,深吸气,吹出气流带动嘴唇抖动,发出“嘟”的声音,声音越长越好。</p> |
| | | <p><span class="hs1">◇</span>“我们赞美长江”气声练习</p> |
| | | <p>平视前方,肩膀放松,双手自然下垂,双脚分开,与肩同宽。以说悄悄话的感觉,说出“我们赞美长江”,并逐步增加气声的力度,找到在舞台上说悄悄话的感觉。</p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">25</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="29"> |
| | | <div v-if="showPageList.indexOf(29) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h3 class="lefth3" id="c030"><img class="img-gn1" alt="" src="../../assets/images/tzyys.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>劳动最光荣!请为家中长辈做一件力所能及的事情,用实际行动表达你的爱意!体验过程中要记住每一个动作的细节,再尝试以无实物表演的方式进行展示。 |
| | | </p> |
| | | <p class="center"> |
| | | <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true" playsinline="true" |
| | | x5-video-orientation="h5" x5-video-player-fullscreen="true" x5-playsinline="" controls |
| | | controlslist="nodownload" class="w100" |
| | | style="margin-top: 40px; border-radius: 10px; border: 2px solid green;"></video> |
| | | <h2>视频: 心有多大,舞台就有多大</h2> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">26</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import matching from "@/components/matching/matching.vue"; |
| | | import { getResourcePath } from "@/assets/methods/resources"; |
| | | export default { |
| | | name: "chapterThree", |
| | | components: { matching }, |
| | | props: { |
| | | showPageList: { |
| | | type: Array, |
| | | }, |
| | | |
| | | }, |
| | | //在这里对调用的方法进行挂载 |
| | | mounted() { |
| | | this.getVidoePath(); |
| | | const bookQuestion = localStorage.getItem("artAndDrama-book-question-three"); |
| | | if (bookQuestion) { |
| | | this.questionData = JSON.parse(bookQuestion); |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | videoPathOne: "", |
| | | auidoPathOne: "", |
| | | rawData: { |
| | | left: [ |
| | | { |
| | | oldId: "FB34", |
| | | txt: "“掉了一个角,这该怎么办!”", |
| | | }, |
| | | { |
| | | oldId: "64D6", |
| | | txt: "“丢掉,实在太可惜!”", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "“我要是偷嘴谁也看不见。”", |
| | | }, |
| | | ], |
| | | right: [ |
| | | { |
| | | oldId: "64D6", |
| | | txt: "不能丢掉啊,如果能给我吃就太好了!", |
| | | }, |
| | | { |
| | | oldId: "FB34", |
| | | txt: "要不我把奶酪偷偷吃了吧。", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "好可惜啊,这么美味的奶酪!", |
| | | }, |
| | | ], |
| | | }, |
| | | question: { |
| | | KnowledgePoint: "123", |
| | | analysis: "123", |
| | | answer: [ |
| | | { |
| | | id: "FB34", |
| | | linkValue: "“掉了一个角,这该怎么办!”", |
| | | value: "要不我把奶酪偷偷吃了吧。", |
| | | }, |
| | | { |
| | | id: "64D6", |
| | | linkValue: "“丢掉,实在太可惜!”", |
| | | value: "不能丢掉啊,如果能给我吃就太好了!", |
| | | }, |
| | | { |
| | | id: "2ED4", |
| | | linkValue: "“我要是偷嘴谁也看不见。”", |
| | | value: "好可惜啊,这么美味的奶酪!", |
| | | }, |
| | | ], |
| | | optionStyle: undefined, |
| | | id: 489306, |
| | | options: { |
| | | linkValues: [ |
| | | { |
| | | oldId: "64D6", |
| | | txt: "It is one of China's must-see sights for visitors, which shows thewisdom of Chinese people.", |
| | | }, |
| | | { |
| | | oldId: "44DE", |
| | | txt: "It was first discovered and drank in China and my favoriteLongjing tea is produced near the West Lake in Hangzhou.", |
| | | }, |
| | | { |
| | | oldId: "FB34", |
| | | txt: "The clothing material is quite popular among Roman women inancient times.", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "It is very delicious and I like the hot and spicy Sichuan lavor hest.", |
| | | }, |
| | | ], |
| | | values: [ |
| | | { |
| | | oldId: "FB34", |
| | | txt: "Martin Silk", |
| | | }, |
| | | { |
| | | oldId: "64D6", |
| | | txt: "The Great Wall", |
| | | }, |
| | | { |
| | | oldId: "2ED4", |
| | | txt: "Chinese Food", |
| | | }, |
| | | { |
| | | oldId: "44DE", |
| | | txt: "Chinese Tea", |
| | | }, |
| | | ], |
| | | }, |
| | | questionType: "matching", |
| | | stem: { |
| | | stemTxt: "按顺序连线", |
| | | }, |
| | | stemStyle: undefined, |
| | | titleDescription: "1", |
| | | userChoise: [], |
| | | value: [], |
| | | }, |
| | | questionData: { |
| | | warnUp: { |
| | | one: "", |
| | | two: "", |
| | | three: "", |
| | | four: "", |
| | | five: "", |
| | | six: "", |
| | | seven:"", |
| | | enight:"", |
| | | }, |
| | | reading: { |
| | | one: "", |
| | | two: "", |
| | | }, |
| | | table: { |
| | | one: "", |
| | | two: "", |
| | | three: "", |
| | | four: "", |
| | | five: "", |
| | | six: "", |
| | | seven: "", |
| | | enight: "", |
| | | nine: "", |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | //视频和音频的MD5地址 |
| | | async getVidoePath() { |
| | | // 视频Md5地址 |
| | | this.videoPathOne = await getResourcePath( |
| | | "dd44a1e31b4304f50d10b2481a148411" |
| | | ); |
| | | // 音频Md5地址 |
| | | // this.auidoPathOne = await getResourcePath( |
| | | // "2c5f6c69b0f9f7a3c03e473cb8c977f5" |
| | | // ); |
| | | |
| | | }, |
| | | setBookQuestion() { |
| | | console.log("保存"); |
| | | localStorage.setItem( |
| | | "artAndDrama-book-question-three", |
| | | JSON.stringify(this.questionData) |
| | | ); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .w70 { |
| | | width: 78%; |
| | | } |
| | | |
| | | .fw-400 { |
| | | font-weight: 400 !important; |
| | | } |
| | | |
| | | .fz-26 { |
| | | font-size: 26px !important; |
| | | } |
| | | |
| | | .cover-img { |
| | | position: absolute; |
| | | top: 33%; |
| | | left: 23%; |
| | | } |
| | | |
| | | .division-line { |
| | | width: 2px; |
| | | height: 100%; |
| | | background-color: red; |
| | | } |
| | | |
| | | .macthing { |
| | | background-color: rgb(188, 220, 164); |
| | | padding: 5% 0%; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="chapter" num="5"> |
| | | <div class="page-box" page="30"> |
| | | <div v-if="showPageList.indexOf(30) > -1"> |
| | | <h1 id="a004"> |
| | | <!-- 这里的动图有问题,没有背景图片 --> |
| | | <img class="img-0" alt="" src="../../assets/images/dy4.jpg" /> |
| | | <audio :src="auidoPathOne" controls class="audio" @play="audioPlay"></audio> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <div class="bk"> |
| | | <div class="bj1"> |
| | | <p class="left"><img class="img-gn" alt="" src="../../assets/images/dydd.jpg" /></p> |
| | | </div> |
| | | <p>在戏剧演出中,除了舞台上的演员,导演、灯光、造型等幕后人员也发挥着重要的作用。本单元让我们从台前走进幕后,向默默奉献的工作人员致敬!</p> |
| | | </div> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">27</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="31"> |
| | | <div v-if="showPageList.indexOf(31) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | |
| | | <h2 id="b016">第一课 一模一样</h2> |
| | | <h3 class="lefth3" id="c031"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>以小组为单位围成一圈,面朝圈外蹲下,相邻两人互挎手臂,组员同时站起来,看看哪个组最快!</p> |
| | | <p><span class="hs1">◇</span>说一说:快速站起来的秘诀是什么?</p> |
| | | <p><input v-model="questionData.warnUp.one" class="input-bottom-border fz-18" @change="setBookQuestion" style="width: 90%"/></p> |
| | | <h3 class="lefth3" id="c032"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>以小组为单位,表演以下场景,注意保持动作一致哦。</p> |
| | | <p>蚂蚁队长吹响集合号,蚂蚁们迅速跑上场站好队形。</p> |
| | | <p>蚂蚁们抬着奶酪向前走着。</p> |
| | | <p>蚂蚁们跟随蚂蚁队长的口令消失在草丛里。</p> |
| | | <p>蚂蚁们由四面八方走回来。</p> |
| | | <p>蚂蚁们劲儿比刚才更足,抬起奶酪向山洞走去。</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/4-1.gif" /></p> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">28</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="32"> |
| | | <div v-if="showPageList.indexOf(32) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit4-header-img.png" alt="" style="height: auto; width: 100%" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b017">第二课 造型变变变</h2> |
| | | <h3 class="lefth3" id="c033"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>春天来了,春风吹过,柳树发芽了,迎春花开了,小燕子在天空自由地飞翔。一切都是那么生机勃勃。请为“春天”涂上你喜欢的颜色。</p> |
| | | <!-- 图片缺失 --> |
| | | <!-- <p class="center"><img class="img-e" alt="" src="./../assets/images/0033-1.jpg" /></p> --> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">29</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="33"> |
| | | <div v-if="showPageList.indexOf(33) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h3 class="lefth3" id="c034"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>动动手,为《一块奶酪》中的蚂蚁角色设计简单的服装吧!</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/4-2.gif" /></p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">30</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="34"> |
| | | <div v-if="showPageList.indexOf(34) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit4-header-img.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b018">第三课 变废为宝</h2> |
| | | <h3 class="lefth3" id="c035"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>以小组为单位,头顶纸杯,腿夹报纸,进行夹纸运杯游戏!</p> |
| | | <h3 class="lefth3" id="c036"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>请根据《一块奶酪》的剧本,列出演出中需要的道具清单,请按照清单,利用你收集的旧物制作道具吧!</p> |
| | | <p class="center"><img class="img-e" alt="" src="../../assets/images/0035-1.jpg" /></p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">31</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="35"> |
| | | <div v-if="showPageList.indexOf(35) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <h2 id="b019">第四课 奇妙的舞台</h2> |
| | | <h3 class="lefth3" id="c037"><img class="img-gn1" alt="" src="../../assets/images/rhybx.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>请你试着模拟演员候场、谢幕,舞台美术工作人员进行幕后准备的场景。</p> |
| | | <p class="center"><img class="img-e" alt="" src="../../assets/images/0036-1.jpg" /></p> |
| | | <h3 class="lefth3" id="c038"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>邀请同伴共同完成《一块奶酪》的展演吧!</p> |
| | | <p class="center openImgBox"><img class="img-e" alt="" src="../../assets/images/4-2.gif" /></p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">32</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="36"> |
| | | <div v-if="showPageList.indexOf(36) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/unit4-header-img.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h2 id="b020">单元活动任务</h2> |
| | | <h3 class="lefth3" id="c039"><img class="img-gn1" alt="" src="../../assets/images/xsyty.jpg" /></h3> |
| | | <p class="center"><span class="hs">形体操练习</span></p> |
| | | <p><span class="hs1">◇</span>头部运动</p> |
| | | <p>第1个八拍:右手越过头顶摸左耳,向右轻轻压头部。</p> |
| | | <p>第2个八拍:左手越过头顶摸右耳,向左轻轻压头部。</p> |
| | | <p>第3个八拍:头部顺时针转一圈。</p> |
| | | <p>第4个八拍:头部逆时针转一圈。</p> |
| | | <p><span class="hs1">◇</span>开肩练习</p> |
| | | <p>平视前方,肩膀放松,双手自然下垂,双脚打开,与肩同宽。</p> |
| | | <p>第1个八拍:第1-4拍手肘内侧向外转动,带动 双肩打开;第5-8拍手肘内侧向内收回,后背拱起,带动双肩内扣。</p> |
| | | <p>第2至第4个八拍:重复第1个八拍的动作。</p> |
| | | <p><span class="hs1">◇</span>提沉肩运动</p> |
| | | <p>平视前方,肩膀放松,双手自然下垂,双脚打开,与肩同宽。</p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">33</div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="37"> |
| | | <div v-if="showPageList.indexOf(37) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <p>第1至第2个八拍:双手下垂,手心向下,双肩上提再沉下,两拍一动。</p> |
| | | <p>第3至第4个八拍:双手下垂,手心向下,左右肩膀依次上提再沉下,一拍一动。</p> |
| | | <p><span class="hs1">◇</span>伸展运动</p> |
| | | <p>身体放松,膝盖微屈,上身自然弯曲下沉,手臂自然下垂。</p> |
| | | <p>第1个八拍:第1-7拍身体直起,双臂举起,踮起脚尖;第8拍还原初始状态。</p> |
| | | <p>第2至第4个八拍:重复第1个八拍的动作。</p> |
| | | <h3 class="lefth3" id="c040"><img class="img-gn1" alt="" src="../../assets/images/czysj.jpg" /></h3> |
| | | <p><span class="hs1">◇</span>写一篇排演总结,分享学习经验和感受!</p> |
| | | <p class="center"> |
| | | <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true" playsinline="true" |
| | | x5-video-orientation="h5" x5-video-player-fullscreen="true" x5-playsinline="" controls |
| | | controlslist="nodownload" class="w100" |
| | | style="margin-top: 40px; border-radius: 10px; border: 2px solid green;"></video> |
| | | <h2>视频: 团结就是力量</h2> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">34</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getResourcePath } from "@/assets/methods/resources"; |
| | | export default { |
| | | name: "chapterFour", |
| | | props: { |
| | | showPageList: { |
| | | type: Array, |
| | | }, |
| | | |
| | | }, |
| | | //在这里对调用的方法进行挂载 |
| | | mounted() { |
| | | this.getVidoePath(); |
| | | const bookQuestion = localStorage.getItem("artAndDrama-book-question-four"); |
| | | if (bookQuestion) { |
| | | this.questionData = JSON.parse(bookQuestion); |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | videoPathOne: "", |
| | | auidoPathOne: "", |
| | | questionData: { |
| | | warnUp: { |
| | | one: "", |
| | | |
| | | }, |
| | | reading: { |
| | | one: "", |
| | | two: "", |
| | | }, |
| | | table: { |
| | | one: "", |
| | | two: "", |
| | | three: "", |
| | | four: "", |
| | | five: "", |
| | | six: "", |
| | | seven: "", |
| | | enight: "", |
| | | nine: "", |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | //视频和音频的MD5地址 |
| | | async getVidoePath() { |
| | | this.videoPathOne = await getResourcePath( |
| | | "09de7704eeaaf3a210b8c6af0a94d545" |
| | | ); |
| | | // this.auidoPathOne = await getResourcePath( |
| | | // "2c5f6c69b0f9f7a3c03e473cb8c977f5" |
| | | // ); |
| | | }, |
| | | setBookQuestion() { |
| | | console.log("保存"); |
| | | localStorage.setItem( |
| | | "artAndDrama-book-question-four", |
| | | JSON.stringify(this.questionData) |
| | | ); |
| | | }, |
| | | audioPlay(e) { |
| | | this.$emit('closeAudio',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .w70 { |
| | | width: 78%; |
| | | } |
| | | |
| | | .fw-400 { |
| | | font-weight: 400 !important; |
| | | } |
| | | |
| | | .fz-26 { |
| | | font-size: 26px !important; |
| | | } |
| | | |
| | | .cover-img { |
| | | position: absolute; |
| | | top: 33%; |
| | | left: 23%; |
| | | } |
| | | |
| | | .division-line { |
| | | width: 2px; |
| | | height: 100%; |
| | | background-color: red; |
| | | } |
| | | |
| | | .macthing { |
| | | background-color: rgb(188, 220, 164); |
| | | padding: 5% 0%; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="chapter" num="6"> |
| | | <div class="page-box" page="38"> |
| | | <div v-if="showPageList.indexOf(38) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <h1 id="a008">附录</h1> |
| | | <p class="block3"><span class="hs">剧本</span></p> |
| | | <p class="center1"><span class="hs">一块奶酪</span></p> |
| | | <p class="block">演员表:蚂蚁队长、小蚂蚁、大头蚂蚁、小眼镜蚂蚁、蚂蚁小妹、奶酪人</p> |
| | | <p class="block3"><span class="hs">选段1</span></p> |
| | | <p class="block">【起光,蚂蚁队长上场】</p> |
| | | <p class="block">咻咻—</p> |
| | | <p class="block">【蚂蚁队长吹响集合号,蚂蚁们迅速跑上场站好队形】</p> |
| | | <p class="block">蚂蚁队长:<span class="un1">我宣布</span>!今天搬运粮食,只许<span class="un1">出力</span>,不许<span |
| | | class="un1">偷嘴</span>。谁偷嘴就<span class="un1">罚谁</span>!</p> |
| | | <p class="block">蚂蚁们:收到!</p> |
| | | <p class="block">小蚂蚁:(嘀咕)要是偷嘴的<span class="un1">是您呢</span>?</p> |
| | | <p class="block">蚂蚁队长:(义正词严)<span class="un1">照样受罚</span>!</p> |
| | | <p class="block">【蚂蚁们鼓掌】</p> |
| | | <p class="block">蚂蚁队长:稍息!立正!寻找食物!出发!</p> |
| | | <p class="block">【蚂蚁们争先恐后四处寻食】</p> |
| | | <p class="block">大头蚂蚁:(突然)<span class="un1">报告</span>!</p> |
| | | <p class="block">蚂蚁队长:怎么了?</p> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">35</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="39"> |
| | | <div v-if="showPageList.indexOf(39) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <p class="block">大头蚂蚁:(指着)这里有一块大奶酪!</p> |
| | | <p class="block">【一块奶酪(演员)趴在角落处】</p> |
| | | <p class="block">蚂蚁队长:(兴奋)哦?</p> |
| | | <p class="block">【蚂蚁队长被奶酪的香味迷住,转起了圈圈】</p> |
| | | <p class="block">【音乐起,蚂蚁队长和奶酪人跳起了舞蹈】</p> |
| | | <p class="block">蚂蚁队长:(陶醉)奶酪……奶酪……填饱肚子不再呱呱叫。奶酪……奶酪……吃下一口一声美妙……</p> |
| | | <p class="block">【蚂蚁们停下手里的搬运工作,看着队长】</p> |
| | | <p class="block">大头蚂蚁:(大喊)队长!</p> |
| | | <p class="block">【蚂蚁队长被吓醒,奶酪人趴在地上】</p> |
| | | <p class="block">小眼镜蚂蚁:队长!队长!<span class="un1">快点搬运吧</span>!这么<span |
| | | class="un1">热</span>的天,再不出发,奶酪就<span class="un1">化</span>啦!</p> |
| | | <p class="block">蚂蚁队长:说得对!我现在就<span class="un1">搬</span>!</p> |
| | | <p class="block">【蚂蚁队长走到奶酪面前使劲抬】</p> |
| | | <p class="block">蚂蚁队长:哎哟,哎哟,哎哟哟。</p> |
| | | <p class="block">【蚂蚁队长一次也没抬起来】</p> |
| | | <p class="block3"><span class="hs">选段2</span></p> |
| | | <p class="block">蚂蚁队长:(起身)<span class="un1">我决定了</span>!大家<span |
| | | class="un1">一起搬</span>!这块奶酪以我为首,搬运的路上<span class="un1">不许偷吃</span>!</p> |
| | | <p class="block">蚂蚁们:<span class="un1">是</span>!</p> |
| | | <p class="block">【蚂蚁们迅速围成一圈,蚂蚁队长站在奶酪最前面】</p> |
| | | <p class="block">蚂蚁队长:听我口令!3!2!1!抬!</p> |
| | | </div> |
| | | <p><br /></p> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">36</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="40"> |
| | | <div v-if="showPageList.indexOf(40) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/page6-header-green.png" alt="" style="height: auto; width: 100%" /> |
| | | </h1> |
| | | <div class="bodystyle"> |
| | | <p class="block">【奶酪被抬起】</p> |
| | | <p class="block">大头蚂蚁:哇!这块奶酪<span class="un1">好香噢</span>!</p> |
| | | <p class="block">小眼镜蚂蚁:我想<span class="un1">咬</span>一口!</p> |
| | | <p class="block">小蚂蚁:如果能<span class="un1">舔一下</span>就好了!</p> |
| | | <p class="block">蚂蚁小妹:我的口水流出来了!</p> |
| | | <p class="block">蚂蚁队长:不许瞎想!不许偷吃!<span class="un1">出发</span>!</p> |
| | | <p class="block">【音乐起,蚂蚁们抬着奶酪向前走着】</p> |
| | | <p class="block">蚂蚁们:奶酪!奶酪!我们的奶酪!奶酪!奶酪!我们一起分享。</p> |
| | | <p class="block">【蚂蚁们陶醉中】</p> |
| | | <p class="block3"><span class="hs">选段3</span></p> |
| | | <p class="block">嘭—</p> |
| | | <p class="block">【蚂蚁们用劲过猛,奶酪的一个角掉了】</p> |
| | | <p class="block">蚂蚁小妹:<span class="un1">啊</span>!队长!奶酪的角<span class="un1">掉了</span>!</p> |
| | | <p class="block">【大家看到掉在地上的奶酪】</p> |
| | | <p class="block">蚂蚁们:哇哦!</p> |
| | | <p class="block">蚂蚁队长:等等!</p> |
| | | <p class="block">【舞台变光,演员动作定格】</p> |
| | | <p class="block">蚂蚁队长:掉了<span class="un1">一个角</span>,这该<span class="un1">怎么办</span>!<span |
| | | class="un1">丢掉</span>,实在<span class="un1">太可惜</span>!<span |
| | | class="un1">趁机吃掉</span>,又要犯不许偷嘴的禁令。怎么办呢?有个办法!我要是<span class="un1">偷嘴</span>谁也<span |
| | | class="un1">看不见</span>,<span class="un1">这样</span>不就行啦!大家听好啦!</p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">37</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="41"> |
| | | <div v-if="showPageList.indexOf(41) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <p class="block3"><span class="hs">选段4</span></p> |
| | | <p class="block">【舞台变光,演员立正站好】</p> |
| | | <p class="block">蚂蚁队长:休息一会儿!</p> |
| | | <p class="block">蚂蚁小妹:<span class="un1">为什么</span>要休息呀?</p> |
| | | <p class="block">小眼镜蚂蚁:队长!这块掉在地上的奶酪<span class="un1">怎么办呀</span>?</p> |
| | | <p class="block">大头蚂蚁:我们要不把它<span class="un1">分了吧</span>!</p> |
| | | <p class="block">蚂蚁队长:听我说!<span class="un1">休息</span>!<span |
| | | class="un1">立刻休息</span>!大家搬运太辛苦啦!分散开,哪里凉快就到哪里休息!</p> |
| | | <p class="block">【大家依旧不动】</p> |
| | | <p class="block">蚂蚁队长:全体都有!稍息!立正!向后—转!齐步—走!</p> |
| | | <p class="block">蚂蚁队长:立—定!原地休息!</p> |
| | | <p class="block">【蚂蚁们跟随口令消失在草丛里】</p> |
| | | <p class="block3"><span class="hs">选段5</span></p> |
| | | <p class="block">【蚂蚁队长向草丛里望去,确定没有声响】</p> |
| | | <p class="block">蚂蚁队长:(小声)嘿嘿嘿,吃掉后就说被风刮走或者就说被老鹰吃掉就好啦!</p> |
| | | <p class="block">【蚂蚁队长低下头,嗅了一下奶酪】</p> |
| | | <p class="block">蚂蚁队长:味道<span class="un1">真</span>香!</p> |
| | | <p class="block">【蚂蚁队长的手伸向奶酪渣,突然,奶酪人站了起来】</p> |
| | | <p class="block">【变光】</p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">38</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="42"> |
| | | <div v-if="showPageList.indexOf(42) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <p class="block">奶酪人:不许吃!</p> |
| | | <p class="block">蚂蚁队长:(吓了一跳)你你你!你怎么<span class="un1">站</span>起来啦!</p> |
| | | <p class="block">奶酪人:我<span class="un1">实在</span>看不下去啦!</p> |
| | | <p class="block">蚂蚁队长:(害怕)救命哇!奶酪<span class="un1">活</span>啦!</p> |
| | | <p class="block">【蚂蚁队长跑】</p> |
| | | <p class="block">奶酪人:<span class="un1">站住</span>!</p> |
| | | <p class="block">蚂蚁队长:你要干什么?</p> |
| | | <p class="block">奶酪人:<span class="un1">这块</span>,<span class="un1">你不能吃</span>!</p> |
| | | <p class="block">蚂蚁队长:为什么?</p> |
| | | <p class="block">奶酪人:<span class="un1">第一</span>!<span class="un1">你</span>定的规矩,今天搬运中,<span |
| | | class="un1">不许偷吃</span>!如果<span class="un1">你</span>做不到,你就<span |
| | | class="un1">不能要求别人</span>!<span class="un1">第二</span>!你是<span |
| | | class="un1">蚂蚁队长</span>,大家选你当队长,是对你的<span class="un1">信任</span>和<span |
| | | class="un1">尊重</span>!你却背着大家<span class="un1">偷吃</span>!<span class="un1">第三</span>!<span |
| | | class="un1">诚实守信</span>是美德,你吃掉奶酪要<span class="un1">撒谎</span>,撒了<span |
| | | class="un1">一个</span>谎就要用<span class="un1">无数</span>的谎来圆第一个谎,最后<span |
| | | class="un1">还是</span>会被发现!</p> |
| | | <p class="block">蚂蚁队长:(低头)我不吃了,我知道<span class="un1">错了</span>……可是,这掉在地上的奶酪怎么办呢?</p> |
| | | <p class="block">奶酪人:(想了想)<span class="un1">有办法</span>!你可以选择大家<span |
| | | class="un1">一起分</span>,也可以选择给年龄最小的蚂蚁吃!</p> |
| | | <p class="block">蚂蚁队长:<span class="un1">好主意</span>!我这就问问大家,谢谢你!</p> |
| | | <p class="block">【变光,奶酪慢慢地躺在地上】</p> |
| | | <p class="block">蚂蚁队长:(喊)<span class="un1">注意啦</span>!全体都有!稍息!立正!</p> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-right">39</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page-box" page="43"> |
| | | <div v-if="showPageList.indexOf(43) > -1"> |
| | | <h1> |
| | | <img src="../../assets/images/header-green.png" alt="" style="width: 100%; height: auto" /> |
| | | </h1> |
| | | <img class="headerimg" src="../../assets/images/page5.png" alt="" /> |
| | | <div class="bodystyle"> |
| | | <p>向后转!齐步走!</p> |
| | | <p class="block">【蚂蚁们由四面八方走回来】</p> |
| | | <p class="block">蚂蚁队长:大家休息好啦!我有一个<span class="un1">决定</span>!</p> |
| | | <p class="block">蚂蚁们:什么决定?</p> |
| | | <p class="block">蚂蚁队长:这点儿奶酪渣是刚才弄掉的,丢了可惜,(指向小蚂蚁)你是我们中年龄最小的,<span class="un1">你</span>吃掉它吧!</p> |
| | | <p class="block">【蚂蚁们鼓掌】</p> |
| | | <p class="block">【音乐起,大家劲儿比刚才更足,抬起奶酪向山洞走去】</p> |
| | | <p class="block">【收光】</p> |
| | | </div> |
| | | </div> |
| | | <!-- 此次为页脚部分(需要设置页码) --> |
| | | <div class="page-footer"> |
| | | <img class="page-footer-image" src="../../assets/images/ym.jpg" alt="Page Image" /> |
| | | <div class="page-footer-number-left">40</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "chapterFive", |
| | | props: { |
| | | showPageList: { |
| | | type: Array, |
| | | }, |
| | | |
| | | }, |
| | | //在这里对调用的方法进行挂载 |
| | | mounted() { |
| | | }, |
| | | data() { |
| | | return { |
| | | }; |
| | | }, |
| | | methods: { |
| | | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .w70 { |
| | | width: 78%; |
| | | } |
| | | |
| | | .fw-400 { |
| | | font-weight: 400 !important; |
| | | } |
| | | |
| | | .fz-26 { |
| | | font-size: 26px !important; |
| | | } |
| | | |
| | | .cover-img { |
| | | position: absolute; |
| | | top: 33%; |
| | | left: 23%; |
| | | } |
| | | |
| | | .division-line { |
| | | width: 2px; |
| | | height: 100%; |
| | | background-color: red; |
| | | } |
| | | |
| | | .macthing { |
| | | background-color: rgb(188, 220, 164); |
| | | padding: 5% 0%; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="page-main" @scroll="throttledScrollHandler"> |
| | | <div id="searchDomBox" style="display: none"> |
| | | <div id="searchContent"></div> |
| | | </div> |
| | | <div |
| | | class="page-content" |
| | | :style="{ |
| | | fontSize: fontSize ? fontSize + 'px' : '16px', |
| | | transform: `scale(${pageZoom ? pageZoom : 1})`, |
| | | transformOrigin: 'center top', |
| | | }" |
| | | > |
| | | <pageHeader |
| | | v-if="showCatalogList.indexOf(1) > -1" |
| | | :showPageList="loadPageList" |
| | | ></pageHeader> |
| | | <chapterOne |
| | | v-if="showCatalogList.indexOf(2) > -1" |
| | | :showPageList="loadPageList" |
| | | ></chapterOne> |
| | | <chapterTwo |
| | | v-if="showCatalogList.indexOf(3) > -1" |
| | | :showPageList="loadPageList" |
| | | > |
| | | </chapterTwo> |
| | | <!-- <chapterThree |
| | | v-if="showCatalogList.indexOf(4) > -1" |
| | | :showPageList="loadPageList" |
| | | ></chapterThree> |
| | | <chapterFour |
| | | v-if="showCatalogList.indexOf(5) > -1" |
| | | :showPageList="loadPageList" |
| | | ></chapterFour> --> |
| | | |
| | | </div> |
| | | <!-- 音频小窗播放组件 --> |
| | | <miniAudio |
| | | :path="audioPath" |
| | | :currentTime="currentTime" |
| | | @closeMiniAudio="closeMiniAudio" |
| | | ref="audioPlayer" |
| | | ></miniAudio> |
| | | <div class="page-main" @scroll="throttledScrollHandler"> |
| | | <div id="searchDomBox" style="display: none"> |
| | | <div id="searchContent"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import pageHeader from "./header.vue"; |
| | | import chapterOne from "./chapter001.vue"; |
| | | import chapterTwo from "./chapter002.vue"; |
| | | // import chapterThree from "./chapter003.vue"; |
| | | // import chapterFour from "./chapter004.vue"; |
| | | import NoteIcon from "@/assets/images/biji.png"; |
| | | import miniAudio from "@/components/miniAudio/index.vue"; |
| | | import _ from "lodash"; |
| | | import Swiper from "swiper/bundle"; |
| | | import "swiper/swiper-bundle.css"; |
| | | import Viewer from "viewerjs"; |
| | | import "viewerjs/dist/viewer.css"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | catalogLength: 3, // 总章节数 |
| | | showCatalogList: [], // 显示的章节 |
| | | loadThreshold: 300, // 触发加载阈值 |
| | | throttleThreshold: 100, // 节流阈值 |
| | | previousScrollTop: 0, |
| | | throttledScrollHandler: null, |
| | | observer: null, |
| | | loadPageObserver: null, |
| | | loadPageList: [], |
| | | questionDataMap: {}, |
| | | renderSignMap: {}, |
| | | highlightData: null, |
| | | audioPath: "", |
| | | <div class="page-content" :style="{ |
| | | fontSize: fontSize ? fontSize + 'px' : '16px', |
| | | transform: `scale(${pageZoom ? pageZoom : 1})`, |
| | | transformOrigin: 'center top', |
| | | }"> |
| | | <pageHeader v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList"></pageHeader> |
| | | <chapterOne v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" @closeAudio="closeAudio"></chapterOne> |
| | | <chapterTwo v-if="showCatalogList.indexOf(3) > -1" :showPageList="loadPageList" @closeAudio="closeAudio"></chapterTwo> |
| | | <chapterThree v-if="showCatalogList.indexOf(4) > -1" :showPageList="loadPageList" @closeAudio="closeAudio"></chapterThree> |
| | | <chapterFour v-if="showCatalogList.indexOf(5) > -1" :showPageList="loadPageList" @closeAudio="closeAudio"></chapterFour> |
| | | <chapterFive v-if="showCatalogList.indexOf(6) > -1" :showPageList="loadPageList"></chapterFive> |
| | | </div> |
| | | <!-- 音频小窗播放组件 --> |
| | | <miniAudio :path="audioPath" :currentTime="currentTime" @closeMiniAudio="closeMiniAudio" ref="audioPlayer"> |
| | | </miniAudio> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import pageHeader from "./header.vue"; |
| | | import chapterOne from "./chapter001.vue"; |
| | | import chapterTwo from "./chapter002.vue"; |
| | | import chapterThree from "./chapter003.vue"; |
| | | import chapterFour from "./chapter004.vue"; |
| | | import chapterFive from "./chapter005.vue"; |
| | | import NoteIcon from "@/assets/images/biji.png"; |
| | | import miniAudio from "@/components/miniAudio/index.vue"; |
| | | import _ from "lodash"; |
| | | import Swiper from "swiper/bundle"; |
| | | import "swiper/swiper-bundle.css"; |
| | | import Viewer from "viewerjs"; |
| | | import "viewerjs/dist/viewer.css"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | catalogLength: 6, // 总章节数 |
| | | showCatalogList: [], // 显示的章节 |
| | | loadThreshold: 300, // 触发加载阈值 |
| | | throttleThreshold: 100, // 节流阈值 |
| | | previousScrollTop: 0, |
| | | throttledScrollHandler: null, |
| | | observer: null, |
| | | loadPageObserver: null, |
| | | loadPageList: [], |
| | | questionDataMap: {}, |
| | | renderSignMap: {}, |
| | | highlightData: null, |
| | | audioPath: "", |
| | | currentTime: null, |
| | | videoList: [], |
| | | }; |
| | | }; |
| | | }, |
| | | computed: { |
| | | fontSize() { |
| | | return this.$store.state.qiankun.fontSize; |
| | | }, |
| | | computed: { |
| | | fontSize() { |
| | | return this.$store.state.qiankun.fontSize; |
| | | }, |
| | | pageZoom() { |
| | | return this.$store.state.qiankun.scale / 100; |
| | | pageZoom() { |
| | | return this.$store.state.qiankun.scale / 100; |
| | | }, |
| | | }, |
| | | watch: { |
| | | showCatalogList: { |
| | | handler(newVal, oldVal) { |
| | | if ( |
| | | this.$store.state.qiankun && |
| | | this.$store.state.qiankun.catalogChange |
| | | ) { |
| | | // 调用父层方法 |
| | | this.$store.state.qiankun.catalogChange({ |
| | | showCatalogList: newVal, |
| | | }); |
| | | } |
| | | // 启动页码观察 |
| | | setTimeout(() => { |
| | | this.initObservation(); |
| | | this.initThemeColor(); |
| | | }, 500); |
| | | }, |
| | | }, |
| | | watch: { |
| | | showCatalogList: { |
| | | handler(newVal, oldVal) { |
| | | if ( |
| | | this.$store.state.qiankun && |
| | | this.$store.state.qiankun.catalogChange |
| | | ) { |
| | | // 调用父层方法 |
| | | this.$store.state.qiankun.catalogChange({ |
| | | showCatalogList: newVal, |
| | | }); |
| | | } |
| | | // 启动页码观察 |
| | | setTimeout(() => { |
| | | this.initObservation(); |
| | | this.initThemeColor(); |
| | | }, 500); |
| | | }, |
| | | }, |
| | | loadPageList: { |
| | | handler(newVal, oldVal) { |
| | | setTimeout(() => { |
| | | this.initSwiper(); |
| | | this.initViewer(); |
| | | }, 200); |
| | | }, |
| | | }, |
| | | pageZoom: { |
| | | handler(newVal, oldVal) { |
| | | const scrollBox = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(".page-main"); |
| | | scrollBox.scrollTop = (scrollBox.scrollTop / oldVal) * newVal; |
| | | }, |
| | | loadPageList: { |
| | | handler(newVal, oldVal) { |
| | | setTimeout(() => { |
| | | this.initSwiper(); |
| | | this.initViewer(); |
| | | }, 200); |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // 默认加载章节 |
| | | this.showCatalogList = [1]; |
| | | // 滚动监听节流 |
| | | this.throttledScrollHandler = _.throttle( |
| | | this.scrollFun, |
| | | this.throttleThreshold, |
| | | { leading: true, trailing: false } |
| | | ); |
| | | // 定义子层方法 |
| | | if (this.setGlobalState) { |
| | | // 提供页面跳转功能 |
| | | this.setGlobalState({ |
| | | gotoPage: (catalog, page) => { |
| | | this.gotoPage(catalog, page); |
| | | }, |
| | | // 渲染笔记、高亮、划线 |
| | | renderSign: (type, data) => { |
| | | // 因为调整为页面懒加载,所以渲染标记也需要按照页面进行处理,先储存数据,页面加载完成再渲染对应的标记; |
| | | this.handelSignData(type, data); |
| | | // this.renderSign(type, data); |
| | | }, |
| | | // 删除笔记、高亮、划线 |
| | | delSign: (data) => { |
| | | this.delSign(data); |
| | | }, |
| | | // 全文检索 |
| | | searchBookByKeyword: (keyword) => { |
| | | return this.searchTextByPage(keyword); |
| | | }, |
| | | // 跳转检索结果位置 |
| | | jumpSearchItem: (data) => { |
| | | this.searchItemLocation(data); |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | // 创建一个新的 Intersection Observer 实例,用于观察目标元素和执行相应的回调函数。 |
| | | // new IntersectionObserver(callback, options):使用之前定义的 callback 回调函数和 options 配置选项来初始化 Intersection Observer 实例。 |
| | | this.observer = new IntersectionObserver(this.pageChangeCallback, { |
| | | root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。 |
| | | rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合 |
| | | threshold: 0.5, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。 |
| | | }); |
| | | |
| | | this.loadPageObserver = new IntersectionObserver(this.loadPageCallback, { |
| | | root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。 |
| | | rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合 |
| | | threshold: 0, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。 |
| | | }); |
| | | |
| | | // 启动页码观察 |
| | | setTimeout(() => { |
| | | this.initObservation(); |
| | | this.initThemeColor(); |
| | | }, 500); |
| | | |
| | | // 测试页面跳转 |
| | | // setTimeout(() => { |
| | | // this.gotoPage(1, 10); |
| | | // setTimeout(() => { |
| | | // this.renderSign("Highlight", { |
| | | // id: "2ACA9359", |
| | | // txt: "题一学习主题一 运动", |
| | | // page: "10", |
| | | // type: "Highlight", |
| | | // color: "#F5E12A" |
| | | // }); |
| | | // setTimeout(() => { |
| | | // this.delSign({ |
| | | // ids: ["2ACA9359"] |
| | | // }); |
| | | // }, 2000); |
| | | // }, 5000); |
| | | |
| | | // const pageDom = (this.container ? this.container : document) |
| | | // .querySelector("#app") |
| | | // .querySelectorAll(".page-box"); |
| | | // 检索 |
| | | // console.log(this.searchTextByPage("保护内脏器官"), "searchTextByPage"); |
| | | // 检索跳转 |
| | | // this.searchItemLocation({ |
| | | // catalog: 2, |
| | | // page: 10, |
| | | // txt: " 运动系统是由骨、骨连结和骨骼肌三部分组成的。全身的骨通过骨连结组成人体骨骼(见图1-1)。骨骼是人体的支架,具有保护内脏器官、供肌肉附着和作为肌肉运动的杠杆等作用。在神经系统的支配下,肌肉收缩牵动所附着的骨绕着关节转动,使身体产生各种动作。所以,运动系统具有运动、支持和保护等功能,幼年时期的骨骼还具有造血功能。 ", |
| | | // txtIndex: 57 |
| | | // }); |
| | | // }, 5000); |
| | | }, |
| | | methods: { |
| | | // setZoom1() { |
| | | // let scale = this.$store.state.qiankun.scale + 10; |
| | | // const scrollBox = ( |
| | | // this.container ? this.container : document |
| | | // ).querySelector(".page-main"); |
| | | // this.$store.commit("setZoom", scale); |
| | | // }, |
| | | // setZoom2() { |
| | | // let scale = this.$store.state.qiankun.scale - 10; |
| | | // const scrollBox = ( |
| | | // this.container ? this.container : document |
| | | // ).querySelector(".page-main"); |
| | | // this.$store.commit("setZoom", scale); |
| | | // }, |
| | | // 滚动监听 |
| | | scrollFun(event) { |
| | | // 判断向上滚动还是向下滚动 |
| | | if (event.target.scrollTop > this.previousScrollTop) { |
| | | this.getAduio(); |
| | | // 向下 |
| | | const currentScrollTop = |
| | | event.target.scrollTop + event.target.offsetHeight; |
| | | if ( |
| | | currentScrollTop >= |
| | | event.target.scrollHeight - this.loadThreshold |
| | | ) { |
| | | // 到达阈值 |
| | | if ( |
| | | this.showCatalogList[this.showCatalogList.length - 1] < |
| | | this.catalogLength |
| | | ) { |
| | | // 加载下一章 |
| | | this.showCatalogList.push( |
| | | this.showCatalogList[this.showCatalogList.length - 1] + 1 |
| | | ); |
| | | if (this.showCatalogList.length > 3) { |
| | | // 超过三章隐藏顶部一章 |
| | | this.showCatalogList.shift(); |
| | | } |
| | | } |
| | | } |
| | | } else if (event.target.scrollTop < this.previousScrollTop) { |
| | | // 向上 |
| | | this.handleAudio(); |
| | | const currentScrollTop = event.target.scrollTop; |
| | | if (currentScrollTop <= this.loadThreshold) { |
| | | // 到达阈值 |
| | | if (this.showCatalogList[0] > 0) { |
| | | // 加载上一章 |
| | | this.showCatalogList.unshift(this.showCatalogList[0] - 1); |
| | | if (this.showCatalogList.length > 3) { |
| | | // 超过三章隐藏底部一章 |
| | | this.showCatalogList.pop(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // showCatalogList 当前显示的三个章节,watch监听传递给主应用 |
| | | // 更新上一次滚动的位置 |
| | | this.previousScrollTop = event.target.scrollTop; |
| | | }, |
| | | // 章节、页面跳转 |
| | | gotoPage(catalog, page) { |
| | | if (catalog >= 0 && catalog <= this.catalogLength) { |
| | | // 处理渲染章节 |
| | | if (catalog == 0) { |
| | | this.showCatalogList = [0, 1]; |
| | | } else if (catalog == this.catalogLength) { |
| | | this.showCatalogList = [ |
| | | this.catalogLength - 2, |
| | | this.catalogLength - 1, |
| | | this.catalogLength, |
| | | ]; |
| | | } else { |
| | | this.showCatalogList = [catalog - 1, catalog, catalog + 1]; |
| | | } |
| | | setTimeout(() => { |
| | | // 跳转页码 |
| | | const pageDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(`[page="${page}"]`); |
| | | if (pageDom) { |
| | | pageDom.scrollIntoView(); |
| | | } else { |
| | | console.log("页码错误!"); |
| | | } |
| | | }, 500); |
| | | } else { |
| | | console.log("章节错误!"); |
| | | } |
| | | }, |
| | | |
| | | // 处理标记数据 |
| | | handelSignData(type, data) { |
| | | if (this.loadPageList.indexOf(Number(data.page)) > -1) { |
| | | // 立即渲染 |
| | | this.renderSign(type, data); |
| | | } |
| | | |
| | | // 储存数据 |
| | | if (!this.renderSignMap[type]) this.renderSignMap[type] = {}; |
| | | if (!this.renderSignMap[type][data.page]) |
| | | this.renderSignMap[type][data.page] = []; |
| | | this.renderSignMap[type][data.page].push(data); |
| | | }, |
| | | |
| | | // 渲染标记 |
| | | renderSign(type, data) { |
| | | // 父层设置禁止渲染标记时不再进行渲染 |
| | | if (this.$store.state.qiankun.disableSign) { |
| | | return false; |
| | | } |
| | | const existence = ( |
| | | pageZoom: { |
| | | handler(newVal, oldVal) { |
| | | const scrollBox = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(`[dataid="${data.id}"]`); |
| | | // 去重 |
| | | if (!existence) { |
| | | ).querySelector(".page-main"); |
| | | scrollBox.scrollTop = (scrollBox.scrollTop / oldVal) * newVal; |
| | | }, |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // 默认加载章节 |
| | | this.showCatalogList = [1]; |
| | | // 滚动监听节流 |
| | | this.throttledScrollHandler = _.throttle( |
| | | this.scrollFun, |
| | | this.throttleThreshold, |
| | | { leading: true, trailing: false } |
| | | ); |
| | | // 定义子层方法 |
| | | if (this.setGlobalState) { |
| | | // 提供页面跳转功能 |
| | | this.setGlobalState({ |
| | | gotoPage: (catalog, page) => { |
| | | this.gotoPage(catalog, page); |
| | | }, |
| | | // 渲染笔记、高亮、划线 |
| | | renderSign: (type, data) => { |
| | | // 因为调整为页面懒加载,所以渲染标记也需要按照页面进行处理,先储存数据,页面加载完成再渲染对应的标记; |
| | | this.handelSignData(type, data); |
| | | // this.renderSign(type, data); |
| | | }, |
| | | // 删除笔记、高亮、划线 |
| | | delSign: (data) => { |
| | | this.delSign(data); |
| | | }, |
| | | // 全文检索 |
| | | searchBookByKeyword: (keyword) => { |
| | | return this.searchTextByPage(keyword); |
| | | }, |
| | | // 跳转检索结果位置 |
| | | jumpSearchItem: (data) => { |
| | | this.searchItemLocation(data); |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | // 创建一个新的 Intersection Observer 实例,用于观察目标元素和执行相应的回调函数。 |
| | | // new IntersectionObserver(callback, options):使用之前定义的 callback 回调函数和 options 配置选项来初始化 Intersection Observer 实例。 |
| | | this.observer = new IntersectionObserver(this.pageChangeCallback, { |
| | | root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。 |
| | | rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合 |
| | | threshold: 0.5, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。 |
| | | }); |
| | | |
| | | this.loadPageObserver = new IntersectionObserver(this.loadPageCallback, { |
| | | root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。 |
| | | rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合 |
| | | threshold: 0, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。 |
| | | }); |
| | | |
| | | // 启动页码观察 |
| | | setTimeout(() => { |
| | | this.initObservation(); |
| | | this.initThemeColor(); |
| | | }, 500); |
| | | |
| | | // 测试页面跳转 |
| | | // setTimeout(() => { |
| | | // this.gotoPage(1, 10); |
| | | // setTimeout(() => { |
| | | // this.renderSign("Highlight", { |
| | | // id: "2ACA9359", |
| | | // txt: "题一学习主题一 运动", |
| | | // page: "10", |
| | | // type: "Highlight", |
| | | // color: "#F5E12A" |
| | | // }); |
| | | // setTimeout(() => { |
| | | // this.delSign({ |
| | | // ids: ["2ACA9359"] |
| | | // }); |
| | | // }, 2000); |
| | | // }, 5000); |
| | | |
| | | // const pageDom = (this.container ? this.container : document) |
| | | // .querySelector("#app") |
| | | // .querySelectorAll(".page-box"); |
| | | // 检索 |
| | | // console.log(this.searchTextByPage("保护内脏器官"), "searchTextByPage"); |
| | | // 检索跳转 |
| | | // this.searchItemLocation({ |
| | | // catalog: 2, |
| | | // page: 10, |
| | | // txt: " 运动系统是由骨、骨连结和骨骼肌三部分组成的。全身的骨通过骨连结组成人体骨骼(见图1-1)。骨骼是人体的支架,具有保护内脏器官、供肌肉附着和作为肌肉运动的杠杆等作用。在神经系统的支配下,肌肉收缩牵动所附着的骨绕着关节转动,使身体产生各种动作。所以,运动系统具有运动、支持和保护等功能,幼年时期的骨骼还具有造血功能。 ", |
| | | // txtIndex: 57 |
| | | // }); |
| | | // }, 5000); |
| | | }, |
| | | methods: { |
| | | // setZoom1() { |
| | | // let scale = this.$store.state.qiankun.scale + 10; |
| | | // const scrollBox = ( |
| | | // this.container ? this.container : document |
| | | // ).querySelector(".page-main"); |
| | | // this.$store.commit("setZoom", scale); |
| | | // }, |
| | | // setZoom2() { |
| | | // let scale = this.$store.state.qiankun.scale - 10; |
| | | // const scrollBox = ( |
| | | // this.container ? this.container : document |
| | | // ).querySelector(".page-main"); |
| | | // this.$store.commit("setZoom", scale); |
| | | // }, |
| | | // 滚动监听 |
| | | scrollFun(event) { |
| | | // 判断向上滚动还是向下滚动 |
| | | if (event.target.scrollTop > this.previousScrollTop) { |
| | | this.getAduio(); |
| | | // 向下 |
| | | const currentScrollTop = |
| | | event.target.scrollTop + event.target.offsetHeight; |
| | | if ( |
| | | currentScrollTop >= |
| | | event.target.scrollHeight - this.loadThreshold |
| | | ) { |
| | | // 到达阈值 |
| | | if ( |
| | | this.showCatalogList[this.showCatalogList.length - 1] < |
| | | this.catalogLength |
| | | ) { |
| | | // 加载下一章 |
| | | this.showCatalogList.push( |
| | | this.showCatalogList[this.showCatalogList.length - 1] + 1 |
| | | ); |
| | | if (this.showCatalogList.length > 3) { |
| | | // 超过三章隐藏顶部一章 |
| | | this.showCatalogList.shift(); |
| | | } |
| | | } |
| | | } |
| | | } else if (event.target.scrollTop < this.previousScrollTop) { |
| | | // 向上 |
| | | this.handleAudio(); |
| | | const currentScrollTop = event.target.scrollTop; |
| | | if (currentScrollTop <= this.loadThreshold) { |
| | | // 到达阈值 |
| | | if (this.showCatalogList[0] > 0) { |
| | | // 加载上一章 |
| | | this.showCatalogList.unshift(this.showCatalogList[0] - 1); |
| | | if (this.showCatalogList.length > 3) { |
| | | // 超过三章隐藏底部一章 |
| | | this.showCatalogList.pop(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // showCatalogList 当前显示的三个章节,watch监听传递给主应用 |
| | | // 更新上一次滚动的位置 |
| | | this.previousScrollTop = event.target.scrollTop; |
| | | }, |
| | | // 章节、页面跳转 |
| | | gotoPage(catalog, page) { |
| | | if (catalog >= 0 && catalog <= this.catalogLength) { |
| | | // 处理渲染章节 |
| | | if (catalog == 0) { |
| | | this.showCatalogList = [0, 1]; |
| | | } else if (catalog == this.catalogLength) { |
| | | this.showCatalogList = [ |
| | | this.catalogLength - 2, |
| | | this.catalogLength - 1, |
| | | this.catalogLength, |
| | | ]; |
| | | } else { |
| | | this.showCatalogList = [catalog - 1, catalog, catalog + 1]; |
| | | } |
| | | setTimeout(() => { |
| | | // 跳转页码 |
| | | const pageDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(`[page="${data.page}"]`); |
| | | // 创建 createTreeWalker 迭代器,用于遍历文本节点,保存到一个数组 |
| | | const treeWalker = document.createTreeWalker(pageDom, NodeFilter.SHOW_TEXT); |
| | | const allTextNodes = []; |
| | | let currentNode = treeWalker.nextNode(); |
| | | while (currentNode) { |
| | | allTextNodes.push(currentNode); |
| | | currentNode = treeWalker.nextNode(); |
| | | ).querySelector(`[page="${page}"]`); |
| | | if (pageDom) { |
| | | pageDom.scrollIntoView(); |
| | | } else { |
| | | console.log("页码错误!"); |
| | | } |
| | | for (let i = 0; i < allTextNodes.length; i++) { |
| | | const textDom = allTextNodes[i]; |
| | | if (textDom.textContent.indexOf(data.txt) > -1) { |
| | | let reg = new RegExp(`${data.txt}`, "ig"); |
| | | switch (type) { |
| | | case "Highlight": |
| | | // 高亮 |
| | | textDom.parentNode.innerHTML = |
| | | textDom.parentNode.innerHTML.replace( |
| | | reg, |
| | | `<span datatype="Highlight" dataid="${data.id}" style="background: ${data.color};" class="highLight" onclick="signClick('Highlight','${data.id}','${data.chapterNum}')">${data.txt}</span>` |
| | | ); |
| | | break; |
| | | case "Dashing": |
| | | // 划线 |
| | | textDom.parentNode.innerHTML = |
| | | textDom.parentNode.innerHTML.replace( |
| | | reg, |
| | | `<span datatype="Dashing" dataid="${data.id}" style="text-decoration-color:${data.color};" class="underline" onclick="signClick('Dashing','${data.id}','${data.chapterNum}')">${data.txt}</span>` |
| | | ); |
| | | break; |
| | | case "Note": |
| | | // 笔记 |
| | | textDom.parentNode.innerHTML = |
| | | textDom.parentNode.innerHTML.replace( |
| | | reg, |
| | | `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')" onmouseout="noteOut('Note')">${data.txt}<img src="${NoteIcon}"/></span>` |
| | | ); |
| | | break; |
| | | } |
| | | }, 500); |
| | | } else { |
| | | console.log("章节错误!"); |
| | | } |
| | | }, |
| | | |
| | | // 处理标记数据 |
| | | handelSignData(type, data) { |
| | | if (this.loadPageList.indexOf(Number(data.page)) > -1) { |
| | | // 立即渲染 |
| | | this.renderSign(type, data); |
| | | } |
| | | |
| | | // 储存数据 |
| | | if (!this.renderSignMap[type]) this.renderSignMap[type] = {}; |
| | | if (!this.renderSignMap[type][data.page]) |
| | | this.renderSignMap[type][data.page] = []; |
| | | this.renderSignMap[type][data.page].push(data); |
| | | }, |
| | | |
| | | // 渲染标记 |
| | | renderSign(type, data) { |
| | | // 父层设置禁止渲染标记时不再进行渲染 |
| | | if (this.$store.state.qiankun.disableSign) { |
| | | return false; |
| | | } |
| | | const existence = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(`[dataid="${data.id}"]`); |
| | | // 去重 |
| | | if (!existence) { |
| | | const pageDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(`[page="${data.page}"]`); |
| | | // 创建 createTreeWalker 迭代器,用于遍历文本节点,保存到一个数组 |
| | | const treeWalker = document.createTreeWalker(pageDom, NodeFilter.SHOW_TEXT); |
| | | const allTextNodes = []; |
| | | let currentNode = treeWalker.nextNode(); |
| | | while (currentNode) { |
| | | allTextNodes.push(currentNode); |
| | | currentNode = treeWalker.nextNode(); |
| | | } |
| | | for (let i = 0; i < allTextNodes.length; i++) { |
| | | const textDom = allTextNodes[i]; |
| | | if (textDom.textContent.indexOf(data.txt) > -1) { |
| | | let reg = new RegExp(`${data.txt}`, "ig"); |
| | | switch (type) { |
| | | case "Highlight": |
| | | // 高亮 |
| | | textDom.parentNode.innerHTML = |
| | | textDom.parentNode.innerHTML.replace( |
| | | reg, |
| | | `<span datatype="Highlight" dataid="${data.id}" style="background: ${data.color};" class="highLight" onclick="signClick('Highlight','${data.id}','${data.chapterNum}')">${data.txt}</span>` |
| | | ); |
| | | break; |
| | | case "Dashing": |
| | | // 划线 |
| | | textDom.parentNode.innerHTML = |
| | | textDom.parentNode.innerHTML.replace( |
| | | reg, |
| | | `<span datatype="Dashing" dataid="${data.id}" style="text-decoration-color:${data.color};" class="underline" onclick="signClick('Dashing','${data.id}','${data.chapterNum}')">${data.txt}</span>` |
| | | ); |
| | | break; |
| | | case "Note": |
| | | // 笔记 |
| | | textDom.parentNode.innerHTML = |
| | | textDom.parentNode.innerHTML.replace( |
| | | reg, |
| | | `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')" onmouseout="noteOut('Note')">${data.txt}<img src="${NoteIcon}"/></span>` |
| | | ); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // 删除标记渲染 |
| | | delSign({ ids, type }) { |
| | | if (ids && ids.length) { |
| | | for (let i = 0; i < ids.length; i++) { |
| | | const id = ids[i]; |
| | | const dom = ( |
| | | this.container ? this.container : document |
| | | ).querySelector(`[dataid="${id}"]`); |
| | | dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace( |
| | | dom.outerHTML, |
| | | dom.outerText |
| | | ); |
| | | } |
| | | } |
| | | if (type) { |
| | | const doms = ( |
| | | } |
| | | }, |
| | | // 删除标记渲染 |
| | | delSign({ ids, type }) { |
| | | if (ids && ids.length) { |
| | | for (let i = 0; i < ids.length; i++) { |
| | | const id = ids[i]; |
| | | const dom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(`[datatype="${type}"]`); |
| | | for (let i = 0; i < doms.length; i++) { |
| | | const dom = doms[i]; |
| | | dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace( |
| | | dom.outerHTML, |
| | | dom.outerText |
| | | ); |
| | | ).querySelector(`[dataid="${id}"]`); |
| | | dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace( |
| | | dom.outerHTML, |
| | | dom.outerText |
| | | ); |
| | | } |
| | | } |
| | | if (type) { |
| | | const doms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(`[datatype="${type}"]`); |
| | | for (let i = 0; i < doms.length; i++) { |
| | | const dom = doms[i]; |
| | | dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace( |
| | | dom.outerHTML, |
| | | dom.outerText |
| | | ); |
| | | } |
| | | } |
| | | }, |
| | | initObservation() { |
| | | const sections = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".page-box"); |
| | | sections.forEach((section) => { |
| | | if (this.config.activeBook && this.config.activeBook.tryPageCount) { |
| | | const page = section.getAttribute("page"); |
| | | if (Number(page) > this.config.activeBook.tryPageCount) { |
| | | let chapterDom = this.getParentWithClass(section, "chapter"); |
| | | const chapterNum = chapterDom.getAttribute("num"); |
| | | this.catalogLength = Number(chapterNum) - 1; |
| | | section.remove(); |
| | | return false; |
| | | } |
| | | } |
| | | }, |
| | | initObservation() { |
| | | const sections = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".page-box"); |
| | | sections.forEach((section) => { |
| | | if (this.config.activeBook && this.config.activeBook.tryPageCount) { |
| | | const page = section.getAttribute("page"); |
| | | if (Number(page) > this.config.activeBook.tryPageCount) { |
| | | let chapterDom = this.getParentWithClass(section, "chapter"); |
| | | const chapterNum = chapterDom.getAttribute("num"); |
| | | this.catalogLength = Number(chapterNum) - 1; |
| | | section.remove(); |
| | | return false; |
| | | } |
| | | } |
| | | // observer 观察每个元素,以便在它们进入或离开视窗时触发回调函数。 |
| | | const isObserver = section.getAttribute("observer"); |
| | | const isLoadObserver = section.getAttribute("loadObserver"); |
| | | if (!isObserver) { |
| | | this.observer.observe(section); |
| | | section.setAttribute("observer", "1"); |
| | | } |
| | | if (!isLoadObserver) { |
| | | this.loadPageObserver.observe(section); |
| | | section.setAttribute("loadObserver", "1"); |
| | | } |
| | | }); |
| | | }, |
| | | initThemeColor() { |
| | | // 获取各种需要主题色的节点 |
| | | const colorDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".theme-color"); |
| | | const backgroundColorDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".theme-back"); |
| | | const borderColorDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".theme-border"); |
| | | // 获取配置的主题色 |
| | | const bookThemeColor = |
| | | this.config.activeBook && this.config.activeBook.bookThemeColor |
| | | ? this.config.activeBook.bookThemeColor |
| | | : null; |
| | | const chapterThemeColor = |
| | | this.config.activeBook && this.config.activeBook.chapterThemeColor |
| | | ? this.config.activeBook.chapterThemeColor |
| | | : null; |
| | | const pageThemeColor = |
| | | this.config.activeBook && this.config.activeBook.pageThemeColor |
| | | ? this.config.activeBook.pageThemeColor |
| | | : null; |
| | | colorDom.forEach((domItem) => { |
| | | // 获取章节、页码 |
| | | let pageDom = this.getParentWithClass(domItem, "page-box"); |
| | | let chapterDom = this.getParentWithClass(domItem, "chapter"); |
| | | let page, chapterNum; |
| | | if (pageDom) page = pageDom.getAttribute("page"); |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | // 向上匹配主题色 |
| | | const themeColor = |
| | | page && pageThemeColor && pageThemeColor[page] |
| | | ? pageThemeColor[page] |
| | | : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] |
| | | ? chapterThemeColor[chapterNum] |
| | | : bookThemeColor; |
| | | if (themeColor) { |
| | | domItem.style.color = themeColor; |
| | | } |
| | | }); |
| | | backgroundColorDom.forEach((domItem) => { |
| | | // 获取章节、页码 |
| | | let pageDom = this.getParentWithClass(domItem, "page-box"); |
| | | let chapterDom = this.getParentWithClass(domItem, "chapter"); |
| | | let page, chapterNum; |
| | | if (pageDom) page = pageDom.getAttribute("page"); |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | // 向上匹配主题色 |
| | | const themeColor = |
| | | page && pageThemeColor && pageThemeColor[page] |
| | | ? pageThemeColor[page] |
| | | : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] |
| | | ? chapterThemeColor[chapterNum] |
| | | : bookThemeColor; |
| | | if (themeColor) { |
| | | domItem.style.backgroundColor = themeColor; |
| | | } |
| | | }); |
| | | borderColorDom.forEach((domItem) => { |
| | | // 获取章节、页码 |
| | | let pageDom = this.getParentWithClass(domItem, "page-box"); |
| | | let chapterDom = this.getParentWithClass(domItem, "chapter"); |
| | | let page, chapterNum; |
| | | if (pageDom) page = pageDom.getAttribute("page"); |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | // 向上匹配主题色 |
| | | const themeColor = |
| | | page && pageThemeColor && pageThemeColor[page] |
| | | ? pageThemeColor[page] |
| | | : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] |
| | | ? chapterThemeColor[chapterNum] |
| | | : bookThemeColor; |
| | | if (themeColor) { |
| | | domItem.style.borderColor = themeColor; |
| | | } |
| | | }); |
| | | }, |
| | | getParentWithClass(element, className) { |
| | | console.log(element, className, "element, className"); |
| | | while (element.parentElement) { |
| | | element = element.parentElement; |
| | | if (element.classList.contains(className)) { |
| | | return element; |
| | | } |
| | | // observer 观察每个元素,以便在它们进入或离开视窗时触发回调函数。 |
| | | const isObserver = section.getAttribute("observer"); |
| | | const isLoadObserver = section.getAttribute("loadObserver"); |
| | | if (!isObserver) { |
| | | this.observer.observe(section); |
| | | section.setAttribute("observer", "1"); |
| | | } |
| | | }, |
| | | pageChangeCallback(entries, observer) { |
| | | //entries:代表观察到的目标元素的集合。 observer:代表观察者对象。 |
| | | entries.forEach((entry) => { |
| | | //entry.isIntersecting:检查当前目标元素是否与根元素相交。 |
| | | if (entry.isIntersecting) { |
| | | const target = entry.target; |
| | | //entry.target:获取当前目标元素 |
| | | const page = target.getAttribute("page"); |
| | | if (!isLoadObserver) { |
| | | this.loadPageObserver.observe(section); |
| | | section.setAttribute("loadObserver", "1"); |
| | | } |
| | | }); |
| | | }, |
| | | initThemeColor() { |
| | | // 获取各种需要主题色的节点 |
| | | const colorDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".theme-color"); |
| | | const backgroundColorDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".theme-back"); |
| | | const borderColorDom = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".theme-border"); |
| | | // 获取配置的主题色 |
| | | const bookThemeColor = |
| | | this.config.activeBook && this.config.activeBook.bookThemeColor |
| | | ? this.config.activeBook.bookThemeColor |
| | | : null; |
| | | const chapterThemeColor = |
| | | this.config.activeBook && this.config.activeBook.chapterThemeColor |
| | | ? this.config.activeBook.chapterThemeColor |
| | | : null; |
| | | const pageThemeColor = |
| | | this.config.activeBook && this.config.activeBook.pageThemeColor |
| | | ? this.config.activeBook.pageThemeColor |
| | | : null; |
| | | colorDom.forEach((domItem) => { |
| | | // 获取章节、页码 |
| | | let pageDom = this.getParentWithClass(domItem, "page-box"); |
| | | let chapterDom = this.getParentWithClass(domItem, "chapter"); |
| | | let page, chapterNum; |
| | | if (pageDom) page = pageDom.getAttribute("page"); |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | // 向上匹配主题色 |
| | | const themeColor = |
| | | page && pageThemeColor && pageThemeColor[page] |
| | | ? pageThemeColor[page] |
| | | : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] |
| | | ? chapterThemeColor[chapterNum] |
| | | : bookThemeColor; |
| | | if (themeColor) { |
| | | domItem.style.color = themeColor; |
| | | } |
| | | }); |
| | | backgroundColorDom.forEach((domItem) => { |
| | | // 获取章节、页码 |
| | | let pageDom = this.getParentWithClass(domItem, "page-box"); |
| | | let chapterDom = this.getParentWithClass(domItem, "chapter"); |
| | | let page, chapterNum; |
| | | if (pageDom) page = pageDom.getAttribute("page"); |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | // 向上匹配主题色 |
| | | const themeColor = |
| | | page && pageThemeColor && pageThemeColor[page] |
| | | ? pageThemeColor[page] |
| | | : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] |
| | | ? chapterThemeColor[chapterNum] |
| | | : bookThemeColor; |
| | | if (themeColor) { |
| | | domItem.style.backgroundColor = themeColor; |
| | | } |
| | | }); |
| | | borderColorDom.forEach((domItem) => { |
| | | // 获取章节、页码 |
| | | let pageDom = this.getParentWithClass(domItem, "page-box"); |
| | | let chapterDom = this.getParentWithClass(domItem, "chapter"); |
| | | let page, chapterNum; |
| | | if (pageDom) page = pageDom.getAttribute("page"); |
| | | if (chapterDom) chapterNum = chapterDom.getAttribute("num"); |
| | | // 向上匹配主题色 |
| | | const themeColor = |
| | | page && pageThemeColor && pageThemeColor[page] |
| | | ? pageThemeColor[page] |
| | | : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] |
| | | ? chapterThemeColor[chapterNum] |
| | | : bookThemeColor; |
| | | if (themeColor) { |
| | | domItem.style.borderColor = themeColor; |
| | | } |
| | | }); |
| | | }, |
| | | getParentWithClass(element, className) { |
| | | console.log(element, className, "element, className"); |
| | | while (element.parentElement) { |
| | | element = element.parentElement; |
| | | if (element.classList.contains(className)) { |
| | | return element; |
| | | } |
| | | } |
| | | }, |
| | | pageChangeCallback(entries, observer) { |
| | | //entries:代表观察到的目标元素的集合。 observer:代表观察者对象。 |
| | | entries.forEach((entry) => { |
| | | //entry.isIntersecting:检查当前目标元素是否与根元素相交。 |
| | | if (entry.isIntersecting) { |
| | | const target = entry.target; |
| | | //entry.target:获取当前目标元素 |
| | | const page = target.getAttribute("page"); |
| | | const catalogDom = this.tool.getParentNodeByClassName( |
| | | target, |
| | | "chapter" |
| | | ); |
| | | const catalog = catalogDom.getAttribute("num"); |
| | | let text = null; |
| | | if (target.querySelector("p")) { |
| | | text = target.querySelector("p").textContent.substring(0, 50); |
| | | } |
| | | // 返回页码和章节信息 |
| | | if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange) |
| | | this.$store.state.qiankun.pageChange({ |
| | | page: page, |
| | | catalog: catalog, |
| | | text, |
| | | }); |
| | | // const sections = Array.from(document.querySelectorAll(".section")); |
| | | //sections:获取所有具有 .section 类名的元素,并转换为数组。 |
| | | // let index = sections.findIndex((section) => section === target) + 1; |
| | | //index:查找当前目标元素在 sections 数组中的索引,并加 1,用于确定当前页码。 |
| | | } |
| | | }); |
| | | }, |
| | | loadPageCallback(entries, observer) { |
| | | entries.forEach(async (entry) => { |
| | | if (entry.isIntersecting) { |
| | | const target = entry.target; |
| | | const page = target.getAttribute("page"); |
| | | if (this.loadPageList.indexOf(Number(page)) == -1) { |
| | | const catalogDom = this.tool.getParentNodeByClassName( |
| | | target, |
| | | "chapter" |
| | | ); |
| | | // 添加页码 |
| | | this.loadPageList.push(Number(page)); |
| | | const catalog = catalogDom.getAttribute("num"); |
| | | let text = null; |
| | | if (target.querySelector("p")) { |
| | | text = target.querySelector("p").textContent.substring(0, 50); |
| | | } |
| | | // 返回页码和章节信息 |
| | | if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange) |
| | | this.$store.state.qiankun.pageChange({ |
| | | page: page, |
| | | catalog: catalog, |
| | | text, |
| | | }); |
| | | // const sections = Array.from(document.querySelectorAll(".section")); |
| | | //sections:获取所有具有 .section 类名的元素,并转换为数组。 |
| | | // let index = sections.findIndex((section) => section === target) + 1; |
| | | //index:查找当前目标元素在 sections 数组中的索引,并加 1,用于确定当前页码。 |
| | | } |
| | | }); |
| | | }, |
| | | loadPageCallback(entries, observer) { |
| | | entries.forEach(async (entry) => { |
| | | if (entry.isIntersecting) { |
| | | const target = entry.target; |
| | | const page = target.getAttribute("page"); |
| | | if (this.loadPageList.indexOf(Number(page)) == -1) { |
| | | const catalogDom = this.tool.getParentNodeByClassName( |
| | | target, |
| | | "chapter" |
| | | ); |
| | | // 添加页码 |
| | | this.loadPageList.push(Number(page)); |
| | | const catalog = catalogDom.getAttribute("num"); |
| | | // if (!this.questionDataMap[page]) { |
| | | // if (testData && testData[catalog]) { |
| | | // if (testData[catalog][page]) { |
| | | // if (Array.isArray(testData[catalog][page])) { |
| | | // this.questionDataMap[page] = await getQuestionList( |
| | | // page, |
| | | // testData[catalog][page], |
| | | // this.config.activeBook |
| | | // ); |
| | | // } else { |
| | | // const obj = {}; |
| | | // for (let key in testData[catalog][page]) { |
| | | // obj[key] = await getQuestionList( |
| | | // [], |
| | | // testData[catalog][page][key], |
| | | // this.config.activeBook |
| | | // ); |
| | | // } |
| | | // this.questionDataMap[page] = obj; |
| | | // } |
| | | // console.log("题目", this.questionDataMap); |
| | | // } |
| | | // } |
| | | // } |
| | | // 渲染这一页的标记 |
| | | for (const key in this.renderSignMap) { |
| | | if (this.renderSignMap[key][page]) { |
| | | this.renderSignMap[key][page].forEach((item) => { |
| | | this.renderSign(key, item); |
| | | }); |
| | | } |
| | | } |
| | | // 处理高亮 |
| | | if (this.highlightData) { |
| | | // 高亮行 |
| | | setTimeout(() => { |
| | | // 获取页面所有text节点 |
| | | const pageTextList = document.createTreeWalker(target, NodeFilter.SHOW_TEXT); |
| | | // 匹配关键字 |
| | | const allPageTextNodes = []; |
| | | let currentNode = pageTextList.nextNode(); |
| | | while (currentNode) { |
| | | allPageTextNodes.push(currentNode); |
| | | currentNode = pageTextList.nextNode(); |
| | | } |
| | | for (let i = 0; i < allPageTextNodes.length; i++) { |
| | | const textDom = allPageTextNodes[i]; |
| | | let txtIndex = textDom.textContent.indexOf( |
| | | this.highlightData.txt |
| | | ); |
| | | if (txtIndex > -1) { |
| | | textDom.parentNode.style.transition = |
| | | "background-color 0.8s"; |
| | | textDom.parentNode.scrollIntoView(); |
| | | textDom.parentNode.style.backgroundColor = "#79bbf0"; |
| | | setTimeout(() => { |
| | | textDom.parentNode.style.backgroundColor = ""; |
| | | }, 1000); |
| | | } |
| | | } |
| | | }, 100); |
| | | } |
| | | if (this.loadPageList.length > 5) { |
| | | // 超过5页 |
| | | this.loadPageList.shift(); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | initSwiper() { |
| | | const doms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".swiper-img"); |
| | | for (let i = 0; i < doms.length; i++) { |
| | | const dom = doms[i]; |
| | | new Swiper(dom, { |
| | | loop: false, // 无缝 |
| | | autoplay: { |
| | | //自动开始 |
| | | delay: 3000, //时间间隔 |
| | | disableOnInteraction: false, //*手动操作轮播图后不会暂停* |
| | | }, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | // // 如果需要分页器 |
| | | // pagination: { |
| | | // el: (this.container ? this.container : document).querySelector( |
| | | // ".swiper-pagination" |
| | | // ), |
| | | // clickable: true // 分页器可以点击 |
| | | // if (!this.questionDataMap[page]) { |
| | | // if (testData && testData[catalog]) { |
| | | // if (testData[catalog][page]) { |
| | | // if (Array.isArray(testData[catalog][page])) { |
| | | // this.questionDataMap[page] = await getQuestionList( |
| | | // page, |
| | | // testData[catalog][page], |
| | | // this.config.activeBook |
| | | // ); |
| | | // } else { |
| | | // const obj = {}; |
| | | // for (let key in testData[catalog][page]) { |
| | | // obj[key] = await getQuestionList( |
| | | // [], |
| | | // testData[catalog][page][key], |
| | | // this.config.activeBook |
| | | // ); |
| | | // } |
| | | // this.questionDataMap[page] = obj; |
| | | // } |
| | | // console.log("题目", this.questionDataMap); |
| | | // } |
| | | // } |
| | | // } |
| | | }); |
| | | } |
| | | const pptDoms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".swiper_ppt"); |
| | | for (let i = 0; i < pptDoms.length; i++) { |
| | | const dom = pptDoms[i]; |
| | | new Swiper(dom, { |
| | | loop: false, // 无缝 |
| | | autoplay: false, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | on: { |
| | | init: (value) => { |
| | | let currentPage = value.activeIndex + 1; // 获取当前页(从1开始计数) |
| | | let totalPages = value.slides.length; // 获取总页数 |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | slideChange: (value) => { |
| | | let currentPage = value.activeIndex + 1; // 获取当前页(从1开始计数) |
| | | let totalPages = value.slides.length; // 获取总页数 |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | initViewer() { |
| | | const doms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".openImgBox"); |
| | | for (let i = 0; i < doms.length; i++) { |
| | | const dom = doms[i]; |
| | | new Viewer(dom, { |
| | | container: this.container |
| | | ? this.container.querySelector("#app") |
| | | : "body", |
| | | navbar: true, // 显示导航栏 |
| | | toolbar: true, // 显示工具栏 |
| | | title: true, // 显示标题 |
| | | }); |
| | | } |
| | | }, |
| | | // 根据关键字全文检索 |
| | | searchTextByPage(keyword) { |
| | | const searchResult = []; |
| | | let catalogIndex = 0; |
| | | // 所有章节组件(每本书制作时单独配置) |
| | | const pageData = { |
| | | pageHeader, |
| | | chapterOne, |
| | | chapterTwo, |
| | | // chapterThree, |
| | | // chapterFour, |
| | | |
| | | }; |
| | | // 遍历所有章节文件 |
| | | for (const key in pageData) { |
| | | catalogIndex++; |
| | | let pageComponent, pageExample; |
| | | // 先渲染一次当前章节文件(这时页面的内容为空),获取页码信息 |
| | | pageComponent = Vue.extend(pageData[key]); |
| | | pageExample = new pageComponent({ |
| | | propsData: { |
| | | showPageList: [], |
| | | questionData: {}, |
| | | isSearch: true |
| | | }, |
| | | }); |
| | | pageExample.$mount( |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchContent" |
| | | ) |
| | | ); |
| | | // 获取页码 |
| | | const pageDom = (this.container ? this.container : document) |
| | | .querySelector("#searchDomBox") |
| | | .querySelectorAll(".page-box"); |
| | | const pages = []; |
| | | for (let i = 0; i < pageDom.length; i++) { |
| | | const pageDomItem = pageDom[i]; |
| | | pages.push(Number(pageDomItem.getAttribute("page"))); |
| | | } |
| | | // 获取页面结束,卸载销毁 |
| | | pageExample.$destroy(); |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchDomBox" |
| | | ).innerHTML = '<div id="searchContent"></div>'; |
| | | // 遍历页码 |
| | | if (pages.length) { |
| | | for (let i = 0; i < pages.length; i++) { |
| | | const pageNum = pages[i]; |
| | | // 动态渲染对应章节的页码 |
| | | pageComponent = Vue.extend(pageData[key]); |
| | | pageExample = new pageComponent({ |
| | | propsData: { |
| | | showPageList: [pageNum], |
| | | questionData: {}, |
| | | isSearch: true |
| | | }, |
| | | }); |
| | | pageExample.$mount( |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchContent" |
| | | ) |
| | | ); |
| | | // 获取对应页面dom |
| | | const thisPageDom = (this.container ? this.container : document) |
| | | .querySelector("#searchDomBox") |
| | | .querySelector(`[page="${pageNum}"]`); |
| | | if (thisPageDom) { |
| | | // 渲染这一页的标记 |
| | | for (const key in this.renderSignMap) { |
| | | if (this.renderSignMap[key][page]) { |
| | | this.renderSignMap[key][page].forEach((item) => { |
| | | this.renderSign(key, item); |
| | | }); |
| | | } |
| | | } |
| | | // 处理高亮 |
| | | if (this.highlightData) { |
| | | // 高亮行 |
| | | setTimeout(() => { |
| | | // 获取页面所有text节点 |
| | | const pageTextList = document.createTreeWalker(thisPageDom, NodeFilter.SHOW_TEXT); |
| | | const pageTextList = document.createTreeWalker(target, NodeFilter.SHOW_TEXT); |
| | | // 匹配关键字 |
| | | const allPageTextNodes = []; |
| | | let currentNode = pageTextList.nextNode(); |
| | |
| | | } |
| | | for (let i = 0; i < allPageTextNodes.length; i++) { |
| | | const textDom = allPageTextNodes[i]; |
| | | let txtIndex = textDom.textContent.indexOf(keyword); |
| | | let txtIndex = textDom.textContent.indexOf( |
| | | this.highlightData.txt |
| | | ); |
| | | if (txtIndex > -1) { |
| | | // 记录关键字所在页码、章节以及匹配到的段落 |
| | | searchResult.push({ |
| | | page: pageNum, |
| | | catalog: catalogIndex, |
| | | txt: textDom.textContent, |
| | | txtIndex: txtIndex, |
| | | }); |
| | | textDom.parentNode.style.transition = |
| | | "background-color 0.8s"; |
| | | textDom.parentNode.scrollIntoView(); |
| | | textDom.parentNode.style.backgroundColor = "#79bbf0"; |
| | | setTimeout(() => { |
| | | textDom.parentNode.style.backgroundColor = ""; |
| | | }, 1000); |
| | | } |
| | | } |
| | | // 结束,卸载销毁 |
| | | pageExample.$destroy(); |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchDomBox" |
| | | ).innerHTML = '<div id="searchContent"></div>'; |
| | | } |
| | | }, 100); |
| | | } |
| | | if (this.loadPageList.length > 5) { |
| | | // 超过5页 |
| | | this.loadPageList.shift(); |
| | | } |
| | | } |
| | | } |
| | | // 输出搜索结果 |
| | | console.log(searchResult); |
| | | return searchResult; |
| | | }, |
| | | // 根据检索结果跳转对应位置并高亮 |
| | | searchItemLocation(data) { |
| | | // 记录高亮信息 |
| | | this.highlightData = data; |
| | | // 跳转 |
| | | this.gotoPage(data.catalog, data.page, () => {}); |
| | | }, |
| | | // 页面向下滚动,音频小窗播放功能 |
| | | }); |
| | | }, |
| | | initSwiper() { |
| | | const doms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".swiper-img"); |
| | | for (let i = 0; i < doms.length; i++) { |
| | | const dom = doms[i]; |
| | | new Swiper(dom, { |
| | | loop: false, // 无缝 |
| | | autoplay: { |
| | | //自动开始 |
| | | delay: 3000, //时间间隔 |
| | | disableOnInteraction: false, //*手动操作轮播图后不会暂停* |
| | | }, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | // // 如果需要分页器 |
| | | // pagination: { |
| | | // el: (this.container ? this.container : document).querySelector( |
| | | // ".swiper-pagination" |
| | | // ), |
| | | // clickable: true // 分页器可以点击 |
| | | // } |
| | | }); |
| | | } |
| | | const pptDoms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".swiper_ppt"); |
| | | for (let i = 0; i < pptDoms.length; i++) { |
| | | const dom = pptDoms[i]; |
| | | new Swiper(dom, { |
| | | loop: false, // 无缝 |
| | | autoplay: false, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | on: { |
| | | init: (value) => { |
| | | let currentPage = value.activeIndex + 1; // 获取当前页(从1开始计数) |
| | | let totalPages = value.slides.length; // 获取总页数 |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | slideChange: (value) => { |
| | | let currentPage = value.activeIndex + 1; // 获取当前页(从1开始计数) |
| | | let totalPages = value.slides.length; // 获取总页数 |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | initViewer() { |
| | | const doms = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".openImgBox"); |
| | | for (let i = 0; i < doms.length; i++) { |
| | | const dom = doms[i]; |
| | | new Viewer(dom, { |
| | | container: this.container |
| | | ? this.container.querySelector("#app") |
| | | : "body", |
| | | navbar: true, // 显示导航栏 |
| | | toolbar: true, // 显示工具栏 |
| | | title: true, // 显示标题 |
| | | }); |
| | | } |
| | | }, |
| | | // 根据关键字全文检索 |
| | | searchTextByPage(keyword) { |
| | | const searchResult = []; |
| | | let catalogIndex = 0; |
| | | // 所有章节组件(每本书制作时单独配置) |
| | | const pageData = { |
| | | pageHeader, |
| | | chapterOne, |
| | | chapterTwo, |
| | | chapterThree, |
| | | chapterFour, |
| | | chapterFive |
| | | |
| | | }; |
| | | // 遍历所有章节文件 |
| | | for (const key in pageData) { |
| | | catalogIndex++; |
| | | let pageComponent, pageExample; |
| | | // 先渲染一次当前章节文件(这时页面的内容为空),获取页码信息 |
| | | pageComponent = Vue.extend(pageData[key]); |
| | | pageExample = new pageComponent({ |
| | | propsData: { |
| | | showPageList: [], |
| | | questionData: {}, |
| | | isSearch: true |
| | | }, |
| | | }); |
| | | pageExample.$mount( |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchContent" |
| | | ) |
| | | ); |
| | | // 获取页码 |
| | | const pageDom = (this.container ? this.container : document) |
| | | .querySelector("#searchDomBox") |
| | | .querySelectorAll(".page-box"); |
| | | const pages = []; |
| | | for (let i = 0; i < pageDom.length; i++) { |
| | | const pageDomItem = pageDom[i]; |
| | | pages.push(Number(pageDomItem.getAttribute("page"))); |
| | | } |
| | | // 获取页面结束,卸载销毁 |
| | | pageExample.$destroy(); |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchDomBox" |
| | | ).innerHTML = '<div id="searchContent"></div>'; |
| | | // 遍历页码 |
| | | if (pages.length) { |
| | | for (let i = 0; i < pages.length; i++) { |
| | | const pageNum = pages[i]; |
| | | // 动态渲染对应章节的页码 |
| | | pageComponent = Vue.extend(pageData[key]); |
| | | pageExample = new pageComponent({ |
| | | propsData: { |
| | | showPageList: [pageNum], |
| | | questionData: {}, |
| | | isSearch: true |
| | | }, |
| | | }); |
| | | pageExample.$mount( |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchContent" |
| | | ) |
| | | ); |
| | | // 获取对应页面dom |
| | | const thisPageDom = (this.container ? this.container : document) |
| | | .querySelector("#searchDomBox") |
| | | .querySelector(`[page="${pageNum}"]`); |
| | | if (thisPageDom) { |
| | | // 获取页面所有text节点 |
| | | const pageTextList = document.createTreeWalker(thisPageDom, NodeFilter.SHOW_TEXT); |
| | | // 匹配关键字 |
| | | const allPageTextNodes = []; |
| | | let currentNode = pageTextList.nextNode(); |
| | | while (currentNode) { |
| | | allPageTextNodes.push(currentNode); |
| | | currentNode = pageTextList.nextNode(); |
| | | } |
| | | for (let i = 0; i < allPageTextNodes.length; i++) { |
| | | const textDom = allPageTextNodes[i]; |
| | | let txtIndex = textDom.textContent.indexOf(keyword); |
| | | if (txtIndex > -1) { |
| | | // 记录关键字所在页码、章节以及匹配到的段落 |
| | | searchResult.push({ |
| | | page: pageNum, |
| | | catalog: catalogIndex, |
| | | txt: textDom.textContent, |
| | | txtIndex: txtIndex, |
| | | }); |
| | | } |
| | | } |
| | | // 结束,卸载销毁 |
| | | pageExample.$destroy(); |
| | | (this.container ? this.container : document).querySelector( |
| | | "#searchDomBox" |
| | | ).innerHTML = '<div id="searchContent"></div>'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 输出搜索结果 |
| | | console.log(searchResult); |
| | | return searchResult; |
| | | }, |
| | | // 根据检索结果跳转对应位置并高亮 |
| | | searchItemLocation(data) { |
| | | // 记录高亮信息 |
| | | this.highlightData = data; |
| | | // 跳转 |
| | | this.gotoPage(data.catalog, data.page, () => { }); |
| | | }, |
| | | // 页面向下滚动,音频小窗播放功能 |
| | | getAduio() { |
| | | let allVideo = ( |
| | | this.container ? this.container : document |
| | |
| | | } |
| | | } |
| | | }, |
| | | // 点击音频播放,关闭其他音频 |
| | | closeAudio(path) { |
| | | let allVideo = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".audio"); |
| | | allVideo = Array.from(allVideo); |
| | | if (allVideo.length) { |
| | | for (let index = 0; index < allVideo.length; index++) { |
| | | const item = allVideo[index]; |
| | | if (item.currentSrc != path) { |
| | | item.pause() |
| | | } |
| | | } |
| | | } |
| | | this.closeMiniAudio() |
| | | }, |
| | | // 关闭mini video |
| | | closeMiniAudio() { |
| | | this.audioPath = ""; |
| | | }, |
| | | }, |
| | | components: { |
| | | pageHeader, |
| | | chapterOne, |
| | | chapterTwo, |
| | | miniAudio |
| | | // chapterThree, |
| | | // chapterFour, |
| | | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .page-main { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: auto; |
| | | .page-content { |
| | | max-width: 816px; |
| | | min-width: 375px; |
| | | margin: 0 auto; |
| | | padding-bottom: 100px; |
| | | } |
| | | }, |
| | | components: { |
| | | pageHeader, |
| | | chapterOne, |
| | | chapterTwo, |
| | | miniAudio, |
| | | chapterThree, |
| | | chapterFour, |
| | | chapterFive |
| | | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .page-main { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: auto; |
| | | |
| | | .page-content { |
| | | max-width: 816px; |
| | | min-width: 375px; |
| | | margin: 0 auto; |
| | | padding-bottom: 100px; |
| | | } |
| | | </style> |
| | | |
| | | } |
| | | </style> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童体重的测量</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童身高的测量</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童头围的测量</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童胸围的测量</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童的健康检查</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:儿童绘人测试</p> |
| | | </div> |
| | |
| | | }, |
| | | gotoLabel(id) { |
| | | (this.container ? this.container : document).getElementById(id).scrollIntoView() |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | </span> |
| | | <span class="span-border"></span> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-box video-border" |
| | | class="video-box video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:骨骼</p> |
| | | <h5 id="e001">1.骨生长迅速</h5> |
| | |
| | | controls |
| | | controlslist="nodownload" |
| | | style="margin-top: 20px" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童呼吸道的防御特点与保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童心、血管的特点及保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童牙齿的生理特点及保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童内分泌系统的生理特点与保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | </p> |
| | | <p class="img">视频:学前儿童大脑的生理特点及保健</p> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童眼的生理特点与保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童耳的特点及保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童皮肤的特点与保健</p> |
| | | </div> |
| | |
| | | JSON.stringify(this.chapterOneData) |
| | | ); |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:儿童各阶段的特点和保健要点</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:生长发育的“铁”规律</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | </div> |
| | | </div> |
| | |
| | | JSON.stringify(this.chapterTwoData) |
| | | ); |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:影响学前儿童心理发展的因素</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:过度依赖</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="video-border w100" |
| | | class="video-border w100 video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | </p> |
| | | <p class="img">视频:自慰</p> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:言语及语言发育障碍</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:怎样发现孩子发育迟缓</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:儿童多动症</p> |
| | | </div> |
| | |
| | | }, |
| | | gotoLabel(id) { |
| | | (this.container ? this.container : document).getElementById(id).scrollIntoView() |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:营养素</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:乳儿辅助食品的添加</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | style="width: 100%" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童膳食的配制原则</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | style="width: 100%" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:儿童饮食习惯的培养</p> |
| | | </div> |
| | |
| | | }, |
| | | gotoLabel(id) { |
| | | (this.container ? this.container : document).getElementById(id).scrollIntoView() |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:新生儿特点与保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:重视新生儿疾病筛查</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:早产儿的特点与保健</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:幼儿期的特点与保健</p> |
| | | </div> |
| | |
| | | }, |
| | | gotoLabel(id) { |
| | | (this.container ? this.container : document).getElementById(id).scrollIntoView() |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:疾病基础</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:遗传病、出生缺陷与优生</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见疾病——肥胖症</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频七:学前儿童常见疾病——维生素D缺乏性佝偻病</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见疾病——缺铁性贫血</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见疾病——上呼吸道感染</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见疾病——龋齿</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见疾病——中耳炎</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见疾病——弱视</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:传染病基础知识——特性与三个环节</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:传染病及其预防——疫苗</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:传染病及其预防——狂犬病</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:学前儿童常见寄生虫病——蛲虫病</p> |
| | | </div> |
| | |
| | | }, |
| | | gotoLabel(id) { |
| | | (this.container ? this.container : document).getElementById(id).scrollIntoView() |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:体温测量</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:物理降温</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img"> |
| | | 视频:学前儿童常用的护理与急救技术——儿童科学用药指南 |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:止鼻血</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | style="width: 100%" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:异物的处理</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:鱼刺卡喉的处理</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:惊厥、晕厥、休克的处理</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:骨折与脱位</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:心肺复苏</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:幼儿园安全教育</p> |
| | | </div> |
| | |
| | | this.$data.pathNine = await getResourcePath("bf45a94562ab237da0ef65ba33631022"); |
| | | this.$data.pathTen = await getResourcePath("f7b5594f23b2ded96e15b99c296be54d"); |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:动力定型及其形成</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | style="width: 100%" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:七步洗手法</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:晨间检查</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:预防接种</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | style="width: 100%" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:传染病基础知识——隔离</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:传染病基础知识——消毒</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:环境卫生制度与卫生保健登记、统计制度</p> |
| | | </div> |
| | |
| | | "960e9aa17b48e900b08cde6e44b774f3" |
| | | ); |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:幼儿园各室配置的卫生要求</p> |
| | | </div> |
| | |
| | | x5-playsinline="" |
| | | controls |
| | | controlslist="nodownload" |
| | | class="w100 video-border" |
| | | class="w100 video-border video" |
| | | @play="videoPlay" |
| | | ></video> |
| | | <p class="img">视频:幼儿园文具和教玩具卫生</p> |
| | | </div> |
| | |
| | | }, |
| | | gotoLabel(id) { |
| | | (this.container ? this.container : document).getElementById(id).scrollIntoView() |
| | | }, |
| | | videoPlay(e) { |
| | | this.$emit('closeVideo',e.srcElement.currentSrc) |
| | | } |
| | | }, |
| | | }; |
| | |
| | | v-if="showCatalogList.indexOf(2) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterOne> |
| | | <chapterTwo |
| | | v-if="showCatalogList.indexOf(3) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterTwo> |
| | | <chapterThree |
| | | v-if="showCatalogList.indexOf(4) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterThree> |
| | | <chapterFour |
| | | v-if="showCatalogList.indexOf(5) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterFour> |
| | | <chapterFive |
| | | v-if="showCatalogList.indexOf(6) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterFive> |
| | | <chapterSix |
| | | v-if="showCatalogList.indexOf(7) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterSix> |
| | | <chapterSeven |
| | | v-if="showCatalogList.indexOf(8) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterSeven> |
| | | <chapterEight |
| | | v-if="showCatalogList.indexOf(9) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterEight> |
| | | <chapterNine |
| | | v-if="showCatalogList.indexOf(10) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterNine> |
| | | <chapterTen |
| | | v-if="showCatalogList.indexOf(11) > -1" |
| | | :showPageList="loadPageList" |
| | | :questionData="questionDataMap" |
| | | @closeVideo="closeVideo" |
| | | ></chapterTen> |
| | | <chapterEleven |
| | | v-if="showCatalogList.indexOf(12) > -1" |
| | |
| | | }, 500); |
| | | |
| | | // 测试页面跳转 |
| | | setTimeout(() => { |
| | | this.gotoPage(1,10); |
| | | // setTimeout(() => { |
| | | // this.gotoPage(1,10); |
| | | // setTimeout(() => { |
| | | // this.renderSign("Highlight", { |
| | | // id: "2ACA9359", |
| | |
| | | // ids: ["2ACA9359"] |
| | | // }); |
| | | // }, 2000); |
| | | // }, 5000); |
| | | // }, 500); |
| | | |
| | | // const pageDom = (this.container ? this.container : document) |
| | | // .querySelector("#app") |
| | |
| | | // txt: " 运动系统是由骨、骨连结和骨骼肌三部分组成的。全身的骨通过骨连结组成人体骨骼(见图1-1)。骨骼是人体的支架,具有保护内脏器官、供肌肉附着和作为肌肉运动的杠杆等作用。在神经系统的支配下,肌肉收缩牵动所附着的骨绕着关节转动,使身体产生各种动作。所以,运动系统具有运动、支持和保护等功能,幼年时期的骨骼还具有造血功能。 ", |
| | | // txtIndex: 57 |
| | | // }); |
| | | }, 500); |
| | | // }, 500); |
| | | }, |
| | | methods: { |
| | | // setZoom1() { |
| | |
| | | this.highlightData = data; |
| | | // 跳转 |
| | | this.gotoPage(data.catalog, data.page, () => {}); |
| | | }, |
| | | closeVideo(path) { |
| | | let allVideo = ( |
| | | this.container ? this.container : document |
| | | ).querySelectorAll(".video"); |
| | | allVideo = Array.from(allVideo); |
| | | if(allVideo.length) { |
| | | for (let index = 0; index < allVideo.length; index++) { |
| | | const item = allVideo[index]; |
| | | if(item.currentSrc != path) { |
| | | item.pause() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | |
| | | autoplay: { |
| | | //自动开始 |
| | | delay: 3000, //时间间隔 |
| | | disableOnInteraction: false, //*手动操作轮播图后不会暂停* |
| | | disableOnInteraction: false //*手动操作轮播图后不会暂停* |
| | | }, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | observeParents: true |
| | | // // 如果需要分页器 |
| | | // pagination: { |
| | | // el: (this.container ? this.container : document).querySelector( |
| | |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 10px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-track-piece { |
| | | background-color: rgba(0, 0, 0, 0.1); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb:vertical { |
| | | height: 5px; |
| | | background-color: rgba(125, 125, 125, 0.3); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb:horizontal { |
| | | width: 5px; |
| | | background-color: rgba(125, 125, 125, 0.3); |
| | | -webkit-border-radius: 6px; |
| | | } |
| | |
| | | /> |
| | | </p> |
| | | </div> |
| | | <p class="block"> |
| | | <p class="block tl"> |
| | | 如果<i>f</i>(<i>x</i>),<i>g</i>(<i>x</i>)都是定义域为<i>D</i>的偶函数,那么<i>f</i>(<i>x</i>)+<i>g</i>(<i>x</i>)和<i>f</i>(<i>x</i>)<i>g</i>(<i>x</i>)仍是偶函数吗? |
| | | <textarea |
| | | cols="30" |
| | |
| | | <div class="bj"> |
| | | <examinations |
| | | :cardList="questionData" |
| | | inputBc="#d3edfa" |
| | | v-if="questionData" |
| | | :isReal="false" |
| | | ></examinations> |
| | |
| | | |
| | | <!-- 函数控件弹窗 --> |
| | | <el-dialog |
| | | title="" |
| | | :visible.sync="dialogVisible" |
| | | width="60%" |
| | | :append-to-body="true" |
| | | :show-close="false" |
| | | > |
| | | <div slot="title" style="padding: 0 0 15px 0;position: relative;"> |
| | | <svg |
| | | style="position: absolute; right:10px;cursor: pointer;" |
| | | @click="dialogVisible = false" |
| | | t="1718596022986" |
| | | class="icon" |
| | | viewBox="0 0 1024 1024" |
| | | version="1.1" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | p-id="4252" |
| | | width="20" |
| | | height="20" |
| | | xmlns:xlink="http://www.w3.org/1999/xlink" |
| | | > |
| | | <path |
| | | d="M176.661601 817.172881C168.472798 825.644055 168.701706 839.149636 177.172881 847.338438 185.644056 855.527241 199.149636 855.298332 207.338438 846.827157L826.005105 206.827157C834.193907 198.355983 833.964998 184.850403 825.493824 176.661601 817.02265 168.472798 803.517069 168.701706 795.328267 177.172881L176.661601 817.172881Z" |
| | | fill="#979797" |
| | | p-id="4253" |
| | | ></path> |
| | | <path |
| | | d="M795.328267 846.827157C803.517069 855.298332 817.02265 855.527241 825.493824 847.338438 833.964998 839.149636 834.193907 825.644055 826.005105 817.172881L207.338438 177.172881C199.149636 168.701706 185.644056 168.472798 177.172881 176.661601 168.701706 184.850403 168.472798 198.355983 176.661601 206.827157L795.328267 846.827157Z" |
| | | fill="#979797" |
| | | p-id="4254" |
| | | ></path> |
| | | </svg> |
| | | </div> |
| | | <iframe |
| | | src="https://www.geogebra.org/calculator" |
| | | frameborder="0" |
| | |
| | | </el-dialog> |
| | | <!-- 解题思路弹窗 --> |
| | | <el-dialog |
| | | title="解题思路" |
| | | :visible.sync="thinkingDialog" |
| | | width="40%" |
| | | :append-to-body="true" |
| | | :show-close="false" |
| | | > |
| | | <div slot="title" style="padding: 0; text-align: center; color: #333;display:flex;justify-content: center;"> |
| | | <span style=""> 解题思路 </span> |
| | | <svg |
| | | style="position: absolute; right:10px;cursor: pointer;" |
| | | @click="thinkingDialog = false" |
| | | t="1718596022986" |
| | | class="icon" |
| | | viewBox="0 0 1024 1024" |
| | | version="1.1" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | p-id="4252" |
| | | width="20" |
| | | height="20" |
| | | xmlns:xlink="http://www.w3.org/1999/xlink" |
| | | > |
| | | <path |
| | | d="M176.661601 817.172881C168.472798 825.644055 168.701706 839.149636 177.172881 847.338438 185.644056 855.527241 199.149636 855.298332 207.338438 846.827157L826.005105 206.827157C834.193907 198.355983 833.964998 184.850403 825.493824 176.661601 817.02265 168.472798 803.517069 168.701706 795.328267 177.172881L176.661601 817.172881Z" |
| | | fill="#979797" |
| | | p-id="4253" |
| | | ></path> |
| | | <path |
| | | d="M795.328267 846.827157C803.517069 855.298332 817.02265 855.527241 825.493824 847.338438 833.964998 839.149636 834.193907 825.644055 826.005105 817.172881L207.338438 177.172881C199.149636 168.701706 185.644056 168.472798 177.172881 176.661601 168.701706 184.850403 168.472798 198.355983 176.661601 206.827157L795.328267 846.827157Z" |
| | | fill="#979797" |
| | | p-id="4254" |
| | | ></path> |
| | | </svg> |
| | | </div> |
| | | <ul> |
| | | <li v-for="(item, index) in thinkOne" :key="index"> |
| | | <div v-if="item.isShow" style="display: flex"> |
| | | <span class="step-num"> |
| | | <span class="step-num-box">{{ index + 1 }}</span> |
| | | <span style="position: relative"> |
| | | <span |
| | | style="position: absolute; top: 16px; left: 13px; color: #fff" |
| | | >{{ index + 1 }}</span |
| | | > |
| | | <img |
| | | src="../../assets/images/icon/blue-group.png" |
| | | alt="" |
| | |
| | | </div> |
| | | </li> |
| | | </ul> |
| | | <div class="bottom-btn" @click="showNext(thinkIndex)"> |
| | | <img src="../../assets/images/icon/mouse.png" alt="" v-if="thinkIndex != 3" /> |
| | | <div |
| | | @click="showNext(thinkIndex)" |
| | | style=" |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | " |
| | | > |
| | | <img |
| | | src="../../assets/images/icon/mouse.png" |
| | | alt="" |
| | | v-if="thinkIndex != 3" |
| | | /> |
| | | <svg |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:xlink="http://www.w3.org/1999/xlink" |
| | |
| | | </el-dialog> |
| | | <!-- 解题步骤弹窗 --> |
| | | <el-dialog |
| | | class="stepDialog" |
| | | title="解题步骤" |
| | | :visible.sync="stepDialog" |
| | | width="40%" |
| | | :append-to-body="true" |
| | | :show-close="false" |
| | | > |
| | | <div slot="title" style="padding: 0; text-align: center; color: #333;display:flex;justify-content: center;"> |
| | | <span> |
| | | 解题步骤 |
| | | </span> |
| | | <svg |
| | | style="position: absolute; right:10px;cursor: pointer;" |
| | | @click="stepDialog = false" |
| | | t="1718596022986" |
| | | class="icon" |
| | | viewBox="0 0 1024 1024" |
| | | version="1.1" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | p-id="4252" |
| | | width="20" |
| | | height="20" |
| | | xmlns:xlink="http://www.w3.org/1999/xlink" |
| | | > |
| | | <path |
| | | d="M176.661601 817.172881C168.472798 825.644055 168.701706 839.149636 177.172881 847.338438 185.644056 855.527241 199.149636 855.298332 207.338438 846.827157L826.005105 206.827157C834.193907 198.355983 833.964998 184.850403 825.493824 176.661601 817.02265 168.472798 803.517069 168.701706 795.328267 177.172881L176.661601 817.172881Z" |
| | | fill="#979797" |
| | | p-id="4253" |
| | | ></path> |
| | | <path |
| | | d="M795.328267 846.827157C803.517069 855.298332 817.02265 855.527241 825.493824 847.338438 833.964998 839.149636 834.193907 825.644055 826.005105 817.172881L207.338438 177.172881C199.149636 168.701706 185.644056 168.472798 177.172881 176.661601 168.701706 184.850403 168.472798 198.355983 176.661601 206.827157L795.328267 846.827157Z" |
| | | fill="#979797" |
| | | p-id="4254" |
| | | ></path> |
| | | </svg> |
| | | </div> |
| | | <ul> |
| | | <li v-for="(item, index) in stepOne" :key="index"> |
| | | <div v-if="item.isShow" style="display: flex"> |
| | | <span class="step-num"> |
| | | <span class="step-num-box">{{ index + 1 }}</span> |
| | | <span style="position: relative"> |
| | | <span |
| | | style="position: absolute; top: 16px; left: 13px; color: #fff" |
| | | >{{ index + 1 }}</span |
| | | > |
| | | <img |
| | | src="../../assets/images/icon/blue-group.png" |
| | | alt="" |
| | |
| | | </div> |
| | | </li> |
| | | </ul> |
| | | <div class="bottom-btn" @click="showNextChange(stepIndex)"> |
| | | <img src="../../assets/images/icon/mouse.png" alt="" v-if="stepIndex != 2" /> |
| | | <div |
| | | @click="showNextChange(stepIndex)" |
| | | style=" |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | " |
| | | > |
| | | <img |
| | | src="../../assets/images/icon/mouse.png" |
| | | alt="" |
| | | v-if="stepIndex != 2" |
| | | /> |
| | | <svg |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:xlink="http://www.w3.org/1999/xlink" |
| | |
| | | videoPath: "", |
| | | questionData: [], |
| | | stepIndex: 1, |
| | | thinkIndex:1, |
| | | thinkIndex: 1, |
| | | chapterData: { |
| | | isCollectImg: false, |
| | | isCollectVideo: false, |
| | |
| | | const number = this.thinkOne.findIndex((item, index) => index == num); |
| | | console.log(number); |
| | | this.thinkOne[number].isShow = true; |
| | | if(this.thinkIndex <= 2) { |
| | | this.thinkIndex ++ |
| | | if (this.thinkIndex <= 2) { |
| | | this.thinkIndex++; |
| | | } |
| | | }, |
| | | showNextChange(num) { |
| | | const number = this.stepOne.findIndex((item, index) => index == num); |
| | | this.stepOne[number].isShow = true; |
| | | if(this.stepIndex < 2) { |
| | | this.stepIndex ++ |
| | | if (this.stepIndex < 2) { |
| | | this.stepIndex++; |
| | | } |
| | | }, |
| | | }, |
| | |
| | | color: #fff; |
| | | } |
| | | } |
| | | .stepDialog { |
| | | } |
| | | </style> |
| | |
| | | autoplay: { |
| | | //自动开始 |
| | | delay: 3000, //时间间隔 |
| | | disableOnInteraction: false, //*手动操作轮播图后不会暂停* |
| | | disableOnInteraction: false //*手动操作轮播图后不会暂停* |
| | | }, |
| | | paginationClickable: true, |
| | | slidesPerView: 1, // 一组三个 |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | | observeParents: true, |
| | | observeParents: true |
| | | // // 如果需要分页器 |
| | | // pagination: { |
| | | // el: (this.container ? this.container : document).querySelector( |
| | |
| | | spaceBetween: 30, // 间隔 |
| | | // 如果需要前进后退按钮 |
| | | navigation: { |
| | | nextEl: (this.container ? this.container : document).querySelector( |
| | | nextEl: dom.querySelector( |
| | | ".swiper-button-next" |
| | | ), |
| | | prevEl: (this.container ? this.container : document).querySelector( |
| | | prevEl: dom.querySelector( |
| | | ".swiper-button-prev" |
| | | ), |
| | | ) |
| | | }, |
| | | // 窗口变化,重新init,针对F11全屏和放大缩小,必须加 |
| | | observer: true, |
| | |
| | | var paginationInfoEl = dom.querySelector(".pageBox"); |
| | | if (paginationInfoEl) |
| | | paginationInfoEl.textContent = currentPage + "/" + totalPages; |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | |
| | | |
| | | |
| | | .custom-dialog { |
| | | overflow: hidden !important; |
| | | |
| | | .el-dialog__body { |
| | | padding: 0; |
| | | } |
| | |
| | | <el-dialog |
| | | :visible.sync="dialogVisible" |
| | | width="60vw" |
| | | top="2vh" |
| | | append-to-body |
| | | lock-scroll |
| | | :show-close="false" |
| | | class="custom-dialog" |
| | | > |
| | |
| | | v-html="itemText" |
| | | ></span> |
| | | <!-- --> |
| | | <el-input |
| | | <input |
| | | v-else |
| | | type="text" |
| | | class="input" |
| | | v-model.trim="value.userAnswer[itemText.num]" |
| | | :disabled="value.isComplete" |
| | | :style="{backgroundColor:inputBc}" |
| | | /> |
| | | <!-- --> |
| | | </span> |
| | |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | inputBc: { |
| | | type: String, |
| | | default: "#fff", |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | font-weight: 400; |
| | | margin-top: 6px; |
| | | } |
| | | .el-input { |
| | | input { |
| | | width: 140px; |
| | | height: 24px; |
| | | border-top: 0; |
| | | border: 0; |
| | | outline: none; |
| | | border-bottom: 1px solid #15c0f2; |
| | | } |
| | | /deep/ .el-textarea.is-disabled .el-textarea__inner { |
| | | background-color: #fff; |
| | | } |
| | | /deep/.el-input__wrapper { |
| | | border-top: 0 !important; |
| | | } |
| | | /deep/ .el-input__inner { |
| | | border-top: 0 !important; |
| | | border-left: 0 !important ; |
| | | border-right: 0 !important ; |
| | | border-bottom: 1px solid #15c0f2 !important; |
| | | border-radius: 0 !important; |
| | | } |
| | | /deep/ .el-input.is-disabled .el-input__inner { |
| | | background-color: #fff; |
| | |
| | | <template> |
| | | <div class="mini-audio" v-if="path"> |
| | | <audio controls :src="path" class="aduioPlayer"></audio> |
| | | <audio controls controlslist="noplaybackrate nodownload" :src="path" class="aduioPlayer"></audio> |
| | | <svg |
| | | @click="closeMiniAudio" |
| | | t="1717642737563" |
| | |
| | | <div class="preview" v-if="this.preViewMd5"> |
| | | <div id="imageParent" class="imageBox"></div> |
| | | <div class="bottom_tool"> |
| | | <svg |
| | | <!-- <svg |
| | | t="1718330411310" |
| | | @click="downloadPdf" |
| | | class="icon" |
| | |
| | | d="M1022.955204 522.570753c0 100.19191-81.516572 181.698249-181.718715 181.698249l-185.637977 0c-11.2973 0-20.466124-9.168824-20.466124-20.466124 0-11.307533 9.168824-20.466124 20.466124-20.466124l185.637977 0c77.628008 0 140.786467-63.148226 140.786467-140.766001 0-77.423347-62.841234-140.448776-140.203182-140.766001-0.419556 0.030699-0.818645 0.051165-1.217734 0.061398-5.945409 0.143263-11.686157-2.292206-15.687284-6.702656-4.001127-4.400217-5.894244-10.335393-5.167696-16.250102 1.330298-10.806113 1.944282-19.760043 1.944282-28.192086 0-60.763922-23.658839-117.884874-66.617234-160.833035-42.968627-42.968627-100.089579-66.617234-160.843268-66.617234-47.368844 0-92.742241 14.449084-131.208321 41.781592-37.616736 26.738991-65.952084 63.700811-81.925894 106.884332-2.425236 6.538927-8.012488 11.399631-14.827707 12.893658-6.815219 1.483794-13.927197-0.603751-18.859533-5.54632-19.289322-19.330254-44.943608-29.972639-72.245418-29.972639-56.322773 0-102.146425 45.813419-102.146425 102.125959 0 0.317225 0.040932 0.982374 0.092098 1.627057 0.061398 0.920976 0.122797 1.831718 0.153496 2.762927 0.337691 9.465582-5.863545 17.928325-15.001669 20.455891-32.356942 8.933463-61.541635 28.550243-82.181721 55.217602-21.305235 27.516704-32.571836 60.508096-32.571836 95.41307 0 86.244246 70.188572 156.422585 156.443052 156.422585l169.981393 0c11.2973 0 20.466124 9.15859 20.466124 20.466124 0 11.2973-9.168824 20.466124-20.466124 20.466124l-169.981393 0c-108.828614 0-197.3753-88.536452-197.3753-197.354833 0-44.053332 14.223956-85.712127 41.126676-120.473839 22.809495-29.460985 53.897537-52.086285 88.710414-64.816215 5.065366-74.322729 67.149353-133.2447 142.751215-133.2447 28.386514 0 55.504128 8.217149 78.651314 23.52581 19.657712-39.868009 48.842405-74.169233 85.497233-100.212376 45.434795-32.295544 99.004875-49.354058 154.918325-49.354058 71.692832 0 139.087778 27.915793 189.782368 78.600149 50.694589 50.694589 78.610382 118.089535 78.610382 189.782368 0 3.704368-0.102331 7.470135-0.296759 11.368932C952.633602 352.568894 1022.955204 429.511287 1022.955204 522.570753zM629.258611 820.711014l-102.023628 102.013395c-3.990894 4.001127-9.230222 5.996574-14.46955 5.996574s-10.478655-1.995447-14.46955-5.996574l-102.023628-102.013395c-7.992021-7.992021-7.992021-20.947078 0-28.939099s20.947078-8.002254 28.939099 0l67.087954 67.077721 0-358.699522c0-11.2973 9.15859-20.466124 20.466124-20.466124 11.307533 0 20.466124 9.168824 20.466124 20.466124l0 358.699522 67.087954-67.077721c7.992021-8.002254 20.947078-7.992021 28.939099 0S637.250632 812.718993 629.258611 820.711014z" |
| | | p-id="7122" |
| | | ></path> |
| | | </svg> |
| | | </svg> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | window.open(await getResourcePath(this.preViewMd5)); |
| | | }, |
| | | domViewer() { |
| | | let ele = (this.container ? this.container : document).getElementById( |
| | | "imageParent" |
| | | ); |
| | | let ele = document.getElementById("imageParent"); |
| | | this.viewerCon = new Viewer(ele, { |
| | | inline: false, |
| | | container: this.container |
| | |
| | | }); |
| | | }, |
| | | clearDom() { |
| | | let ele = (this.container ? this.container : document).getElementById( |
| | | "imageParent" |
| | | ); |
| | | let ele = document.getElementById("imageParent"); |
| | | ele.innerHtml = ""; |
| | | }, |
| | | createDom(page) { |
| | | var that = this; |
| | | let ele = (this.container ? this.container : document).getElementById( |
| | | "imageParent" |
| | | ); |
| | | let ele = document.getElementById("imageParent"); |
| | | const img = document.createElement("img"); |
| | | img.src = this.getPageImage(page); |
| | | img.alt = ""; |
| | |
| | | }, |
| | | scrollBottom() { |
| | | var that = this; |
| | | var ele = (this.container ? this.container : document).getElementById( |
| | | "imageParent" |
| | | ); |
| | | var ele = document.getElementById("imageParent"); |
| | | ele.addEventListener("scroll", function () { |
| | | // 计算滚动条距离底部的位置 |
| | | const scrollBottom = |