.md_wrap { overflow: hidden; display: flex; gap: -4px; ul { display: flex; li { width: 340px; height: 544px; margin: 0 8px; background-color: #fff; display: flex; } } // 롤링배너 애니메이션 #roller1 { animation: rollingleft1 90s linear infinite; } #roller2 { animation: rollingleft2 90s linear infinite; } } @keyframes rollingleft1 { 0% { transform: translateX(0)} 50% { transform: translateX(-100%)} 50.01% { transform: translateX(100%)} 100% { transform: translateX(0)} } @keyframes rollingleft2 { 0% {transform: translateX(0)} 100% {transform: translateX(-200%)} } <!-- 4. 미디어섹션(컴포넌트)--> <section class="main_media"> <h3>Media</h3> <div class="md_wrap"> <div class="md_list"> <ul> <MedComp v-for="(v, i) in mData" :key="i" :matchmedia="v" :dpt1val="v.depth1" :dpt2val="v.depth2"/> </ul> </div> </div> </section> methods: { rollBan() { // 롤링 배너 복제본 생성 let roller = document.querySelector('.md_list'); roller.id = 'roller1'; // 아이디 부여 // 노드 복제 (기본값은 false, 자식 노드까지 원하면 true) let clone = roller.cloneNode(true); clone.id = 'roller2'; document.querySelector('.md_wrap').appendChild(clone); // .md_wrap 하위 자식으로 넣기 document.querySelector('#roller1').style.left = '0px'; document.querySelector('#roller2').style.left = document.querySelector('.md_list > ul').offsetWidth + 'px'; }, }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter