2016-03-31 3 views
0

Я работаю над веб-приложением (используя Javascript, JQuery, html, css), который просто при нажатии клавиши будет прокручивать эти каналы, поскольку число каналов больше, чем высота экрана, я должен использовать функцию прокрутки, когда достигает 10 каналов вниз или вверх, я использую метод scrollTop для этих целей.Перейдите к определенному элементу в списке, а затем перейдите к следующему определенному элементу в списке

поэтому позвольте мне упростить мой вопрос, как это (если кто-нибудь ответить на этот вопрос, он помогает мне достичь моей фактической цели)

У меня есть список элементов, и я знаю, как я могу перейти к конкретному элементу в списке , но моя цель - после первого прокрутки к элементу 8th, seTimeout, а затем прокрутите до следующего определенного элемента (элемент 14) списка. Я знаю, как я могу перейти к первому определенному элементу, но я не знаю после Timeout, как я могу перейти к следующему определенному элементу (пункт 14).

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

`http://jsfiddle.net/xY7tx/2339/` 

базы на выше коде, который работает, я пытался добавить следующий код, моя цель состоит в первую было бы перейти к пункту 8, а затем 3 второй тайм-аут, то было бы перейти к 14-й пункт (который не будет), пожалуйста, кто-нибудь сказать мне, как я могу это исправить, вот второй код, который не работает как желание:

`http://jsfiddle.net/xY7tx/2338/` 

Спасибо!

+1

http://stackoverflow.com/help/how-to-ask также добавить свой код в строку. – StefanS

ответ

2

Вы можете создать массив со всеми позиции, которую вы хотите использовать и после тайм-аута удалить первый элемент массива

var container = $('div'), 
     scrollTo = new Array($('#row_8'),$("#row_10"),$("#row_14"),$("#row_2")); 

    container.scrollTop(
     scrollTo[0].offset().top - container.offset().top + container.scrollTop() 
    ); 

    scrollTo.shift(); 

    var refreshIntervalId = setInterval(function(){ 
    if(scrollTo.length!=0){ 
     container.scrollTop(
      scrollTo[0].offset().top - container.offset().top + container.scrollTop() 
    ); 
     scrollTo.shift(); 
    }else{ 
    clearInterval(refreshIntervalId); 
    } 
    },3000); 

EDIT

Добавить проверки, если массив пустой интервал остановки

Example

+0

Спасибо за ваш вопрос, я отредактировал исходное сообщение с проблемой, пожалуйста, взгляните на него. – Jack

+0

Извините, что я временно отменил ваше сообщение как «Принято», потому что моя проблема все еще остается, и я ищу новые ответы или, может быть, после того, как я даю больше информации, отредактировав свой пост, вы или кто-то еще, кто хорош, как вы могли бы дать мне новую идею или решение! С уважением! – Jack

+0

в любом случае, кажется, что никто не ищет мою проблему какое-то время, поэтому, хотя я не нашел решения для своей проблемы, я выбираю ваш ответ как лучший, спасибо! – Jack

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

  • Нет связанных вопросов^_^