2015-10-24 2 views
-1

Я не нашел примеров, которые работают для меня. Что мне нужно сделать:Jquery прокрутите до divs с тем же классом

У меня есть страница с переменным числом div, все имеют class = "item-elm". меня 2 arrows, up & down, и когда пользователь нажимает на одну из этих стрелок тело должно прокручивать, чтобы получить следующий DIV на вершине и т.д. и т.п. ...

Но я должен позволить классический mouse/touch свиток и, таким образом, сценарий должен (without fading/showing items) свитка на следующий пункт каждый раз, когда пользователь нажимает на 'next' or 'prev' стрелка.

Я пользователь нуб JQuery, так что я получил работать: - прокрутка к абсолютным сверху или снизу при нажатии на стрелках - прокрутка к первому элементу

Попробованного с serialscroll, но не сделал работа, я думаю, что я что-то неправильно при попытке использовать этот

Edit: Я пробовал: UIKit scrollspy на элементе, чтобы динамически добавлять «активный-вяз» класс data-uk-scrollspy="{cls: 'active-elm', repeat: true}" Затем «OnClick» стрелка вниз, I» м:

function nextScroll() { 
    var scrollPos = $('.active-elm').next('.item-elm').scrollTop(); 
$('body').scrollTo(scrollPos); 
    } 

Не работает:/

+1

ID не может быть повторен. Вместо этого вы можете добавить класс, должен быть только один идентификатор с одним значением – Butterfly

+0

'ID' должны быть уникальными! Я не вижу, чтобы вы очень помогли в этом, так как вы не нашли времени для исследования или показали какие-либо попытки попробовать, но это приятный список желаний. – NewToJS

+0

«divs с тем же id» вы используете тот же идентификатор в разных divs ?? прежде всего атрибут id должен быть уникальным, два div не могут иметь одинаковый идентификатор. вместо этого используйте класс. – Shuvro

ответ

0

Добавить 'идентификатор' приписывать каждому <div>. Значение id содержит порядковый номер <div>, так, например, <div id="div1"> ... <div id="div2"> ... и т. Д. Вставьте стрелку вверх в якорь, например <a href="#divx">...</a>, где x меньше, чем id текущего div и окружает стрелку вниз в аналогичном якоре, где x больше, чем id текущего div , Например, второй <div> выглядит следующим образом:

<div id="div2"> 
    <a href="#div1"><img src="up-arrow.png"/></a> 
    <a href="#div3"><img src="down-arrow.png"/></a> 
</div> 
+0

Кажется, это самый простой и лучший способ, но как я могу «увеличить» x на каждый клик? Потому что, если пользователь прокручивает свою мышь во второй div, например, «стрелка вниз» нужно прокрутить до третьего Извините, что я новичок в JS JQuery Вы дали мне идею: с помощью шпиона прокрутки uikit и привязки которые изменяют мишени стрелок динамически –

+0

Итак, я попробовал: Uikit scrollspy на элементе для динамического добавления класса «активный-вязание» data-uk-scrollspy = "{cls: 'active-elm', repeat: true} " Тогда "OnClick" стрелка вниз, я бегу это: функция nextScroll() \t { \t \t уаг scrollPos = $ ('ACTIVE-вяз.) следующий (' пункт-вяз.).. scrollTop(); \t \t $ ('body'). ScrollTo (scrollPos); \t} Не работает:/ –

0

Хорошо тогда, он работает с:

function nextScroll() 
{ 
    /*var scrollPos = $('.active-elm').next('[data-uk-scrollspy]').scrollTop; 
    $('body').scrollTo(scrollPos);*/ 
    var next; 
     next = $(".active-elm").closest(".item-elm").next(); 
     $("html, body").scrollTo((next.offset().top) + 65, 300); 
} 

function prevScroll() 
{ 
    var next; 
     next = $(".active-elm").closest(".item-elm").prev().prev(); 
     $("html, body").scrollTo((next.offset().top) - 65, 300); 
} 

OnClick для выполнения каждой функции, когда пользователь нажимает на соответствующие стрелки

Затем Жюст использование uikit scrollspy для динамического изменения класса «active-elm» при появлении элемента

Я думаю, что это не лучший способ сделать это, но это действие y works;)

+0

Почему мой не прокручивается вправо и влево, как показано на примере? https://jsfiddle.net/k66gLuLk/3/ Я сортирую div при загрузке страницы. благодаря – Si8

Смежные вопросы