Движение объекта по svg path при скролле

264
22 декабря 2017, 00:54

Есть такой код:

$(window).on('load resize', function() { 
    initContainer(); 
}); 
 
$(window).scroll(function(){ 
    setMotionPath(); 
}); 
 
function initContainer() { 
    var element = $('.svg'); 
    var motionPath = MorphSVGPlugin.pathDataToBezier("#way").reverse(); 
    TweenLite.set("#circle", { transformOrigin: "50% 50%" });     
 
    setMotionPath();     
}; 
 
function setMotionPath() { 
    var element = $('.svg'); 
    var motionPath = MorphSVGPlugin.pathDataToBezier("#way").reverse(); 
 
     TweenLite.to("#circle", 0, { 
            x: motionPath["x"], 
            y: motionPath["y"] 
        }); 
};
#circle { 
  transform-origin: 0px 0px 0px; 
} 
 
html, 
body { 
  height: 200%; 
  width: 100%; 
  margin: 0; 
  padding: 0; 
} 
 
svg { 
  width: 100%; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"></script> 
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/16327/MorphSVGPlugin.min.js"></script> 
 
 
 
<svg class="svg" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg"> 
  <path id="way" stroke="#000" stroke-dasharray="4,2" stroke-width="1" d="M 100,10 L 100,300"></path> 
 
  <circle cx="100" cy="30" r="20" stroke="black" stroke-width="1" fill="orange" id="circle"/> 
</svg>

CodePen

Вопрос: Как можно застваить круг двигаться по пути path плавно при скролле (желательно с использованием TweenMax)?

READ ALSO
Не подключается библиотека jquery

Не подключается библиотека jquery

Добрый вечер всем не подключается библиотека jquery к проекту, в чем может быть дело?

192
Осуществление идеи: взоимодействие с вк

Осуществление идеи: взоимодействие с вк

ЗдравствуйтеВопрос заключается в взаимодействии с группой вк

222
Как сделать список блоков разной высоты в несколько колонок?

Как сделать список блоков разной высоты в несколько колонок?

ЗдравствуйтеПоявился вот такой нюанс

295