Показать сообщение отдельно
  #7 (permalink)  
Старый 03.10.2017, 14:50
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Насколько я понял, вот такой макет.
И кликнутый элемент должен становиться активным и вставать на вторую позицию в списке.
<style>
   li { display:inline }
   .active { color:red }
</style>
<ol>
   <li>Первый</li>
   <li class='active'>Второй</li>
   <li>Третий</li>
   <li>Четвертый</li>
   <li>Пятый</li>
   <li>Шестой</li>
</ol>
<script>

  document.querySelector("ol").onclick = function(e){
    var lis = document.querySelectorAll('li');
    var selected = [].indexOf.call(this.children, (e ? e.target :event.srcElement) ) ; 
    if(selected != 1) {
       curr = selected ? selected - 1: lis.length - 1;
       var innerOl = "<li>" + lis[curr].innerText + "</li>\n<li class='active'>" + lis[selected].innerText + "</li>\n";
      curr++;
      for(var i = 2;i <lis.length;i++) { 
          curr++;
          if(curr >= lis.length) { if(selected==0) curr = 1;
            else curr =0;
          }
          innerOl += "<li>" + lis[curr].innerText + "</li>\n";
      }
      this.innerHTML = innerOl;     
   }
};
</script>

Последний раз редактировалось Dilettante_Pro, 03.10.2017 в 17:22.
Ответить с цитированием