Javascript.RU

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

overflow:hidden
В общем делаю слайдер для изображений, есть некий див с overflow: hidden, в который добавляется много-много уменьшенных копий изображений, по клику на копию будет показываться полная версия, но вопрос не об этом.

<div id="thumbs" style="border: 1px solid black; width: 350px; height: 50px; overflow: hidden"></div>

<script>
  var thumbs = document.getElementById("thumbs");
  for (var i = 0; i < 10; i++) {
    var img = document.createElement("IMG");
    img.height = "50";
    img.src = "http://farmeadow.com/wp-content/gallery/homepage/home5.jpg";
    thumbs.appendChild(img);
  }
</script>


Как сделать так, чтобы картинки шли в один ряд?
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2017, 07:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

exec,
вложить картинки в контейнер с необходимой шириной

exec,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    #thumbs > div {
      width: 2000%;
    }

  </style>

</head>

<body>
<div id="thumbs" style="border: 1px solid black; width: 350px; height: 50px; overflow: hidden"></div>

<script>
  var thumbs = document.getElementById("thumbs"),  div = document.createElement("DIV");
  for (var i = 0; i < 10; i++) {
    var img = document.createElement("IMG");
    img.height = "50";
    img.src = "http://farmeadow.com/wp-content/gallery/homepage/home5.jpg";
    div.appendChild(img);
  }
  thumbs.appendChild(div)
</script>


</body>
</html>

Последний раз редактировалось рони, 14.03.2017 в 07:41.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2017, 07:46
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Вроде получилось, спасибо

<p>
  Прокрутка стрелками вправо и влево
</p>
<div style="border: 1px solid black; height: 50px; width: 350px; overflow: hidden">
  <div id="thumbs" style="width: 10000px">
  </div>
</div>

<script>
  var thumbs = document.getElementById("thumbs");
  for (var i = 0; i < 10; i++) {
    var img = document.createElement("IMG");
    img.height = "50";
    img.src = "http://farmeadow.com/wp-content/gallery/homepage/home5.jpg";
    thumbs.appendChild(img);
  }

  window.onkeydown = function (e) {
    if (e.keyCode == 37) slide(-50);
    if (e.keyCode == 39) slide(50);
  };

  var m = 0;

  function slide(d) {
    var w = getWidth();
    m += d;
    if (m > 0) m = 0;
    if (m < -w + 350) m = -w + 350;
    thumbs.style.marginLeft = m + "px";
  }

  function getWidth() {
    var images = thumbs.getElementsByTagName("IMG");
    var sum = 0;
    for (var i = 0; i < images.length; i++) {
      sum += images[i].clientWidth;
    }
    return sum;
  }
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2017, 15:59
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Опять проблема с overflow, есть такой html:

<div style="overflow: hidden; width: 200px; height: 100px; border: 1px solid black">
  <div style="overflow: auto">
    текст1<br />
    текст2<br />
    текст3<br />
    текст4<br />
    текст5<br />
    текст6<br />
    текст7<br />
    текст8<br />
    текст9<br />
    текст10<br />
  </div>
</div>


Полосы прокрутки у внутреннего дива не появляются несмотря на overflow:auto.

Нужна именна такая структура, чтобы у внешнего дива overflow:hidden, а у внутреннего overflow:auto, и полосы прокрутки появлялись при необходимости.

Как так сделать?
Ответить с цитированием
  #5 (permalink)  
Старый 24.03.2017, 16:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от exec
Как так сделать?
Как вариант...

<div style="overflow: hidden; width: 200px; height: 100px; border: 1px solid black">
  <div style="height: 100%; overflow: auto">
    текст1<br />
    текст2<br />
    текст3<br />
    текст4<br />
    текст5<br />
    текст6<br />
    текст7<br />
    текст8<br />
    текст9<br />
    текст10<br />
  </div>
</div>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание слайдера. Anshag (X)HTML/CSS 4 14.10.2015 20:21
div с overflow:hidden в старом ИЕ geezer Элементы интерфейса 11 30.01.2015 17:53
Почему не работает overflow:hidden cha0s (X)HTML/CSS 0 04.08.2014 19:03
Как постваить в ряд два div с overflow:hidden? zebra741258963 (X)HTML/CSS 2 10.04.2012 14:08
Диалоговое окно внутри контейнера с overflow:hidden debugx (X)HTML/CSS 1 22.08.2011 13:06