Jump to content
  • 0

функция внутри блока else


rediskavet
 Share

Question

Пытаюсь вставить функцию в блок else, но че то она ни как не хочет запускаться. Может у меня ошибка в синтаксисе, может недопустимо так определять функцию?

else{
function restartslider(){
if(a!==0){
a=a+34;
VisibilityElement.style.marginLeft=a+'px';
setTimeout(restartslider, 20);
}
else{
setTimeout(slider, 2000);
}
}
}

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
Фигассе. Зачем такие извращения? Сначала функции, потом логика. Может, и будет так работать, но как-то это не по-людски.

У меня этот else внутри другой функции, из ваших слов я понимаю что это тоже не правильно. Так я понял? Я просто теорию через практику постигаю(пытаюсь)

Функция — это блок комманд, который ожидает своего вызова. В else функция должна быть вызвана. Значит эту функцию вы должны прописать до else.

Сейчас попробую все переписать.

вот пример, над которым извращаюсь, может там еще какие то явные недочеты?

Link to comment
Share on other sites

  • 0
не че то я не понял, если функция состоит из цикла, то это то же не правильно?

Смотря что вы под этим подразумеваете... Если в функции вы используете цикл то в этом нету не чего неправельного ))

Link to comment
Share on other sites

  • 0

все переписал с учетом замечаний, в одной функции остался цикл от этого все равно ни как не избавиться. Теперь лучше? Смотреть тут

Все работает как и задумывал, но не всегда плавно, иногда с рывками, почему так?

И еще слайдер из пяти картинок, как доходит до пятой перекручивается назад, но я бы хотел что бы крутилось всегда в одну сторону(после пятой сразу выезжала первая, без прокрутки назад), как это можно исполнить?

Если в функции вы используете цикл то в этом нету не чего неправельного ))

Да, это самое и имел ввиду. Спасибо.

Edited by rediskavet
Link to comment
Share on other sites

  • 0

1) Я бы воспользовался не marginLeft, а позиционированием и свойством left, Имхо.

2)

И еще слайдер из пяти картинок, как доходит до пятой перекручивается назад, но я бы хотел что бы крутилось всегда в одну сторону(после пятой сразу выезжала первая, без прокрутки назад), как это можно исполнить?

Попробуй обнулять marginLeft

Link to comment
Share on other sites

  • 0

 Я бы воспользовался не marginLeft, а позиционированием и свойством left, Имхо.

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

Попробуй обнулять marginLeft

Тут ты меня не понял, если так сделать то после того как пятая фотка замрет на какой то момент резко все перескочит на первую и все начнется сначала, я хочу чтобы все плавно двигалось. Т.е. пятая фотка замерла и потом так-же как и четыре предыдущих поехала влево, а справа выдвигается первая. Единственная идея которая в голову пришла это как-то менять порядок фоток в DOM страницы. Пока не выходит. Бьюсь.

Link to comment
Share on other sites

  • 0

Сделал на позиционировании, но вышло то же самое вот для сравнения на маргинах, а вот на позиционировании. Ладно с этим потом разберусь, может скорость более подходящую нужно подобрать, кстати

setTimeout(slider, 10);

быстрее(чаще) чем так у меня не получается, даже если 1 вместо десяти пишу почему?

Link to comment
Share on other sites

  • 0
setTimeout - это задержка выполнения... из за нее может дергаться...

Да я знаю, я с помощью

setTimeout(slider, 10);

вызываю функцию которая прокручивает слайдер, я не знаю чем можно это заменить. Число 10 это задержка, 10сотых или даже тысячных секунды, мы не должны вообще замечать эту задержку, просто в какой то момент браузер тупит и замирает, а потом снова продолжает считать. Не думаю что причина в setTimeout.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy