Ticker
세로
function initTicker(container, mover, delay) { speed = 100; // milisecond container.moveOffset = container.offsetHeight; container.cont = mover; container.cont.currentHeight = 0; container.cont.innerHTML += container.cont.innerHTML; container.move = window.setInterval(function () { container.cont.currentHeight--; container.cont.style.top = container.cont.currentHeight + "px"; if (container.cont.currentHeight % (container.cont.offsetHeight / 2) == 0) { container.cont.currentHeight = 0; } }, speed); } initTicker(document.getElementById("notice-container"), document.getElementById("notice-mover"), 10000);
가로
좌우로 글자가 흐르면서 내용을 보여주는 효과
<div id="point-ranking-container" class="container"> <p> <span> 1위 : 홍길동(호부호형) 543chem / 2위 : 길동이(가나다라) 436chem / 3위 : 홍길동(호부호형) 343chem // </span> </p> </div> <script type="text/javascript"> initTicker(document.getElementById("point-ranking-container")); </script>
#point-ranking-container { position: relative; width: 533px; height: 1.3em; overflow: hidden; } #point-ranking p { margin: 0; }
function initTicker(container) { mover = container.getElementsByTagName("p").item(0); text = mover.getElementsByTagName("span").item(0); // set mover.style.position = "absolute"; mover.style.margin = "0 0 0 0"; mover.style.left = "0px"; mover.leftPosition = 0; mover.style.width = text.childNodes.item(0).length + "em"; // stretch width textWidth = text.offsetWidth; if (textWidth > container.offsetWidth) { // enough space for move // duplicate text mover.style.width = textWidth * 2 + "px"; mover.innerHTML += mover.innerHTML; // set action mover.tickerAction = window.setInterval(function() { if (mover.leftPosition * -1 > textWidth) { mover.leftPosition = -1; } else { mover.leftPosition -= 1; } mover.style.left = mover.leftPosition + "px"; }, 40); } }