diff --git a/code/VideoAccess-VCMP/web/client/src/components/textScroll.jsx b/code/VideoAccess-VCMP/web/client/src/components/textScroll.jsx index e5e1bd0..d5e4fd8 100644 --- a/code/VideoAccess-VCMP/web/client/src/components/textScroll.jsx +++ b/code/VideoAccess-VCMP/web/client/src/components/textScroll.jsx @@ -13,49 +13,61 @@ function TextScroll (props) { if (content.length) { if (roll) { let contentParent = document.getElementById("marquee_box" + videoObjId) - document.getElementById('contentPMakeUp' + videoObjId)?.style.width = contentParent?.clientWidth + 'px' - const contentP = document.getElementById('contentP' + videoObjId) - contentP?.style.visibility = 'visible' + if (document.getElementById('contentPMakeUp' + videoObjId)) { + document.getElementById('contentPMakeUp' + videoObjId).style.width = contentParent?.clientWidth + 'px' + } + let contentP = document.getElementById('contentP' + videoObjId) + if (contentP) { + contentP.style.visibility = 'visible' + } setShowContent(content[0]) window.cancelAnimationFrame(cancel.current) - contentParent.scrollLeft = 0 + if(contentParent){ + contentParent.scrollLeft = 0 + } initialization.current = false showIndex.current = 0 } else { let repeatTime = moment() let refreshTime = moment() - const scroll = () => { + let scroll = () => { let contentParent = document.getElementById("marquee_box" + videoObjId) - document.getElementById('contentPMakeUp' + videoObjId)?.style.width = contentParent?.clientWidth + 'px' + if (document.getElementById('contentPMakeUp' + videoObjId)) { + document.getElementById('contentPMakeUp' + videoObjId).style.width = contentParent?.clientWidth + 'px' + } //初始化 // if(!showContent&&!initialization.current){ if (!initialization.current) { const contentP = document.getElementById('contentP' + videoObjId) - contentParent.scrollLeft = 0 + if (contentParent) { + contentParent.scrollLeft = 0 + } setShowContent(content[showIndex.current]) showIndex.current = (showIndex.current + 1) % content.length - contentP?.style.visibility = 'visible' + if (contentP) { + contentP.style.visibility = 'visible' + } initialization.current = true } // 控制频率 if (moment().diff(refreshTime) > 1000 / 60) { - const contentP = document.getElementById('contentP' + videoObjId) + let contentP = document.getElementById('contentP' + videoObjId) // 静态等待时间 - if (moment().diff(repeatTime) > 1000 * 1.5) { - contentP?.style.visibility = 'visible' + if (moment().diff(repeatTime) > 1000 * 1.5 && contentP) { + contentP.style.visibility = 'visible' } // 滚动 - if (moment().diff(repeatTime) > 1000 * 3) { + if (moment().diff(repeatTime) > 1000 * 3 && contentParent) { contentParent.scrollLeft = contentParent.scrollLeft + 1 } // 滚完 重置 - if (contentParent.scrollLeft >= contentP?.clientWidth + 24) { + if (contentP && contentParent && contentParent.scrollLeft >= contentP?.clientWidth + 24) { contentParent.scrollLeft = 0 repeatTime = moment() setShowContent(content[showIndex.current]) showIndex.current = (showIndex.current + 1) % content.length - contentP?.style.visibility = 'hidden' + contentP.style.visibility = 'hidden' } refreshTime = moment() }