Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Слайдер не резиновый (https://javascript.ru/forum/events/60278-slajjder-ne-rezinovyjj.html)

Cdelphi78 21.12.2015 10:19

Слайдер не резиновый
 
Здравствуйте! Значит в сладере заадаптивил каритинки они теперь резиновые, но проблема в том что слайдер при этом остался статичным, то есть подключаю скрипт слайдера вся резиновость картинок пропадает, при уменьшении страницы картинки не уменьшаются, прямо не знаю что делать, никаких зацепок нет?
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
     <title>Document</title>
     <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
       <script>
var slideWidth = 980,
    sliderTimer, currentSlide = 0, len;

function nextSlide() {
    currentSlide++;
    if (currentSlide >= len) currentSlide = 0;
    $(".slidewrapper").animate({
        left: -currentSlide * slideWidth
    }, 800)
}

function prevSlide() {
    currentSlide--;
    if (currentSlide < 0) currentSlide = len - 1;
    $(".slidewrapper").animate({
        left: -currentSlide * slideWidth
    }, 800)
}
$(function() {
    len = $(".slidewrapper").children().length
    $(".slidewrapper").width(len * slideWidth);
    sliderTimer = setInterval(nextSlide, 3000);
    $("#slider").on({
        mouseenter: function() {
            clearInterval(sliderTimer)
        },
        mouseleave: function() {
            sliderTimer = setInterval(nextSlide, 3000)
        }
    });
    $("#next_slide").click(function(event) {
        event.preventDefault();
        clearInterval(sliderTimer);
        nextSlide()
    });
    $("#prev_slide").click(function(event) {
        event.preventDefault();
        clearInterval(sliderTimer);
        prevSlide()
    })
});
</script>

    <style>
   #slider  {
    max-width:973px;
    height: auto;
    position: relative;
    overflow: hidden;
    border: 3px solid rgba(75, 77, 97,0.6);
}


.clearfix {
    width:100%;
    height: auto;
    display: block;
}

 .slidewrapper{
    position: absolute;
    max-width:3000px;
    left: 0;
    top: 0;
    margin: 0;
    padding: 0;  
     
}

#slider li > .img-responsive {
    width:100%;
    height:auto;
    display: block;
}

.slidewrapper .slide {
    float:left;
    list-style-type: none;
    max-width:977px;
}





#slider .arrows {
    top:50%;
}



#slider #prev_slide {
    z-index: 10000;
    position: absolute;
    left:0;
    margin-top:-25px;
}


#slider #next_slide {
    z-index: 10000;
    position: absolute;
    right:0;
    margin-top:-25px;
}

.fa-arrow-circle-left,.fa-arrow-circle-right {
    background: #000;
    font-size: 50px !important;
    opacity: 0.5;
    border-radius: 50%;
}

.fa:hover {
    opacity: 1;
    
}



    </style>
 </head>
<body>
    <div id="slider">
           <ul class="slidewrapper" data-current="0">
              
               <li class="slide"><img class="img-responsive" src="http://www.optimum1.ru/images/shapka2.jpg" alt="slide1"></li>
               <li class="slide"><img class="img-responsive" src="http://www.mccombs.utexas.edu/~/media/Images/MSB/Departments/IROM/Events/WSBA/Cool-Technology-Wallpaper-1-1920x1080%20cropped.jpg?h=300&w=980" alt="slide2"></li>
               <li class="slide"><img class="img-responsive" src="http://timebasedsales.com/wp-content/uploads/2012/11/tbs_fejlecek_980x300_KV_industries_general.jpg" alt="slide3"></li>
               
           </ul>
 <a href="javascript: void(0)" id="prev_slide" class="arrows"><i class="fa fa-arrow-circle-left"></i></a>          
<a href="javascript: void(0)" id="next_slide" class="arrows"><i class="fa fa-arrow-circle-right"></i></a>
<img src="img/cl_fix.png" alt="clear" class="clearfix">
           
           </div>
</body>
</html>

рони 21.12.2015 10:30

Cdelphi78,
в чём резиновость то если при изменении окна li не меняют свой размер, а картинки согласно вашему css занимают всю ширину li

Cdelphi78 21.12.2015 10:53

ААА, отключите скрипт, не отключил.посмотрите, у меня работает.

рони 21.12.2015 11:00

Цитата:

Сообщение от Cdelphi78
ААА, отключите скрипт, не отключил.посмотрите, у меня работает.

не осилил :)

Cdelphi78 21.12.2015 11:33

Вот, посмотрите, сейчас картинки резиновые, подключаю скрипт начинаются проблемы с резиной.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
     <title>Document</title>
     <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
      <!--<script>
var slideWidth = 980,
    sliderTimer, currentSlide = 0, len;

function nextSlide() {
    currentSlide++;
    if (currentSlide >= len) currentSlide = 0;
    $(".slidewrapper").animate({
        left: -currentSlide * slideWidth
    }, 800)
}

function prevSlide() {
    currentSlide--;
    if (currentSlide < 0) currentSlide = len - 1;
    $(".slidewrapper").animate({
        left: -currentSlide * slideWidth
    }, 800)
}
$(function() {
    len = $(".slidewrapper").children().length
    $(".slidewrapper").width(len * slideWidth);
    sliderTimer = setInterval(nextSlide, 3000);
    $("#slider").on({
        mouseenter: function() {
            clearInterval(sliderTimer)
        },
        mouseleave: function() {
            sliderTimer = setInterval(nextSlide, 3000)
        }
    });
    $("#next_slide").click(function(event) {
        event.preventDefault();
        clearInterval(sliderTimer);
        nextSlide()
    });
    $("#prev_slide").click(function(event) {
        event.preventDefault();
        clearInterval(sliderTimer);
        prevSlide()
    })
});
</script>-->

    <style>
   #slider  {
    max-width:973px;
    height: auto;
    position: relative;
    overflow: hidden;
    border: 3px solid rgba(75, 77, 97,0.6);
}


.clearfix {
    width:100%;
    height: auto;
    display: block;
}

 .slidewrapper{
    position: absolute;
    max-width:3000px;
    left: 0;
    top: 0;
    margin: 0;
    padding: 0;  
     
}

#slider li > .img-responsive {
    width:100%;
    height:auto;
    display: block;
}

.slidewrapper .slide {
    float:left;
    list-style-type: none;
    max-width:977px;
}





#slider .arrows {
    top:50%;
}



#slider #prev_slide {
    z-index: 10000;
    position: absolute;
    left:0;
    margin-top:-25px;
}


#slider #next_slide {
    z-index: 10000;
    position: absolute;
    right:0;
    margin-top:-25px;
}

.fa-arrow-circle-left,.fa-arrow-circle-right {
    background: #000;
    font-size: 50px !important;
    opacity: 0.5;
    border-radius: 50%;
}

.fa:hover {
    opacity: 1;
    
}



    </style>
 </head>
<body>
    <div id="slider">
           <ul class="slidewrapper" data-current="0">
              
               <li class="slide"><img class="img-responsive" src="http://www.optimum1.ru/images/shapka2.jpg" alt="slide1"></li>
               <li class="slide"><img class="img-responsive" src="http://www.mccombs.utexas.edu/~/media/Images/MSB/Departments/IROM/Events/WSBA/Cool-Technology-Wallpaper-1-1920x1080%20cropped.jpg?h=300&w=980" alt="slide2"></li>
               <li class="slide"><img class="img-responsive" src="http://timebasedsales.com/wp-content/uploads/2012/11/tbs_fejlecek_980x300_KV_industries_general.jpg" alt="slide3"></li>
               
           </ul>
 <a href="javascript: void(0)" id="prev_slide" class="arrows"><i class="fa fa-arrow-circle-left"></i></a>          
<a href="javascript: void(0)" id="next_slide" class="arrows"><i class="fa fa-arrow-circle-right"></i></a>
<img src="img/cl_fix.png" alt="clear" class="clearfix">
           
           </div>
</body>
</html>

Deff 21.12.2015 12:00

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
     <title>Document</title>
     <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
       <script>

    var slideWidth,
    sliderTimer,
    currentSlide = 0,
    len;

function StarT () { 
     if($(window).width()>980) slideWidth = 980;
     else slideWidth = parseInt($(window).width());// alert(slideWidth);


function nextSlide() {
    currentSlide++;
    if (currentSlide >= len) currentSlide = 0;
    $(".slidewrapper").animate({
        left: -currentSlide * slideWidth
    }, 800)
}

function prevSlide() {
    currentSlide--;
    if (currentSlide < 0) currentSlide = len - 1;
    $(".slidewrapper").animate({
        left: -currentSlide * slideWidth
    }, 800)
}
$(function() {
    $('#slider').css({'max-width':slideWidth+'px','height':''+parseInt(.307*slideWidth)+'px'});

    len = $(".slidewrapper").children().length
    $(".slidewrapper").width(len * slideWidth);
    sliderTimer = setInterval(nextSlide, 3000);
    $("#slider").on({
        mouseenter: function() {
            clearInterval(sliderTimer)
        },
        mouseleave: function() {
            sliderTimer = setInterval(nextSlide, 3000)
        }
    });
    $("#next_slide").click(function(event) {
        event.preventDefault();
        clearInterval(sliderTimer);
        nextSlide()
    });
    $("#prev_slide").click(function(event) {
        event.preventDefault();
        clearInterval(sliderTimer);
        prevSlide()
    })
});

}; StarT ();
var timID2;
$(window).resize(function() {
   if($(window).width()>=980) return;
  //Тут коды переинициализации;
    clearTimeout(timID2);
    clearInterval(sliderTimer);
    $(".slidewrapper").stop(true);
    $(".slidewrapper").css({'left':0})
    timID2 = setTimeout(function(){StarT()},700);
});
</script>

    <style>
   #slider  {
    max-width:973px;
    height:280px;
    position: relative;
    overflow: hidden;
    border: 3px solid rgba(75, 77, 97,0.6);
}


.clearfix {
    width:100%;
    height: auto;
    display: block;
}

 .slidewrapper{
    position: absolute;
    max-width:3000px;
    left: 0;
    top: 0;
    margin: 0;
    padding: 0;  
     
}

#slider li > .img-responsive {
    width:100%;
    height:auto;
    display: block;
}

.slidewrapper .slide {
    float:left;
    list-style-type: none;
    max-width:33.3%;
}





#slider .arrows {
    top:50%;
}



#slider #prev_slide {
    z-index: 10000;
    position: absolute;
    left:0;
    margin-top:-25px;
}


#slider #next_slide {
    z-index: 10000;
    position: absolute;
    right:0;
    margin-top:-25px;
}

.fa-arrow-circle-left,.fa-arrow-circle-right {
    background: #000;
    font-size: 50px !important;
    opacity: 0.5;
    border-radius: 50%;
}

.fa:hover {
    opacity: 1;
    
}



    </style>
 </head>
<body>
    <div id="slider">
           <ul class="slidewrapper" data-current="0">
              
               <li class="slide"><img class="img-responsive" src="http://www.optimum1.ru/images/shapka2.jpg" alt="slide1"></li>
               <li class="slide"><img class="img-responsive" src="http://www.mccombs.utexas.edu/~/media/Images/MSB/Departments/IROM/Events/WSBA/Cool-Technology-Wallpaper-1-1920x1080%20cropped.jpg?h=300&w=980" alt="slide2"></li>
               <li class="slide"><img class="img-responsive" src="http://timebasedsales.com/wp-content/uploads/2012/11/tbs_fejlecek_980x300_KV_industries_general.jpg" alt="slide3"></li>
               
           </ul>
 <a href="javascript: void(0)" id="prev_slide" class="arrows"><i class="fa fa-arrow-circle-left"></i></a>          
<a href="javascript: void(0)" id="next_slide" class="arrows"><i class="fa fa-arrow-circle-right"></i></a>
<img src="img/cl_fix.png" alt="clear" class="clearfix">
           
           </div>
</body>
</html>
Ни наю, поправил на коленке ...

Cdelphi78 21.12.2015 12:14

Deff спасибо, но слайдер все равно не резиновый он как каартинки должен уменьшаться, эм а без скрипта не обойтись, я хотел сделать резиновый слайдер без скриптов вообще?

Deff 21.12.2015 12:36

Cdelphi78,
Вы пробовали ужать окно браузера с моими правками ?

Cdelphi78 21.12.2015 16:28

конечно я и говорю слайдер не стал резиновым, посмотрите как он должен работать при уменьшениии у меня в коде!

Deff 21.12.2015 20:58

Cdelphi78,
Ну подправил ыщо

Cdelphi78 23.12.2015 13:30

Уже лучше, но все равно нето вот посмотрите как здесь работает слайдер http://flexslider.woothemes.com/ он полностью резиновый)
А и кто му же он опять забаговался:) , работает не поими как?

Cdelphi78 23.12.2015 13:35

Самое интересное что в сети ни одного толкогвого урока по резине слайда

Deff 23.12.2015 13:50

Cdelphi78,
Ну нун отслеживать window.onresize для правки длины перемещений контента и размера слайдера.
http://freeams.ru/lessons/lessons-co...ry-i-css3.html
http://bxslider.com/examples/thumbnail-pager-1

Как-то Вы плохо ищите
http://www.internet-technologies.ru/...icle_2279.html
http://qps.ru/FHQMq

Cdelphi78 23.12.2015 14:10

http://freeams.ru/lessons/lessons-co...ry-i-css3.html этот посмострю, че то ничего не понимаю, какой onresize? там же transition3d работает?
http://bxslider.com/examples/thumbnail-pager-1 здесь ниче непонятно
http://www.internet-technologies.ru/...icle_2279.html это обзоры слайдов мне нужен урок по адаптивности слайдеров
http://qps.ru/FHQMq ссылка на вирус:)

Cdelphi78 23.12.2015 14:12

А на чистом css можно зарезинить слайдер?

Cdelphi78 23.12.2015 14:14

http://freeams.ru/lessons/lessons-co...ry-i-css3.html ну здесь он готовый подклюяает слайдер я же искал как сделать полностью кастомный резиновый слайдер)

Cdelphi78 23.12.2015 14:22

Вот это не понятно зачем он делает >Идем далее: исключаем показ слайдов изображений которые находятся вне основной области просмотра,

Cdelphi78 23.12.2015 14:25

а вот это еще что такое не понятно
.slides:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}
 
html[xmlns] .slides { display: block; }
* html .slides { height: 1%; }

Deff 23.12.2015 14:26

Цитата:

Сообщение от Cdelphi78
ссылка на вирус

Пользуйтесь нормальными браузерами и антивирами, ибо это кодированная ссылка на гугол, дабы не писать длинные ссылки
Тоже самое, без ужатий
https://www.google.ru/search?q=%D0%B...45.46YTrAn7GYk

Cdelphi78 23.12.2015 14:29

а ха ха, а скрипт он так и не разобрал что делает каждая строчка:)

Cdelphi78 23.12.2015 14:31

Deff, ну вот сейчас ссылка заработала,но дело не в этом я искал уже в гугле , там везде идут обзоры готовых решений, купите то купите это, мне то другое нужно, мне урок по резиновости слайдера нужен что нужно для этого)

Deff 23.12.2015 14:41

Cdelphi78,
Я за два последних года не смог чего нибудь не найти, по любым вопросам скриптодеятельности. Задавайте правильно Вопросы поисковикам,
Пробуйте, переформулируйте, ищите и на англоязычных ресурсах. Уж слайдеров и уроков по ним - тьма тьмущая. Хотя при попытке напрячься и понять, что я вам пояснил про window.onresize или $(window).resize в JQ уже можно сделать всё самому!
Что меняется при смене размеров окна ?
1. Ширина -высота слайдера [1]
2. Длина пути прохода картинки [2]
=========================
1. Запуск.(Инициализация) Считываем Высоту - ширину окна браузера - если она не менее установленной в css начальной ширины - оставляем всё как есть
2. Если меньше - Редактируем [1] и [2] , останавливаем и перезапускаем слайдер
=========================
При событии $(window).resize проводим повторную Инициализацию

Cdelphi78 23.12.2015 14:59

Спасибо за информацию, попробую разобраться, все может ответите на вопрос как сделать на чистом css это все не сторонник подключать скрипты вообще)

Deff 23.12.2015 15:05

Cdelphi78,
Должен быть уже скрипт слайдера учитывающий резиновость,
Ибо путь прохода картинки слайдер вычисляет для конкретной ширины слайдера, и при смене ширины нун его переинициализировать

Cdelphi78 23.12.2015 15:13

Да я говорю, без скриптов вообще можно сделать?

Deff 23.12.2015 15:15

Можно, Поищите слайдер на чистом css
Есть вариант слайдера без передвижений, тады мон резиновость делать css http://javascript.ru/forum/jquery/29...-slajjder.html
(Там картинка рамки испортилась ...

Cdelphi78 23.12.2015 15:30

Deff, что то седня лень вообще думать может быть соберусь как нибуть да разберусь с этими слайдерами всеми,:D

Cdelphi78 24.12.2015 09:33

Не. Открыл я скрипт flexslidera и не понимаю в нем ни строчки чего куда?, буду свой пытаться доделать.

Cdelphi78 24.12.2015 09:44

Кто нибуть может мне обьяснить как работает этот скрипт? Почему слайдер лихорадит так в адаптиве?
<script>
008
 
009
    var slideWidth,
010
    sliderTimer,
011
    currentSlide = 0,
012
    len;
013
 
014
function StarT () {
015
     if($(window).width()>980) slideWidth = 980;
016
     else slideWidth = parseInt($(window).width());// alert(slideWidth);
017
 
018
 
019
function nextSlide() {
020
    currentSlide++;
021
    if (currentSlide >= len) currentSlide = 0;
022
    $(".slidewrapper").animate({
023
        left: -currentSlide * slideWidth
024
    }, 800)
025
}
026
 
027
function prevSlide() {
028
    currentSlide--;
029
    if (currentSlide < 0) currentSlide = len - 1;
030
    $(".slidewrapper").animate({
031
        left: -currentSlide * slideWidth
032
    }, 800)
033
}
034
$(function() {
035
    $('#slider').css({'max-width':slideWidth+'px','height':''+parseInt(.307*slideWidth)+'px'});
036
 
037
    len = $(".slidewrapper").children().length
038
    $(".slidewrapper").width(len * slideWidth);
039
    sliderTimer = setInterval(nextSlide, 3000);
040
    $("#slider").on({
041
        mouseenter: function() {
042
            clearInterval(sliderTimer)
043
        },
044
        mouseleave: function() {
045
            sliderTimer = setInterval(nextSlide, 3000)
046
        }
047
    });
048
    $("#next_slide").click(function(event) {
049
        event.preventDefault();
050
        clearInterval(sliderTimer);
051
        nextSlide()
052
    });
053
    $("#prev_slide").click(function(event) {
054
        event.preventDefault();
055
        clearInterval(sliderTimer);
056
        prevSlide()
057
    })
058
});
059
 
060
}; StarT ();
061
var timID2;
062
$(window).resize(function() {
063
   if($(window).width()>=980) return;
064
  //Тут коды переинициализации;
065
    clearTimeout(timID2);
066
    clearInterval(sliderTimer);
067
    $(".slidewrapper").stop(true);
068
    $(".slidewrapper").css({'left':0})
069
    timID2 = setTimeout(function(){StarT()},700);
070
});
071
</script>

Cdelphi78 24.12.2015 09:48

Что такое parseInt?

Cdelphi78 24.12.2015 10:26

Ни одного нормального урока по разбору скриптов слайдера:cray:
Напишут: "для работы слайдера нужен вот такой скрипт.Спасибо за внимание!" А разбирать каждую строчку кто будет?

Cdelphi78 24.12.2015 12:07

ооооооооооооооо, алле, может кто за недорого хоть поможет с этим скриптом?

Deff 24.12.2015 15:05

Цитата:

Сообщение от Cdelphi78
parseInt?

Есть справочник и учебник, см меню форума!
http://javascript.ru/parseint
В данном случае отбрасывает дробную часть от деления чисел, оставляя ток целую
Не все браузеры переваривают ширину с дробью, ибо число пиксел на экране -целое

Cdelphi78 25.12.2015 09:12

Вот так вот понял а то в этом учебнике так написано что не понятно,
Далее вот здесь не понятно у нас currentslide равен 0 потом увеличивается на единицу потом почему то если currentslide >= переменной len(где len не задано значение) то currentslide опять сбрасывать в ноль,
потом анимируем позицию смещаем влево на значение минус currentslide почему то умноженное на ширинку сладера а ище 800 там зачем то в конце.

Cdelphi78 28.12.2015 17:09

никто не хочет помогать, тогда закрываем тему. на биржу выложу проект тогда)

Cdelphi78 02.01.2016 14:55

Дурацкий слайдер, дико бесит меня, чуть тронешь, начинает носиться как угорелый:-/


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