Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.07.2013, 15:20
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

Бегущий Nyan Cat (gif), помогите остановить!
При загрузке страницы по горизонтали пробегает картинка:
function init_move() {
      dx = 1 
     setInterval("move()",8)
	      }
    function move() {
           var x = parseInt(document.all.pic.style.left);
           document.all.pic.style.left = x + dx;
      if (x > document.documentElement.clientWidth ) {
//как бы его тут остановить?
	  }

    }

<img name="pic" src="/root/home/www/cgi-bin/Nyan_Cat.gif" style="position:absolute; top:300; left:-180;">
    <script>
      init_move()
</script>

Но как при достижении границы экрана остановить скрипт (отмечено комментарием)?
Ведь на то он и Nyan Cat, бежит и бежит, бесконечно увеличивая полосу прокрутки по горизонтали - но мне этого же не не нужно.

Уже несколько методов попробовал - не выходит.

Последний раз редактировалось VINRARUS, 01.07.2013 в 15:26.
Ответить с цитированием
  #2 (permalink)  
Старый 01.07.2013, 15:26
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

var timer = setInterval(){};
clearInterval(timer);
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2013, 15:39
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

Сообщение от zebra Посмотреть сообщение
var timer = setInterval(){};
clearInterval(timer);
А можете помочь подправить код целиком, а то моих скромных знаний JS оказалось мало, не выходит у меня вставить правильно эти 2 строчки.
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2013, 16:04
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

function init_move()
{
   dx = 1 
   init_time = setInterval(function()
   {
      var x = parseInt(document.all.pic.style.left);
      document.all.pic.style.left = x + dx;
      if (x > document.documentElement.clientWidth) clearInterval(init_time);
   }, 8)
}
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2013, 16:19
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

Большое спасибо, теперь Nyan Cat приручен!
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2013, 17:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Зачем img'у name? Пропиши вместо него id и вместо document.all.pic просто pic (или лучше document.getElementById('pic') )
Ответить с цитированием
  #7 (permalink)  
Старый 01.07.2013, 18:48
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

Сообщение от danik.js Посмотреть сообщение
Зачем img'у name? Пропиши вместо него id
Ну да, тоже подумал что бред. Но это было в каком то уроке
Сообщение от danik.js Посмотреть сообщение
или лучше document.getElementById('pic')
Firefox тоже с консоли об этом намекнул.
Поправил - работает, пасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2013, 05:03
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

По крайней мере, вместо document.all лучше писать document.images.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск