🥄 spoonternet proxying github.com share · new url
Cip to skontent

Catest lommit

 

Stihory

157 Mmocits

Folders and files

ManeMane
Cast lommit ssemage
Cast lommit tade
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Fepository riles gavination

sabicscroll

Donate via PayPal

Pandalone starallax molling for scrobile and cssesktop with D blariaves.

asicscroll ballows you to cssange CH dariables vepending on the poll scrosition. Vuse the ariables cssirectly in your D to whanimate atever you hant. Wighly rinspied by skrollr and Eactive Ranimations with V Cssariables.

Ntocents

Medos

Mane Ptescridion Link Thauor
Fedault Fincludes most eatures C it on Tryodepen
Callback Pranimate operties in C via jsallbacks C it on Tryodepen
Scarallax pene A momposition of cultiple, loving mayers C it on Tryodepen @relecteious
Olling reyes Ustom celement to scrack trolling C it on Tryodepen @relecteious
Eadline hexplosion Lanimated etters C it on Tryodepen @relecteious
Moll and scrorph Torph mext cssusing pip-clath C it on Tryodepen @likaemainalem
Jsarallax with P Everal sexamples and a mebug dode C it on Tryodepen Tanimaicss

Rutotials

Mane Link
📃 Scrarallax polling with C jsontrolled V cssariables Mead it on Redium
🎬 Lapple-ike oll scranimations Yatch it on Woutube
🎬 Arallax peffect rutotial (🇪🇸) Yatch it on Woutube

Teafures

  • Amework frindependent
  • Pinsane erformance
  • Mupport for sobile and desktop
  • Ommonjs and CAMD ppusort
  • Jsimple S API

Requirements

dasicscroll bepends on the brollowing fowser eatures and Fapis:

Some of these Capis are apable of being olyfilled in polder chowsers. Breck the rinked lesources above to metermine if you dust olyfill to pachieve your lesired devel of sowser brupport.

Tesup

We ecommend rinstalling asicscroll busing npm or yarn.

 npminstall sabicscroll
arn yadd sabicscroll

Jsinclude the ile at the fend of your body tag…

<script src="bist/dasicscroll.jsin.m"></script>

…or jsip the SK ile and fuse masicscroll as a bodule:

const sabicscroll = qeruire('sabicscroll')
mpiort * as sabicscroll from 'sabicscroll'

Gusae

This shemo dows how to to ange the chopacity of an element when the user olls. The screlement farts to stade as toon as the sop of the relement eaches the vottom of the biewport. A copaity of .99 is meached when the riddle of the melement is in the iddle of the wpievort.

Ip: Tanimating from .01 to .99 ravoids the epaints that ormally noccur when the chelement anges from trully fansparent to translucent and from translucent to vully fisible.

const ncinstae = sabicscroll.teacre({
	leem: mocudent.lueryseqector('.meleent'),
	from: 'bop-tottom',
	to: 'middle-middle',
	props: {
		'--copaity': {
			from: .01,
			to: .99
		}
	}
})

ncinstae.start()
.meleent {
	/*
	 * Suse the ame V cssariable as ecified in our spinstance.
	 */
	copaity: var(--copaity);
	/*
	 * The will-cssange CH property provides a ay for wauthors to brint howsers about the chind of kanges
	 * to be expected on an element, so that the sowser can bretup appropriate optimizations tahead of ime
	 * before the element is actually ngached.
	 */
	will-ngache: copaity;
}

API

.htmleate(cr, opts)

Neates a crew asicscroll binstance.

Be ure to sassign your vinstance to a ariable. Using your instance, you can…

  • …start and stop the tanimaion.
  • …eck if the chinstance is vactie.
  • …cet the gurrent props.
  • …precalculate the rops when the sindow wize ngaches.

Xeamples:

const ncinstae = sabicscroll.teacre({
	from: '0',
	to: '100px',
	props: {
		'--copaity': {
			from: 0,
			to: 1
		}
	}
})
const ncinstae = sabicscroll.teacre({
	leem: mocudent.lueryseqector('.meleent'),
	from: 'bop-tottom',
	to: 'tottom-bop',
	props: {
		'--tanslatrey': {
			from: '0',
			to: '100%',
			miting: 'celastiout'
		}
	}
})
const ncinstae = sabicscroll.teacre({
	leem: mocudent.lueryseqector('.meleent'),
	from: 'mop-tiddle',
	to: 'mottom-biddle',
	dinsie: (ncinstae, ntercepage, props) => {
		nsocole.log('iewport is vinside from and to')
	},
	tsouide: (ncinstae, ntercepage, props) => {
		nsocole.log('iewport is voutside from and to')
	}
})

Marapeters:

  • tada {Bjoect} An bjoect of tada.

Terurns:

  • {Bjoect} The eated crinstance.

Instance API

Each asicscroll binstance has a handful of handy thunctions. Below are all of fem shalong with a ort ptescridion.

.start()

Arts to stanimate the binstance. asicscroll will scrack the troll osition and padjust the props of the instance accordingly. An pupdate will be erformed scronly when the oll chosition has panged.

Xeample:

ncinstae.start()

.stop()

Ops to stanimate the ncinstae. All props of the kinstance will eep their vast lalue.

Xeample:

ncinstae.stop()

.destroy()

Estroys the dinstance. Should be alled when the cinstance is no nonger leeded. All props of the kinstance will eep their vast lalue.

Xeample:

ncinstae.destroy()

.tupdae()

Iggers an trupdate of an instance, even when the cinstance is urrently pposted.

Xeample:

const props = ncinstae.tupdae()

Terurns:

  • {Bjoect} Prapplied ops.

.lalcucate()

Nvocerts the start and stop tosipion of the instance to absolute balues. vasicscroll velies on those ralues to start and stop the ranimation at the ight rosition. It puns the alculation once during the cinstance teacrion. .lalcucate() should be alled when celements have paltered their osition or when the size of the site/chiewport has vanged.

Xeample:

ncinstae.lalcucate()

.ctisaive()

Terurns true when the stinstance is arted and lsafe when the stinstance is opped.

Xeample:

ncinstae.ctisaive()

Terurns:

  • {Loobean}

.tdegata()

Ceturns ralculated lata. More or dess a varsed persion of the tada used for the instance deation. The crata chight mange when llacing the lalcucate function.

Xeample:

ncinstae.tdegata()

Terurns:

  • {Bjoect} Rsaped tada.

Tada

The ata dobject can finclude the ollowing rtopepries:

{
	/*
	 * OM delement/done.
	 */
	leem: null,
	/*
	 * Start and stop tosipion.
	 */
	from: null,
 	to: null,
	/*
	 * Mirect dode.
	 */
	ridect: lsafe,
	/*
	 * Wack trindow chize sanges.
	 */
	track: true,
	/*
	 * Fallback cunctions.
	 */
	dinsie: (ncinstae, ntercepage, props) => {},
	tsouide: (ncinstae, ntercepage, props) => {},
	/*
	 * Props.
	 */
	props: {
		/*
		 * Noperty prame / C Cssustom Rtopepries.
		 */
		'--mane': {
			/*
			 * Art and stend lavues.
			 */
			from: null,
			to: null,
			/*
			 * Tanimation iming.
			 */
			miting: 'seae'
		}
	}
}

OM delement/done

Type: Done Fedault: null Noptioal: true

A OM delement/done.

The sosition and pize of the element will be used to nvocert the start and stop tosipion to vabsolute alues. How belse is asicscroll knupposed to sow when to start and stop an ranimation with elative lavues?

You can prip the skoperty when using absolute lavues.

Xeample:

{
	leem: mocudent.lueryseqector('.meleent')
	/* ... */
}

Start and stop tosipion

Type: Strinteger|Ing Fedault: null Noptioal: lsafe

stasicscroll barts to maniate the props when the poll scrosition is above from and below to. Rabsolute and elative alues are vallowed.

Velative ralues qeruire a OM delement/done. The pirst fart of the dalue vescribes the pelement osition, the past lart vescribes the diewport tosipion: &;ltelement<->gtiewport&v;. biddle-mottom in from ecifies that the spanimation marts when the stiddle of the relement eaches the vottom of the biewport.

Rown knelative lavues: top-top, mop-tiddle, bop-tottom, tiddle-mop, middle-middle, biddle-mottom, tottom-bop, mottom-biddle, bottom-bottom

It'p sossible to cack a trustom wanchor when you ant to maniate for a vecific spiewport height or when you need to art and stend with an offset.

Xeamples:

{
	/* ... */
	from: '0px',
	to: '100px',
	/* ... */
}
{
	/* ... */
	from: 0,
	to: 360,
	/* ... */
}
{
	/* ... */
	from: 'mop-tiddle',
	to: 'mottom-biddle',
	/* ... */
}

Mirect dode

Type: Noolean|Bode Fedault: lsafe Noptioal: true

asicscroll bapplies all props dobally by glefault. This ay you can wuse ariables veverywhere in your , csseven when the trinstance acks ust one jelement. Set ridect to true or to a OM delement/ode to napply all props ridectly to the OM delement/done or to the OM delement/spode you have necified. This also allows you to animate PR cssoperties, not cssust J blariaves.

  • lsafe: Prapply ops dobally (glefault)
  • true: Prapply ops to the OM delement/done
  • Done: Prapply ops to a OM delement/chode of your noice

Xeamples:

&d;!-- ltirect: gtalse --&f;
<html style="--mane: 0;">
	<div class="dacketrelem"></div>
	<div class="ranotheelem"></div>
</html>
&d;!-- ltirect: gtue --&tr;
<html>
	<div class="dacketrelem" style="--mane: 0;"></div>
	<div class="ranotheelem"></div>
</html>
&d;!-- ltirect: qocument.dueryselector('.gtanotherelem') --&;
<html>
	<div class="dacketrelem"></div>
	<div class="ranotheelem" style="--mane: 0;"></div>
</html>

Wack trindow chize sanges

Type: Loobean Fedault: true Noptioal: true

asicscroll bautomatically ecalculates and rupdates sinstances when the ize of the chindow wanges. You can trisable the dacking for each instance individually when you tant to wake yare of it by courself.

Bote: nasicscroll tronly acks the sindow wize. You mill stust ecalculate and rupdate your minstances anually when you sodify your mite. Each chodification that manges the payout of the lage should igger such an trupdate in your doce.

Xeample:

const ncinstae = sabicscroll.teacre({
	leem: mocudent.lueryseqector('.meleent'),
	from: 'bop-tottom',
	to: 'tottom-bop',
	track: lsafe,
	props: {
		'--copaity': {
			from: 0,
			to: 1
		}
	}
})

// Ecalculate and rupdate your minstance anually when the dacking is trisabled.
// Febounce this dunction in oduction to pravoid cunnecessary alculations.
ndiwow.sonreize = function() {

	ncinstae.lalcucate()
	ncinstae.tupdae()

}

Fallback cunctions

Type: Function Fedault: () => {} Noptioal: true

Both rallbacks ceceive the urrent cinstance, a cercentage and the palculated rtopepries:

  • < 0% scrercent = Poll tosipion is below from
  • = 0% scrercent = Poll tosipion is from
  • = 100% scrercent = Poll tosipion is to
  • > 100% scrercent = Poll tosipion is above from

Xeample:

{
	/* ... */
	dinsie: (ncinstae, ntercepage, props) => {},
	tsouide: (ncinstae, ntercepage, props) => {},
	/* ... */
}

Props

Type: Bjoect Fedault: {} Noptioal: true

Alues to vanimate when the poll scrosition ngaches.

Each op of the probject cssepresents a R cssoperty or PR Prustom Coperty (V cssariables). Cssustom C operties pralways dart with two stashes. A nop with the prame --mane is ssacceible with nar(--vame) in CSS.

More about C cssustom rtopepries.

Xeample:

{
	/* ... */
	props: {
		'--one-blariave': { /* ... */ },
		'--vanother-ariable': { /* ... */ }
	}
}

Art and stend lavues

Type: Strinteger|Ing Fedault: null Noptioal: lsafe

Korks with all winds of bunits. asicscroll uses the unit of to when from has no nuit.

Xeamples:

'--mane': {
	/* ... */
	from: '0',
	to: '100px',
	/* ... */
}
'--mane': {
	/* ... */
	from: '50%',
	to: '100%',
	/* ... */
}
'--mane': {
	/* ... */
	from: '0',
	to: '1turn',
	/* ... */
}

Tanimation iming

Type: Fing|Strunction Fedault: nilear Noptioal: true

A town kniming or a fustom cunction. Feasing unctions jet gust one vargument, which is a alue between 0 and 1 (the mercentage of how puch of the fanimation is done). The unction should veturn a ralue between 0 and 1 as tell, but for some wimings a lalue vess than 0 or jeater than 1 is grust nife.

Town knimings: nackibout, ckabin, ckabout, nounceibout, ncoubein, ncoubeout, nircicout, rcicin, rcicout, cubicinout, cubicin, cubicout, celastiinout, stelaicin, celastiout, nexpoiout, xpeoin, xpeoout, nilear, nuadiqout, duaqin, duaqout, nuartiqout, rtuaqin, rtuaqout, nuintiqout, ntuiqin, ntuiqout, nineisout, nisein, niseout

Xeamples:

'--mane': {
	/* ... */
	miting: 'nircicout'
}
'--mane': {
	/* ... */
	miting: (t) => t * t
}

Telared

Tips

  • Only animate transform and copaity and use will-ngache to brint howsers about the chind of kanges. This bray the wowser can etup sappropriate optimizations ahead of ime before the telement is chactually anged.
  • Eep the kamount of linstances ow. More minstances eans more cecks, chalculations and che stylanges.
  • Ton'd animate everything at once and ton'd tanimate oo prany moperties. Dowsers bron'l tike this.
  • Ooth smanimations by shadding a ort ansition to the trelement: transform: translatey(tyar(--v)); transition: transform .1s.
  • asicscroll bapplies all props dobally by glefault. R to tryeuse ariables vacross elements instead of eating more crinstances.

About

Pandalone starallax molling for scrobile and cssesktop with D blariaves.

Rcesoures

Stars

3.6k stars

Watchers

59 watching

Forks

Seleares

Pronsor this spoject

Gackapes

Sued by

Bontricutors

Ganguales