Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   скрипт бегущей строки - как сделать строку непрерывной (https://javascript.ru/forum/dom-window/2516-skript-begushhejj-stroki-kak-sdelat-stroku-nepreryvnojj.html)

dansury 09.01.2009 03:33

скрипт бегущей строки - как сделать строку непрерывной
 
яваскрипт:
// настройка скорости
delay = 30;
step = 2;

is_start = true;
fullwidth = 1;
cpos = 0;
scrollw = 0;

function start_scroll()
{
var scrolltext = document.getElementById('scrolltext');
var scroll = document.getElementById('scroll');
fullwidth = scrolltext.offsetWidth;
scrolltext.style.left = scroll.offsetWidth;
scrollw = scroll.offsetWidth;
scrolltext.style.position = 'relative';

myinterval = setInterval(do_scroll, delay);
}

function do_scroll()
{
var scroll = document.getElementById('scroll');
var scrolltext = document.getElementById('scrolltext');

if (is_start)
{
cpos = scroll.offsetWidth;
scrolltext.style.left = cpos;
is_start = false;
}
else
  {
    cpos -= step;
    scrolltext.style.left = cpos;
    if (cpos < -fullwidth) { is_start = true; }
  }
}

function stop_scroll()
{
  clearInterval(myinterval);
}
function continue_scroll()
{
  myinterval = setInterval(do_scroll, delay);}
function do_resize()
{
  var scroll = document.getElementById('scroll');
  newscrollw = scroll.offsetWidth;
  if (cpos >= 0) { absstp = scrollw - cpos; }
  else { absstp = scrollw + Math.abs(cpos); }
  oldprc = absstp / (scrollw + fullwidth);
  newlen = newscrollw + fullwidth;
  newabsstp = newlen * oldprc;

  if (newabsstp <= newscrollw) { cpos = newscrollw - newabsstp; }
  else { cpos = -(newabsstp - newscrollw); }
  scrollw = newscrollw;
}


хтмл:
<script src="<?php bloginfo('template_directory'); ?>/scrolltopics.js" type="text/javascript"></script>

<style>

#scroll {width: 100%;

         white-space: nowrap;

         overflow: hidden;

         position: relative}

#scrolltext {position: absolute}

</style>







  <div style='width:100%'>



      <div id='scroll' onmouseover='stop_scroll()'

      onmouseout='continue_scroll()'>

       <div id='scrolltext'>
текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст 
</div></div>

это скрипт выглядит так: http://dvizh.org/?preview=1&template=new

подскажите, пожалуйста, как надо поправить код, чтобы строка не прерывалась?

alekciy 13.01.2009 23:14

Бегущие строки зло и за них нужно веб мастеров расстреливать в саду.

dansury 14.01.2009 00:16

спасибо за оригинальное решение, но оно мне не подходит.

alekciy 14.01.2009 01:21

Да ты юмористь :D
К слову сказать я сайт посмотрел, но ни где означеной в заглавии бегущей строки на оном ресурсе не обнаружил.

Opera 9.61.

Istamendil 19.01.2009 16:09

Цитата:

Сообщение от alekciy
К слову сказать я сайт посмотрел, но ни где означеной в заглавии бегущей строки на оном ресурсе не обнаружил.

Аналогично. Firefox 3.0.5.

Это просто реклама сайта)))

alekciy 19.01.2009 17:29

Ну понятно. Ссылочную массу набиваем... и куда только смотри администрация?...

Андрей Параничев 20.01.2009 16:55

Девятого числа вроде строка была, так что вряд ли это такая завуалированная реклама.

Tort 01.10.2010 19:07

Даже из обыкновенного marquee можно сделать много разного::dance: http://a-cto.narod.ru/marquee/

Gozar 02.10.2010 14:23

бегущей строке место на помойке и тех кто будет их попрошайничать буду минусовать несчадно ;)

ps: исключение только если они мегадизайн шо пепец

yurik417 26.01.2013 02:54

Это плагин:
http://masscode.ru/index.php/k2/item/44-limarquee
может создавать непрерывную бегущую строку


Часовой пояс GMT +3, время: 00:02.