Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.06.2015, 01:05
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

После окончания карусели, приходится кликать второй раз
Добрый день!
Учусь писать элементарную карусель.
Все работает как надо, только при прокрутке карусели заново, приходится нажать два раза кнопку, что бы она начала прокрутку.
Помогите, пожалуйста, сильно застрял и не могу понять в чем дело.
<style>
    #naspi li{
        display: inline-block;
        width:  200px;
        height:  100px;
        background-color: #000;
        margin: 20px;
        color: #fff;
        -webkit-transition: all 1s;
        -ms-transition: all 1s;
        -o-transition: all 1s;
        -moz-transition: all 1s;
        transition: all 1s;
        margin-left: 0;

    }

    #naspi{
        width: 800px;
        overflow: hidden;
        height: 100px;
    }

    ul {
        margin: 0;
        padding: 0;
    }
</style>


<ul id="naspi">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

<div onclick="vlev()">Влево</div>
<br>


<br>
<div id="cifr">0</div>

<script>
    var spis = document.getElementById("naspi");
    var skoka = spis.getElementsByTagName("li");

    var vnut = Number(document.getElementById("cifr").innerHTML);
    var vnutnc = document.getElementById("cifr");


    function vlev(){
        var cifogr = vnutnc.innerHTML;
        vnut = vnut + 1;
        vnutnc.innerHTML = vnut;

        if(vnut >= skoka.length - 3){
            vnut = -1;

            for(i=0; i<=skoka.length; i++){
                skoka[i].style.marginLeft = "0";
            }
        }


        skoka[cifogr].style.marginLeft = "-225px";
    }
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 12.06.2015, 01:14
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

у меня все заработало локально когда изменил for(i=0; i<=skoka.length; i++) на for(i=0; i<=skoka.length-1; i++)

Последний раз редактировалось caetus, 12.06.2015 в 01:18.
Ответить с цитированием
  #3 (permalink)  
Старый 12.06.2015, 01:18
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Спасибо, но проблема же осталась. После возвращения всех кадров, приходится 2 раза нажать на кнопку для продолжения.
У меня и локально не работает. Смотрел в FF

Последний раз редактировалось qwe88, 12.06.2015 в 01:21.
Ответить с цитированием
  #4 (permalink)  
Старый 12.06.2015, 01:36
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

vnutnc.innerHTML = vnut;
постав на в самом конце функции
Ответить с цитированием
  #5 (permalink)  
Старый 12.06.2015, 01:41
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Не помогло
Ответить с цитированием
  #6 (permalink)  
Старый 12.06.2015, 02:26
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

раз 10 перепроверил , вроде работает
<style>
     li{
        display: inline-block;
        width:  200px;
        height:  100px;
        background: #000;
        margin: 20px;
        color: #fff;
        -webkit-transition: all 1s;
        -ms-transition: all 1s;
        -o-transition: all 1s;
        -moz-transition: all 1s;
        transition: all 1s;
        margin-left: 0;

    }
    ul li:nth-child(odd){
      background: red;
     }

    #naspi{
        width: 800px;
        overflow: hidden;
        height: 100px;
    }

    ul {
        margin: 0;
        padding: 0;
    }
</style>
</head>
<body>
	


<ul id="naspi">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

<div onclick="vlev()">Влево</div>
<br>


<br>
<div id="cifr">0</div>

<script>
    var spis = document.getElementById("naspi");
    var skoka = spis.getElementsByTagName("li");

    var vnut = Number(document.getElementById("cifr").innerHTML);
    var vnutnc = document.getElementById("cifr");


    function vlev(){
    	var cifogr = vnutnc.innerHTML;
         
         vnut = vnut + 1;
        
        
        
skoka[cifogr].style.marginLeft = "-225px";

        if(vnut >= skoka.length - 2){
        	console.log(vnut)
            vnut =  0;
            console.log(vnut)

            for(i=0; i<=skoka.length-1; i++){
                skoka[i].style.marginLeft = "0";
            }
        }

vnutnc.innerHTML = vnut;
 
        
        
    }
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 12.06.2015, 12:54
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Спасибо огромное!!
А то я уже всю голову сломал
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск скрипта после второй загрузки adamsage jQuery 4 20.11.2014 14:09
как сделать чтобы цикл не запускался второй раз Brook Events/DOM/Window 5 12.05.2013 21:43
Вывод выбранного элемента radio. Срабатывает только во второй раз. Mukhtar Events/DOM/Window 3 09.08.2012 12:19
не срабатывает на второй раз ajax[отправка формы] vovs jQuery 5 21.09.2010 12:12
Не выполнять ф-цию второй раз, пока она не проработает до конца. peter888 Элементы интерфейса 2 04.04.2010 13:04