БлогNot. Бегущая строка на Javascript и CSS3

Бегущая строка на 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 просмотр]


теги: javascript html css

показать комментарии (1)