Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2014, 01:06
Новичок на форуме
Отправить личное сообщение для cooldanie Посмотреть профиль Найти все сообщения от cooldanie
 
Регистрация: 15.01.2014
Сообщений: 7

Не выполняется условие if
Всем привет. Скажите пожалуйста (у кого появятся идеи), почему может не работать условие в небольшой функции:

z=0;
d=0;
function right(len) {
if (z==-len) {return};
d=setTimeout('right()',10);
z -= 5;
document.getElementById("gallery").style.left = z + 'px';

<img onmouseover="right(50);" onmouseout="clearTimeout(d);">


Эта ф-я прокручивает блок с миниатюрами при наведении курсора на рисунок стрелки. Когда положение блока == нужному параметру, движение останавливается. В моем случае это условие почему-то не срабатывает, и блок едет бесконечно (если подставить параметр прямо в условие - работает). Пытался алертить при каждом смещении блока, через 2-3 смещения значение параметра алертится "NaN".

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2014, 04:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от cooldanie
d=setTimeout('right()',10);
А где параметр len потерял?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2014, 06:41
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var d = 0,
	z = 0,
	gallery = document.getElementById('gallery').style;

function right(len) {
	d = setInterval(function() {
		if(z == -len) clearInterval(d);
		else gallery.left = (z -= 5) + 'px';
	}, 10);
}


<img onmouseover="right(50)" onmouseout="clearInterval(d)" />

Последний раз редактировалось ruslan_mart, 15.01.2014 в 16:34.
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2014, 11:05
Новичок на форуме
Отправить личное сообщение для cooldanie Посмотреть профиль Найти все сообщения от cooldanie
 
Регистрация: 15.01.2014
Сообщений: 7

d=setTimeout('right(len)',10); - в этом случае даже движения нет, может я ошибаюсь в синтаксисе setTimeout? Меня тоже смущает это место. Но без len хотя бы едет блок и останавливается при onmouseout. Не может только остановиться на крае, едет дальше

(ссылка на всякий случай)
_http://svyatoslavdesign.com.ua/works/catering/1/

Последний раз редактировалось cooldanie, 15.01.2014 в 11:37.
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2014, 11:11
Новичок на форуме
Отправить личное сообщение для cooldanie Посмотреть профиль Найти все сообщения от cooldanie
 
Регистрация: 15.01.2014
Сообщений: 7

Сообщение от Ruslan_xDD Посмотреть сообщение
var d = 0,
	z = 0,
	gallery = document.getElement('gallery').style;

function right(len) {
	d = setInterval(function() {
		if(z == -len) clearInterval(d);
		else gallery.left = (z -= 5) + 'px';
	}, 10);
}


<img onmouseover="right(50)" onmouseout="clearInterval(d)" />
Эта конструкция тоже не хочет двигать блок, даже с подстановкой числа параметра в if - по крайней мене у меня в коде
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2014, 13:26
kaf kaf вне форума
Интересующийся
Отправить личное сообщение для kaf Посмотреть профиль Найти все сообщения от kaf
 
Регистрация: 25.06.2012
Сообщений: 24

а если разместить тег img до скрипта и поставить ему id="gallery" ?
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2014, 14:01
Новичок на форуме
Отправить личное сообщение для cooldanie Посмотреть профиль Найти все сообщения от cooldanie
 
Регистрация: 15.01.2014
Сообщений: 7

Сообщение от kaf Посмотреть сообщение
а если разместить тег img до скрипта и поставить ему id="gallery" ?
у меня скрипт в отдельном файле js, а id="gallery" присвоено блоку, который содержит миниатюры и движется. <img> в моем посте - это картинка стрелки. Киньте кусочек кода для примера, может я вас не понял?
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2014, 15:56
kaf kaf вне форума
Интересующийся
Отправить личное сообщение для kaf Посмотреть профиль Найти все сообщения от kaf
 
Регистрация: 25.06.2012
Сообщений: 24

<img id="gallery" onmouseover="right(50);" onmouseout="clearInterval(d);"></div>

var d = 0,
        z = 0,
        gallery = document.getElementById('gallery').style;

    function right(len) {
        d = setInterval(function() {
            if(z == -len) clearInterval(d);
            else gallery.left = (z -= 5) + 'px';
        }, 10);
    }

хотя возможно не работало только из-за опечатки в document.getElementById('gallery').style
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2014, 17:16
Новичок на форуме
Отправить личное сообщение для cooldanie Посмотреть профиль Найти все сообщения от cooldanie
 
Регистрация: 15.01.2014
Сообщений: 7

Цитата:
хотя возможно не работало только из-за опечатки в document.getElementById('gallery').style
это я видел и правил - не помогло, и дело не в нем. не работало и не работает
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2014, 18:31
kaf kaf вне форума
Интересующийся
Отправить личное сообщение для kaf Посмотреть профиль Найти все сообщения от kaf
 
Регистрация: 25.06.2012
Сообщений: 24

в стиле y img position absolute ?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется условие в IF Papazol Общие вопросы Javascript 9 26.09.2013 14:15
Не выполняется условие if фонарик Общие вопросы Javascript 2 29.03.2013 23:28
Не выполняется внутри JQuery.post frundik Элементы интерфейса 3 14.08.2012 11:35
Условие: если функция выполняется raler jQuery 5 21.04.2011 00:06
Условие типа для flv nemo Серверные языки и технологии 1 29.01.2010 17:52