Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Template.returnedCurrencies.onRendered( function () {
// init controller
this.controller = new scrollmagic.Controller();
var templ = Template.instance()
// build scene
var scene = new scrollmagic.Scene({triggerElement: "#loader", triggerHook: "onEnter"})
.addTo(templ.controller)
.on("enter", function (e) {
templ.limit.set(templ.limit.get()+templ.increment)
scene.update()
})
// console.log(Currencies.findOne())
//Meteor.call('updateMarketCap');
});
componentDidMount() {
// How to retrieve variables from scss in Javascript
console.log(styles['break-medium'])
console.log(styles['break-large'])
console.log(styles['break-xlarge'])
console.log(styles['nav-menu-break'])
this.animation = new TimelineMax({ paused: true })
.fromTo(this.node, 5, { opacity: 0 }, { opacity: 1 })
this.animation.play()
this.scrollAnim = new TimelineMax({ paused: true })
.fromTo(this.title, 5, { opacity: 0, y: 50 }, { opacity: 1, y: 0 })
this.scene = new Scene({ triggerElement: this.title, triggerHook: 0.4 })
this.scene.indicatorName = 'Test'
this.scene.on('enter', () => this.scrollAnim.play())
if (process.env.NODE_ENV === 'development') {
this.scene.addIndicators({ name: this.scene.indicatorName })
}
this.scene.addTo(this.context.scrollmagic)
}
slides.each( (dat,i,n) => {
let wrappernode = n[i];
let stagenode = d3.select(wrappernode).select('.slide');
let stageheight = stagenode.node().offsetHeight;
// we carefully set the duration so that the scenes tile exactly, with
// no gaps or overlaps.
let duration = wrappernode.offsetHeight - stageheight;
if (i === n.length-1) {
duration += 500; // XXX hack
} else {
let nextstage = d3.select(n[i+1]).select('.slide').node();
duration += nextstage.offsetHeight;
}
let slide_scene = new ScrollMagic.Scene({
triggerElement: wrappernode,
triggerHook: isMobile() ? 'onEnter' : 'onLeave',
offset: isMobile() ? stageheight : 0,
duration: duration,
})
//.addIndicators({name: 'inner'+i})
.on('enter', (e) => {
let slug = dat.slug;
console.assert(slug, "No slug set for this stage");
let cb = dat.onEnter ?
() => dat.onEnter(this.comp, e.scrollDirection === 'FORWARD')
: () => null;
if (this.comp.slug != slug) {
vblog(`Quickchanging. Slide slug = ${slug}, current graphic slug = ${this.comp.slug}`);
this.comp.quickChange(slug).then(cb);
} else {
toggleElement = get(this, 'toggleElement'),
$toggleElement = $(toggleElement),
toggleClasses = get(this, 'toggleClasses'),
toggleClassesOff = get(this, 'toggleClassesOff');
// NOTE: ScrollMagic.Scene().setClassToggle is currently BROKEN!
//
// This will not work when multiple classes are added:
// return new ScrollMagic.Scene(opts).setClassToggle(toggleElementId, toggleClasses);
//
// The following issue is related:
// https://github.com/janpaepke/ScrollMagic/issues/313
//
// The workaround uses scene enter and leave events to achieve the same goal.
let scene = new ScrollMagic.Scene(opts);
scene.on(`enter.${this.elementId}-toggle`, () => {
$toggleElement.addClass(toggleClasses);
if (toggleClassesOff) {
$toggleElement.removeClass(toggleClassesOff);
}
});
scene.on(`leave.${this.elementId}-toggle`, function(){
$toggleElement.removeClass(toggleClasses);
if (toggleClassesOff) {
$toggleElement.addClass(toggleClassesOff);
}
});
return scene;
setScene() {
let viewportHeight = window.innerHeight;
// TODO: use setpin instead?
let outerscene = new ScrollMagic.Scene({
triggerElement: this.rootsel,
triggerHook: 'onLeave',
duration: Math.max(1, this.root.node().offsetHeight - viewportHeight),
})
.on('enter', () => this.toggleFixed(true, false))
.on('leave', e => this.toggleFixed(false, e.scrollDirection === 'FORWARD'))
//.addIndicators()
.addTo(this.controller);
let slides = this.prose.selectAll('.slide-wrapper');
slides.each( (dat,i,n) => {
let wrappernode = n[i];
let stagenode = d3.select(wrappernode).select('.slide');
let stageheight = stagenode.node().offsetHeight;
// we carefully set the duration so that the scenes tile exactly, with
// no gaps or overlaps.
setScene() {
let scene = new ScrollMagic.Scene({
triggerElement: this.rootsel,
triggerHook: 'onLeave',
offset: -200,
})
.on('enter', () => {
this.updateToDrop(0);
//console.log('enter the accordion');
})
.on('leave', () => {
this.updateToDrop(ndrops);
//console.log('leave the accordion');
})
.addTo(this.controller);
}
setupIntermediateScenes() {
for (let n=0; n <= STAGES.length-1; n++) {
let sel = '.stage' + n;
let kwargs;
if (isMobile()) {
let h = d3.select(sel).node().offsetHeight;
kwargs = {triggerHook: 'onEnter',
duration: window.innerHeight/2,
};
} else {
kwargs = {triggerHook: 'onCenter'};
}
kwargs.triggerElement = sel;
let scene = new ScrollMagic.Scene(kwargs);
scene.on('enter', () => {
this.chart.step(n);
d3.select(sel).classed('active', true);
})
.on('leave', () => {
if (!kwargs.duration) {
this.chart.step(Math.max(0, n-1));
}
d3.select(sel).classed('active', false);
});
scene.addTo(this.controller);
}
}
setupScene() {
let opts = get(this, 'mergedOptions'),
timeline = get(this, 'timeline');
return new ScrollMagic.Scene(opts).setTween(timeline)
},
);
var moveTextboxUp = TweenMax.fromTo(
'#file-form',
1,
{ top: 0 },
{ top: '60%', ease: Linear.easeNone }
);
var upTweens = new TimelineMax();
upTweens.add( [ fadeHeadingUp, moveTextboxUp ] );
var upSceneOffset = function() {
return $( '#landing-screen' ).height() / 5;
};
var up = new ScrollMagic.Scene( {
triggerElement: '#landing-screen',
triggerHook: 'onEnter',
offset: upSceneOffset(),
duration: '80%'
} )
.setTween( upTweens );
$( window ).resize( function() {
up.offset( upSceneOffset() );
} );
var moveTextboxDown = TweenMax.to(
'#file-form',
1,
{ top: '100%', marginTop: '-82px' }
);