Бегущая строка на Javascript и CSS3
Был когда-то, а точней, и сейчас есть нестандартный, но широко применяемый тег <marquee>, создающий эффект бегущей строки:
<marquee>Привет, мир!</marquee>
Намного ли сложнее сделать то же самое средствами Javascript, дабы избежать невалидного HTML? Если мы согласны не гонять строчку по всей ширине экрана, то ненамного, приведу работающий пример и его код:
<pre id="marqueeline">Привет, мир! </pre> <script type="text/javascript"> function animate(id) { var node = document.getElementById(id).childNodes[0]; var text = node.data; setInterval(function () { text = text.substring(1) + text[0]; node.data = text; }, 125); //интервал прокрутки, мс } window.addEventListener('load', function (e) { animate('marqueeline'); }, false); </script>
А вот полноценная эмуляция потребует применения JQuery и/или написания заметно более сложного кода.
Есть Marquee и в CSS3, выглядит перспективно и программирования не требует вовсе, правда, сильно устаревшие браузеры CSS3 не поддерживают. Приведу пример, стиль которого предполагает ещё и остановку прокрутки строки при наведении мыши на текст.
<style type="text/css"> .marquee { width: 450px; margin: 0 auto; white-space: nowrap; overflow: hidden; box-sizing: border-box; border: 1px dotted #800000; } .marquee span { display: inline-block; padding-left: 100%; animation: marquee 15s linear infinite; } .marquee span:hover { animation-play-state: paused } @keyframes marquee { 0% { transform: translate(0, 0); } 100% { transform: translate(-100%, 0); } } </style> <div class="marquee"><span>Привет, мир!</span></div>
13.09.2017, 15:04 [25821 просмотр]