2015-12-16 3 views
0

Я пытаюсь создать довольно простой эффект горизонтальной прокрутки с помощью Jquery одушевленного() на уль/Li, как вы можете видеть здесь ...вопросов горизонтальной прокрутки с Jquery/CSS

http://codepen.io/d3wannabe/pen/YwwvJb

I есть несколько проблем, которые я действительно застрял, хотя ...

1) Когда вы нажимаете «идти влево», он работает (почти) отлично - элементы выглядят так, как будто они прыгают вправо, и поскольку они они отбрасываются со страницы вправо, они исчезают за текстом «идти вправо» - проблема в том, что исключение из этого правила является окончательной кнопкой, отбрасываемой (в этом случае se "button 1") - Я понятия не имею, почему, но он движется перед текстом «идти вправо», когда он спрыгивает с экрана, и даже (если вы идете медленно) слегка меняет формат (текст «Jump 1» перескакивает на вторую линию).

2) Когда вы нажимаете «идти вправо», это работает еще хуже - элементы не исчезают за текстом «идти влево», они просто перепрыгивают через него и скрывают текст. Это не проблема, г-индекс, но кажется, что этот код ...

$('#tagUl').animate({ 
      marginLeft: "+=200px" 
      }, "fast"); 

(который работает хорошо для «пойти налево», просто не может быть изменен на «- = 200px» для " go right "). Опять же, у меня нет никаких теорий относительно того, почему это происходит!

3) Более общий вопрос, чем проблема, но я не уверен, что лучший способ ограничить эффект прокрутки, чтобы вы не могли прокручивать бесконечно далеко (пропуская точку, когда все элементы все еще отображаются на экране). Любые общие мысли о хорошем подходе к реализации этого будут действительно оценены - спасибо!

ответ

3

Дать overflow:hidden; по номеру .tagUlContainer, чтобы он работал нормально.

и применить следующий CSS, чтобы сделать переход собственно:

#tagUl{ 
    transition:1s all; 
    -webkit-transition:1s all; 
} 

Updated CodePen

+1

Благодаря Кетан - так чертовски прост - жаль, что я пропустил. Я отмечаю это как правильный ответ (через 4 минуты), так как он отвечает на ядро ​​моего вопроса - также действительно оценил бы любые мысли по пунктам 3 от кого-либо. – d3wannabe

+0

Функция зажима будет работать, что-то вроде 'Math.min (Math.max (newLeftValue, - $ ('# tagUl'). Width()), 0)'. Обратите внимание на отрицательный знак до ширины # tagUI. – AVAVT

+0

Извините Av Avt, пытаясь понять, где именно интегрировать это в кодепене, который я опубликовал, и откуда приходит «newLeftValue» - любой шанс нарисовать перо, чтобы продемонстрировать подход? – d3wannabe

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