Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите новичку! (https://javascript.ru/forum/events/30444-pomogite-novichku.html)

Анатолий Саратовцев 04.08.2012 16:16

Помогите новичку!
 
Здравствуйте! Помогите, пожалуйста, решить задачку :help: .
Код:

<div class="slider">
  <div class="sliderContent">
      <img src="1.jpg" />
      <img src="2.jpg" />
      <img src="3.jpg" />
      <img src="4.jpg" />
      <img src="5.jpg" />
      <img src="6.jpg" />
      <img src="7.jpg" />
      <img src="8.jpg" />
      <img src="9.jpg" />
      <img src="10.jpg" />
  </div>
</div>

Размеры картинок и их количество неизвестны, т.е. теги img формируются динамически и ширина картинок может быть
разной. Теперь вопрос: как посчитать, какая должна быть ширина у sliderContent? Если ее задать через стили заведомо
большой, то останется пустое место. Предполагаю, что можно как-то посчитать через javascript. Например, функцией each
которая есть в jquery, пробежаться по всем img, вычислить их суммарную ширину и установить эту ширину у sliderContent. Но
как тогда узнать ширину картинок, если у нее незадается никаких параметров ни в атрибутах (видз и хеигхт) ни в стилях? Или
можно пойти каким то другим путем? Помогите, пожалуйста!

Deff 04.08.2012 16:31

Анатолий Саратовцев,
установите стандартную типовую высоту картинки а ширину auto или наоборот
Если в теге - тогда прописываем только фиксированный атрибут

<img src="/forum/images/editor/smilie.gif" width="21" />

Анатолий Саратовцев 04.08.2012 16:46

Цитата:

Сообщение от Deff (Сообщение 194561)
Анатолий Саратовцев,
установите стандартную типовую высоту картинки а ширину auto или наоборот
Если в теге - тогда прописываем только фиксированный атрибут

<img src="/forum/images/editor/smilie.gif" width="21" />

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

Анатолий Саратовцев 04.08.2012 17:06

Короче, дело решается если можно вычислить ширину каждой картинки. Но у картинки нет никаких атрибутов у которых можно взять эту ширину. Может есть какаято низкоуровневая функция?

Deff 04.08.2012 17:24

Анатолий Саратовцев,
1. А зачем Вам ширина?
2. - Наверняка это превью - воткните картинки в divы с overflow:hidden с cтандартизованной шириной -высотой ( в превью главное - центр
3 - загрузить картинки в div блок за кадром - (позиция absolute ; z-index:-100; - cчитать там ширину и высоту блока - выровнять и воткнуть блок в слайдер

Анатолий Саратовцев 04.08.2012 17:36

Цитата:

Сообщение от Deff (Сообщение 194575)
Анатолий Саратовцев,
1. А зачем Вам ширина?
2. - Наверняка это превью - воткните картинки в divы с overflow:hidden с cтандартизованной шириной -высотой ( в превью главное - центр
3 - загрузить картинки в div блок за кадром - (позиция absolute ; z-index:-100; - cчитать там ширину и высоту блока - выровнять и воткнуть блок в слайдер

Нет, надо вычислить именно ширину:cray:

Deff 04.08.2012 17:41

Анатолий Саратовцев,
3-тий пункт, там и весь блок и каждая картинка - как нравиться

Анатолий Саратовцев 04.08.2012 17:46

Вот как решил проблему (может кому понадобится)
Код:

<script type="text/javascript">
$(document).ready(function() {
        var sliderwidth = 0;
        $('.contentslider img').each(function(index) {
            sliderwidth = sliderwidth + this.width;
          })                 
          $('.contentslider').attr('style', 'width:'+sliderwidth+'px');
});
</script>



Часовой пояс GMT +3, время: 07:10.