2013-03-04 2 views
1

Я искал jQuery marquee, хотя это звучит достаточно просто, я не смог найти какой-либо рабочий код, который бы соответствовал моим потребностям.jQuery marquee (из неупорядоченного списка), который поддерживает право налево

Мои требования:

  1. Он должен поддерживать направление (в частности, справа налево).
  2. Он должен поддерживать использование неупорядоченного списка в качестве источника, а не одну строку.
  3. Это должно выглядеть как классическое шатер.

После поиска, я нашел только несколько, которые несколько соответствуют тому, что я ищу, но все они имеют серьезные недостатки.

Первый: liScroll который пока кажется довольно хорошим, ему не хватает поддержки направления. По умолчанию это просто слева направо, и нет возможности изменить это. И хотя я попытался изменить код для поддержки права налево, увы, я потерпел неудачу.

Я также пробовал Giva Labs Marquee Plugin, но он также не поддерживает направление, насколько я мог судить.

Последний вариант [jQuery WebTicker] [2], хотя на первый взгляд он казался идеальным, оказалось, что у него странная ошибка/поведение. Он отлично работает, когда каждый элемент короток, но в моем случае каждый элемент является довольно длинной строкой сам по себе, и в этом случае он ведет себя беспорядочно. Когда каждый элемент заканчивается, вместо того, чтобы плавно отображать следующий справа на своем хвосте, вместо этого отображает много пустых пространств, и предметы чувствуют, что они прыгают вместо прокрутки/слайда.

Я понимаю, что многие люди не любят шатры в целом, но я заверяю вас, я не делаю этого по своему выбору. Так что медведь со мной.

Заранее спасибо.

Edit: мне удалось получить simpleScroll (благодаря цериловый Wiltink) работать по большей части, но я столкнулся с небольшой проблемой. Я использую «направление: назад», что означает, что текст прокручивается слева направо, но проблема заключается в том, что текст начинает прокручиваться с крайнего правого угла, а не слева, в результате чего первый элемент в списке не отображается.

Я посмотрел на JS, и я предполагаю, что проблема лежит в этой части (еще блок) [строки 143 до 162 в оригинальной JS]

if (this.isAuto && this.o.autoMode=='loop') { 

      this.$list.css(this.dimension,this.posMax+(this.itemMax*addItems) +'px'); 

      this.posMax += (this.clipMax - this.o.speed); 

      if (this.isForwards) { 
       this.$items.slice(0,addItems).clone(true).appendTo(this.$list); 
       this.resetPosition = 0; 

      } else { 
       this.$items.slice(-addItems).clone(true).prependTo(this.$list); 
       this.resetPosition = this.$items.length * this.itemMax; 
       //due to inconsistent RTL implementation force back to LTR then fake 
       if (this.isRTL) { 
        this.$clip[0].dir = 'ltr'; 
        //based on feedback seems a good idea to force float right 
        this.$items.css('float','right'); 
       } 
      } 

Но независимо от значения Стараюсь измените его концы, закручивая его дальше, я предполагаю, что это ключевая часть

this.resetPosition = this. $ items.length * this.itemMax;

Но любые изменения этих значений в конечном итоге наносят больше вреда, чем пользы. Я даже работаю в нужном месте? Или проблема может быть в другом месте?

+0

Прошу прощения, но нет: [у нас нет запросов на покупку] (http://blog.stackoverflow.com/2010/11/qa-is-hard-lets-go-shopping/) , они [вне темы] (http://stackoverflow.com/faq#dontask). Объективно отвечающие вопросы программирования? [Мы делаем * и счастливо] (http://stackoverflow.com/faq#questions)! –

+1

Вы должны попытаться запрограммировать его самостоятельно, прежде чем обращаться за помощью здесь ... – Stphane

ответ

3

Я успешно использовал simplescroll в прошлом.

http://logicbox.net/jquery/simplyscroll/

Не уверен, что если он сильно изменился за то время, но он поддерживает направления и работы по UL/LI-х

Вы можете увидеть пример на http://www.cesar.nl/ (продукт-информер на вершине с изображения)

+0

Прежде всего, спасибо, что нашли время ответить на мой вопрос. Я пробовал это через пару быстрых тестов, но я не думаю, что это предназначалось для использования с текстовыми элементами. Когда я заменил изображения текстом, все его совпадение. Я предполагаю, что это проблема с CSS, но я пока не уверен. Я попробую еще раз взглянуть на него и посмотреть, смогу ли я это понять, еще раз спасибо. –

+0

Это, вероятно, CSS ... Не должно быть никакой разницы, поскольку анимация LI анимируется, и не имеет значения, что они содержат ... Но на самом деле трудно предложить только одну библиотеку, которая соответствует всему, что вам нужно. .. Попробовав пару, и ничто, кажется, не подходит, пытаясь написать это самостоятельно, вероятно, ваш лучший выбор (не забудьте сделать его в классный плагин jQuery и выпустить его в мир!) :-) –

+0

Область комментариев был слишком коротким, поэтому я пересмотрел свой первоначальный вопрос с обновлением моего прогресса. Чтобы сделать длинный рассказ коротким, мне удалось заставить его работать, как я хочу, но все еще сталкиваюсь с небольшой проблемой, как я описываю в своем пересмотре. Любые мысли будут оценены, спасибо еще раз. –

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