1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- var tethers = [];
- document.addEventListener('DOMContentLoaded', function(){
- dragging = null;
- document.body.addEventListener('mouseup', function(){
- dragging = null;
- });
- document.body.addEventListener('mousemove', function(e){
- if (dragging){
- dragging.style.top = e.clientY + 'px';
- dragging.style.left = e.clientX + 'px';
- Tether.position()
- }
- });
- document.body.addEventListener('mousedown', function(e){
- if (e.target.getAttribute('data-index'))
- dragging = e.target;
- })
- var count = 60;
- var parent = null;
- var dir = 'left';
- var first = null;
- while (count--){
- var el = document.createElement('div');
- el.setAttribute('data-index', count);
- document.querySelector('.scroll').appendChild(el);
- if (!first)
- first = el;
-
- if (count % 10 === 0)
- dir = dir == 'right' ? 'left' : 'right';
- if (parent){
- tethers.push(new Tether({
- element: el,
- target: parent,
- attachment: 'middle ' + dir,
- targetOffset: (dir == 'left' ? '10px 10px' : '10px -10px')
- }));
- }
- parent = el;
- }
- initAnim(first);
- });
- function initAnim(el){
- var start = performance.now()
- var last = 0;
- var lastTop = 0;
- var tick = function(){
- var diff = performance.now() - last;
- if (!last || diff > 50){
- last = performance.now();
- var nextTop = 50 * Math.sin((last - start) / 1000);
- var curTop = parseFloat(el.style.top || 0);
- var topChange = nextTop - lastTop;
- lastTop = nextTop;
- var top = curTop + topChange;
- el.style.top = top + 'px';
- Tether.position();
- }
- requestAnimationFrame(tick);
- };
- tick();
- }
|