Задать вопрос
Shugar348
@Shugar348

Как сделать вот такой скролл у элемента относительно другого элемента?

www.bloomberg.com/europe
c9a2f0de8a2d49ca8c82f4e44b4d082b.png
Взгляните пожалуйста как устроен там скроллинг контента. Слева миниатюры с новостями, справа основной контент: эти миниатюры и основной контент относительно друг-друга скроллятся с разной скоростью. Как такое провернуть.
  • Вопрос задан
  • 1009 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
bboytiwst
@bboytiwst
Реализовано это с помощью translate3d
habrahabr.ru/post/151300
stackoverflow.com/questions/18529381/what-does-web...
Что бы посмотреть как там что изменяется достаточно найти расчёт изменения translate3d для этого блока на странице
<section class="brief module has-even-number-of-stories" style="transform: translate3d(0px, 0px, 0px); -webkit-transform: translate3d(0px, 0px, 0px);">
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Это называется parallax-scroll. Делается очень просто.
Контент справа прокручивается на нативной прокрутке, а контент в левом столбике находится на отдельном слое, который крутится на JavaScript. Например так: jsfiddle.net/IonDen/m1s8889u
var $win = $(window),
    $content = $(".js-content"),
    $parallax = $content.find(".js-parallax"),
    baseHeight = $content.outerHeight(),
    maxScroll = baseHeight - $win.innerHeight(),
    parallaxHeight = $parallax.outerHeight(),
    parallaxDiff = parallaxHeight - baseHeight,
    scrollTop, scrollPercent, parallaxTop;

$win.on("scroll", function () {
    scrollTop = $win.scrollTop();
    scrollPercent = scrollTop / maxScroll * 100;
    
    parallaxTop = parallaxDiff / 100 * scrollPercent;
    $parallax[0].style.top = -parallaxTop + "px";
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Shugar348
@Shugar348 Автор вопроса
Сделал немного проще
$ ->
  $(document).scroll ->
      $(".news").find(".content")
      .css('transform', "translate3d(0px, #{$(document).scrollTop() / 2}px, 0)")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы