Javascript.RU

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

Как сделать две и более карусели на одной странице ?
Здравствуйте. javascript знаю не очень.Поэтому и спрашиваю.
Прошу помочь.
Как можно решить эту проблему.
Вот пример http://learn.javascript.ru/play/SpWUD .
или
body {
  padding: 10px
}

.carousel {
  position: relative;
  width: 398px;
  padding: 10px 40px;
  border: 1px solid #CCC;
  border-radius: 15px;
  background: #eee;
}
.carousel img {
  width: 130px;
  height: 130px;
  display: block; /* если не поставить block, в ряде браузеров будет inline -> лишнее пространтсво вокруг элементов */
}
.carousel .arrow {
  position: absolute;
  top: 57px;
  padding: 3px 8px 8px 9px;
  background: #ddd;
  border-radius: 15px;
  font-size: 24px;
  color: #444;
  text-decoration: none;
}

.carousel .arrow:hover {
  background: #ccc;
}
.carousel .left-arrow {
  left: 7px;
}
.carousel .right-arrow {
  right: 7px;
}
.gallery {
  width: 390px;
  overflow: hidden;
}
.gallery ul {
  height: 130px;
  width: 9999px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gallery ul li {
	float: left;
}
img {
opacity:0.8;
-moz-opacity:0.8;
filter: alpha(opacity=80) black;
-khtml-opacity: 0.8;

}
 
img:hover {
opacity:1;
-moz-opacity:1;
filter: alpha(opacity=100) black;
-khtml-opacity: 1;
background-color:#000;
}

.13 {}

#images:hover {opacity:1;
-moz-opacity:1;
filter: alpha(opacity=100) black;
-khtml-opacity: 1;
background-color:#fff;}

<div class="carousel">
<a href="#" class="arrow left-arrow" id="prev">‹ </a>
  <div class="gallery">
    <ul id="images">
      <li><img class="13" src="1(1).png"></li>
      <li><img class="13" src="1(2).png"></li>
      <li><img class="13" src="1(3).png"></li>
      <li><img class="13" src="1(4).png"></li>
      <li><img class="13" src="1(5).png"></li>
      <li><img class="13" src="1(6).png"></li>
      <li><img class="13" src="1(7).png"></li>

    </ul>
  </div>
<a href="#" class="arrow right-arrow" id="next">› </a>
</div>
<div class="carousel">
<a href="#" class="arrow left-arrow" id="prev">‹ </a>
  <div class="gallery">
    <ul id="images">
      <li><img class="13" src="1(1).png"></li>
      <li><img class="13" src="1(2).png"></li>
      <li><img class="13" src="1(3).png"></li>
      <li><img class="13" src="1(4).png"></li>
      <li><img class="13" src="1(5).png"></li>
      <li><img class="13" src="1(6).png"></li>
      <li><img class="13" src="1(7).png"></li>

    </ul>
  </div>
<a href="#" class="arrow right-arrow" id="next">› </a>
</div>

/* этот код помечает картинки, для удобства разработки */
var lis = document.getElementsByTagName('li');
for(var i=0; i<lis.length; i++) {
  lis[i].style.position='relative';
  var span = document.createElement('span');
  // обычно лучше использовать CSS-классы,
  // но этот код - для удобства разработки, так что не будем трогать стили
  span.style.cssText='position:absolute;left:0;top:0';
  span.innerHTML = i+1;
  lis[i].appendChild(span);
}

/* конфигурация */
var width = 130; // ширина изображения
var count = 3; // количество изображений

var ul = document.getElementById('images');
var imgs = ul.getElementsByTagName('li');

var position = 0; // текущий сдвиг влево

document.getElementById('prev').onclick = function() {
  if (position >= 0) return false; // уже до упора

  // последнее передвижение влево может быть не на 3, а на 2 или 1 элемент
  position = Math.min(position + width*count, 0)
  ul.style.marginLeft = position + 'px';
  return false;
}

document.getElementById('next').onclick = function() {
  if (position <= -width*(imgs.length-count)) return false; // уже до упора

  // последнее передвижение вправо может быть не на 3, а на 2 или 1 элемент
  position = Math.max(position-width*count, -width*(imgs.length-count));
  ul.style.marginLeft = position + 'px';
  return false;
};

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

Последний раз редактировалось ma2be0fe, 14.09.2014 в 19:26.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AngularJS, 2 и более пользователей на одной странице - SSE? MaximusFT Angular.js 3 29.04.2014 10:38
Ajax+js+5 форм обратной связи на одной странице aleksandr8i AJAX и COMET 0 01.04.2014 10:04
Несколько версий JQuery UI на одной странице. Casufi jQuery 2 10.11.2012 15:24
Как сделать 2 галереи JQuery на одной странице? orendzi jQuery 8 16.07.2011 15:22
Две карусели на странице Sergey2 Общие вопросы Javascript 1 12.08.2010 02:28