Javascript.RU

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

Помогите! Бьюсь уже 3й день с каруселью
Здравствуйте, помогите пожалуйста с каруселью, бьюсь уже 3й день с элементарной задачкой.
Вот мой код: https://jsfiddle.net/fr50zxez/14/
В рабочем варианте он завершен, кроме функции resize.
Собственно проблема:
Хочу чтобы карусель корректно отображалась при уменьшении/ увеличении ширины страницы.

Отталкиваюсь от этого: если страница, допустим, увеличилась на 200px, то и лефт должен увеличится на 200.
Вот мой код:
resize: function () {
        for (var i = 0; i<= slider.imgs.length - 1; i++) {
            slider.imgs.eq(i).css('left', slider.getLeft(i) +(slider.getWidth() - slider.startWidth))
        } // Это функция только на увеличение, экрана
    }

Тут я вычисляю текущий лефт и добавляю к нему разницу между первоначальной шириной и текущей шириной, но это не работает.
Я уверен, что что то нужно добавить в метод getLeft, но не могу допереть что
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2016, 16:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

hujak_hujak,

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style type="text/css">
    #slider{
    position: relative;
    width: 100%;
    height: 400px;
    overflow: hidden;
}
.img{
    position: absolute;
    width: 100%;
    height: 400px;
    left: 100%;
}
.img:nth-of-type(1){
    background-color: green;

}
.img:nth-of-type(2){
    background-color: grey;
}
.img:nth-of-type(3){
    background-color: darkcyan;
}
.img:nth-of-type(4){
    background-color: darkkhaki;
}
.active{
    left:0;
}

#butRight,#butLeft{
    z-index: 200;
    position: absolute;
    top:200px;
    width: 40px;
    height: 40px;
    background-color: yellow;
}
#butRight{
    right: 5px;
}
#butLeft{
    left: 5px;
}
  </style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(window).load(function() {
    var item = $(".img"),
        i = 0,
        len = item.length;
    $("#butRight, #butLeft").on("click", function(event) {
        event.preventDefault();
        i += this.id == "butRight" ? 1 : -1;
        i == -1 && (i = len - 1);
        i == len && (i = 0);
        item.removeClass("active").eq(i).addClass("active")
    })
});
</script>


</head>

<body>

<body>
<div id="slider">
    <a href="" id="butRight"></a>
    <a href="" id="butLeft"></a>
    <div class="img active"></div>
    <div class="img"></div>
    <div class="img"></div>
    <div class="img"></div>
</div>
</body>


</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2016, 16:31
Интересующийся
Отправить личное сообщение для hujak_hujak Посмотреть профиль Найти все сообщения от hujak_hujak
 
Регистрация: 05.07.2016
Сообщений: 15

К сожалению это не работает
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2016, 16:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от hujak_hujak
К сожалению это не работает
что не работает?
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2016, 16:51
Интересующийся
Отправить личное сообщение для hujak_hujak Посмотреть профиль Найти все сообщения от hujak_hujak
 
Регистрация: 05.07.2016
Сообщений: 15

http://s018.radikal.ru/i514/1608/88/e2fae2823e23.png

https://jsfiddle.net/fr50zxez/25/

Последний раз редактировалось hujak_hujak, 15.08.2016 в 16:53.
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2016, 17:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

hujak_hujak,
не понимаю
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2016, 17:25
Интересующийся
Отправить личное сообщение для hujak_hujak Посмотреть профиль Найти все сообщения от hujak_hujak
 
Регистрация: 05.07.2016
Сообщений: 15

Я наверно криво сформулировал вопрос.

Цель - добиться, что бы при изменении ширины экрана, видна было только 1 картинка. То есть получается, если я увеличу экран на 100px, активный слайдер остается с left: 0 и width:100%, а остальные 3 получают + 100px к left, чтобы не залезать на активный, а на скрине в прошлом ответе, там видно аж 3 картинки одновременно.
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2016, 17:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

hujak_hujak,
именно так и работает код во втором посте, виден только один блок при любой ширине
Ответить с цитированием
  #9 (permalink)  
Старый 15.08.2016, 18:15
Интересующийся
Отправить личное сообщение для hujak_hujak Посмотреть профиль Найти все сообщения от hujak_hujak
 
Регистрация: 05.07.2016
Сообщений: 15

Я же выслал скрин, там сразу 3 блока видно. Как он может работать?
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2016, 18:23
Интересующийся
Отправить личное сообщение для hujak_hujak Посмотреть профиль Найти все сообщения от hujak_hujak
 
Регистрация: 05.07.2016
Сообщений: 15

Ладно, я еще раз очень внимательно все сделаю, отпишу
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает код! студентка мучается уже два дня! помогите! vesnushka163 Элементы интерфейса 18 04.04.2014 12:12
Ajax форма (ПОМОГИТЕ, ЗАМУЧИЛСЯ уже) Synov_son AJAX и COMET 3 04.08.2013 12:20
В IE8 не работает страничка, уже третий день в ступоре yura415 Internet Explorer 1 16.07.2012 17:49
помогите уже месяц не могу понять как это сделать... CTEPEOTUn Общие вопросы Javascript 5 13.04.2011 00:21
Отправка через $.post - уже 2-й день мучаюсь! Alexander666 jQuery 4 20.02.2009 16:18