Javascript.RU

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

Динамическое присвоение класса по порядку
Есть карусель и необходимо что-бы каждый элемент динамически получал класс, при каждой прокрутке класс в порядке следования не менялся а вот элементы менялись.

<div class="carousel-block cs1"><img src="images/1.jpg" alt="" /></div>
          <div class="carousel-block cs2"><img src="images/2.jpg" alt="" /></div>
          <div class="carousel-block cs3"><img src="images/3.jpg" alt="" /></div>

Такая во разметка. Классы CS1...CSn являются присвоенными через JS, при смене элементов они не должны меняться в порядке следования:
<div class="carousel-block cs1"><img src="images/2.jpg" alt="" /></div>
          <div class="carousel-block cs2"><img src="images/3.jpg" alt="" /></div>
          <div class="carousel-block cs3"><img src="images/1.jpg" alt="" /></div>


Порядок картинок сменился, порядок классов CS1...CSn нет. Очень прошу помочь в решении этой проблемы
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2014, 09:05
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

У тебя карусель какая? типо roundabout или типо bxslider ?
например создавай массив и количества слайдов:
var arr = new Array();
var len = $('.carousel-block').lenght;
for (i=0;i<len;i++){
arr.push(i)//я присваиваю просто номера,ты можешь что то другое,например свои элементы arr.push($('.carousel-block').eq(i))
}
arr = arr.concat(arr)//конкатинация массива - тем самым мы сможем пройтись циклом потом,когда будем расставлять классы
var currentSlide = 4;//слайд от которого будем расставлять классы, у меня просто 4, ты воспользуешься api своей карусели что бы узнать ключевой слайд
for (i=currentSlide;i<len;i++){
$('.carousel-block').eq(len[i]).addClass('cs'+i);// расставляем классы
}
Попробуй

Последний раз редактировалось krasovsky, 24.03.2014 в 11:28.
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2014, 07:59
Интересующийся
Отправить личное сообщение для Арсений JustPuk Посмотреть профиль Найти все сообщения от Арсений JustPuk
 
Регистрация: 24.03.2014
Сообщений: 23

Не получается. Юзал форум, пробовал книги читать, но в толк взять не могу.
Подскажи что и куда вставить надо, если можно с описанием, что бы в толк взять и в следующий раз не обращаться
Вот код карусели:
$(".carousel-button-right").live('click',function(){ 
   right_carusel();
});
   
$(".carousel-button-left").live('click',function(){ 
   left_carusel();
});
function left_carusel(){
   var block_width = $('.carousel-block').width() + 20;
   $(".carousel-items .carousel-block").eq(-1).clone().prependTo(".carousel-items"); 
   $(".carousel-items").css({"left":"-"+block_width+"px"}); 
   $(".carousel-items").animate({left: "0px"}, 200); 
   $(".carousel-items .carousel-block").eq(-1).remove(); 
}
function right_carusel(){
   var block_width = $('.carousel-block').width() + 20;
   $(".carousel-items").animate({left: "-"+ block_width +"px"}, 200); 
   setTimeout(function () { 
      $(".carousel-items .carousel-block").eq(0).clone().appendTo(".carousel-items"); 
      $(".carousel-items .carousel-block").eq(0).remove(); 
      $(".carousel-items").css({"left":"0px"}); 
   }, 300);
}


Так выглядит HTML
<div class="carousel"> 
   
      <div class="carousel-button-left"><a href="javascript:void(0);">&nbsp;</a></div> 
      <div class="carousel-button-right"><a href="javascript:void(0);">&nbsp;</a></div> 
      
      
      <div class="shadow-block" style="padding-left:0px;">
         <div class="t"><div class="b"><div class="m"><div class="m">
         <div class="t"><div class="t"><div class="b"><div class="b">
            <div class="carousel-wrapper"> 
               <div class="carousel-items"> 
               
                  <div class="carousel-block">
                        <img src="images/1.jpg" alt="" />
                  </div>
                  
                  <div class="carousel-block">
                        <img src="images/2.jpg" alt="" />
                  </div>
                 
                  <div class="carousel-block">
                        <img src="images/3.jpg" alt="" />cfefef
                  </div>
                  
                  <div class="carousel-block">
                        <img src="images/4.jpg" alt="" />
                  </div>
                  <div class="carousel-block">
                        <img src="images/5.jpg" alt="" />
                  </div>
                  <div class="carousel-block">
                        <img src="images/6.jpg" alt="" />
                  </div>
                  <div class="carousel-block">
                        <img src="images/7.jpg" alt="" />
                  </div>            
                  <div class="carousel-block"> 
                        <img src="images/8.jpg" alt="" />
                  </div>
                  
               </div>
            </div>
         </div></div>
         </div></div></div>
         </div></div></div>
      </div>   
   </div>
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2014, 11:06
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Судя по коду не видать что пробовал. Я кстати и не писал решение которое избавит тебя от всех проблем

function myfunc() {

var arr = new Array();
var len = $('.carousel-block').lenght;
for (i=0;i<len;i++){
arr.push(i)
}
arr = arr.concat(arr);
var currentSlide = 4;//ТУТ Я ЕЩЕ РАЗ ПОВТОРЮСЬ вместо 4 нужно использовать api карусельки название которой видимо большая тайна
for (i=currentSlide;i<len;i++){
$('.carousel-block').eq(arr[i]).addClass('cs'+i);
}
}


$(".carousel-button-right").live('click',function(){
   right_carusel();
myfunc()
});
$(".carousel-button-left").live('click',function(){
   left_carusel();
myfunc()
});

Последний раз редактировалось krasovsky, 26.03.2014 в 11:22.
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2014, 15:46
Интересующийся
Отправить личное сообщение для Арсений JustPuk Посмотреть профиль Найти все сообщения от Арсений JustPuk
 
Регистрация: 24.03.2014
Сообщений: 23

Если бы я знал название я бы сказал, если бы я не пробовал я бы не писал. Пробовал и так и эдак но не выходило.Попробую еще... API карусели такая же тайна как и её название, не только для тебя
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рейтинг - присвоение ссылке класса Leyto Элементы интерфейса 3 25.11.2013 14:52
Присвоение класса элементам diakon Javascript под браузер 6 06.09.2013 13:05
Присвоение класса css по строке из файла. akok06 jQuery 1 05.07.2013 16:04
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Присвоение класса элементу с заранее неизвестным ID why.not? Events/DOM/Window 3 01.03.2010 04:47