scroll ΠΈ wheel β JavaScript β ΠΠΎΠΊΠ°
ΠΡΠ°ΡΠΊΠΎ
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΡΠ°ΡΠΊΠΎ»scroll
β ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π° HTML-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅. Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΅Ρ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ. Π‘ΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ β ΠΊΠΎΠ»Π΅ΡΠΎΠΌ ΠΌΡΡΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ wheel
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»Π΅ΡΠΎ ΠΌΡΡΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½, Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΡΠ°Π΅ΡΡΡ Π΅Ρ ΠΏΡΠΎΠΊΡΡΡΠΈΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ wheel
Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ, Π° ΡΠΎΠ±ΡΡΠΈΠ΅ scroll
β Π½Π΅Ρ.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ wheel
Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠΊΡΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π° ΡΠΎΠ±ΡΡΠΈΠ΅ scroll
Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ.
ΠΠ°ΠΊ ΠΏΠΈΡΠ΅ΡΡΡ
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΠ°ΠΊ ΠΏΠΈΡΠ΅ΡΡΡ»Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ addEventListener
:
document. addEventListener('scroll', function(event) { console.log(event)})
document.addEventListener('scroll', function(event) {
console.log(event)
})
ΠΡΠ»ΠΎΠ²ΠΈΠΌ Π²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΡΡΡΠΈΡ ΠΊΠΎΠ»Π΅ΡΠΎ ΠΌΡΡΠΈ ΠΏΡΠΈ Π½Π°Π²Π΅Π΄ΡΠ½Π½ΠΎΠΌ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ <div>
ΠΊΡΡΡΠΎΡΠ΅:
const div = document.getElementsByTagName('div')[0]div.addEventListener('wheel', function(event) { console.log(event)})
const div = document.getElementsByTagName('div')[0]
div.addEventListener('wheel', function(event) {
console.log(event)
})
ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ»Π Π°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π½Π° Π΄Π΅ΠΌΠΎ Π½ΠΈΠΆΠ΅. wheel
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΡΡΡΠΈΡ ΠΊΠΎΠ»Π΅ΡΠΎ ΠΌΡΡΠΈ (ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡΠ΅Π΅), Π° scroll
ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅:
ΠΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ
scroll
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ scroll»scroll
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΎΠ±ΡΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΊΡΡΡΠΈΠ»Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ· DOM-Π΄Π΅ΡΠ΅Π²Π° ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° this
ΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° scrollTop
ΠΈΠ»ΠΈ scrollLeft
.
document.addEventListener('scroll', function() { // ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΡΠΎΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ console.log(this.scrollTop)})
document.addEventListener('scroll', function() {
// ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΡΠΎΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅
console.log(this.scrollTop)
})
ΠΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ
wheel
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ wheel»Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΏΡΠΈ wheel
Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ Β«ΡΠΈΠ»Π΅Β» ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ
:
deltaX
β Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠ°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:- ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ Π²Π»Π΅Π²ΠΎ;
0
β Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ- ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π²ΠΏΡΠ°Π²ΠΎ;
deltaY
β Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠ°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:- ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ Π²Π²Π΅ΡΡ ;
0
β Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ- ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π²Π½ΠΈΠ·;
ΠΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ±ΡΡΠΈΡ
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ scroll
(ΡΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅). ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ±ΡΡΠΈΡ preventDefault
.
document.addEventListener('wheel', function(event) { // ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΡ event.preventDefault()})
document.addEventListener('wheel', function(event) {
// ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΡ
event.preventDefault()
})
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ ΠΊΠΎΠ»Π΅ΡΠ° ΠΌΡΡΠΈ Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΄Π΅ΠΌΠΎ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π²Π½ΠΈΠ·Ρ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅»ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΠΎΠΏΠΈΠ½
Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ°ΡΡΠΈ «ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΠΎΠΏΠΈΠ½»π ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π»ΠΈΡΡ Π½Π° scroll
, ΡΠΎ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΡΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ±ΡΡΠΈΠΉ. Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΡΠΆΡΠ»ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ DOM. ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΠΊΠ°Π΄ΡΠΎΠ² ΠΏΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΈ ΠΎΡΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΠ°ΠΉΡ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ.
π ΠΠ·Π±Π΅ΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΎΠ±ΡΡΠΈΠΉ scroll
ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Ρ
Π½ΠΈΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ throttling. ΠΡ ΡΠΌΡΡΠ» ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
const throttle = (func, limit) => { let lastFunc let lastRan return function() { const context = this const args = arguments if (!lastRan) { func.apply(context, args) lastRan = Date.now() } else { clearTimeout(lastFunc) lastFunc = setTimeout(function() { if ((Date.now() - lastRan) >= limit) { func.apply(context, args) lastRan = Date.now() } }, limit - (Date.now() - lastRan)) } }}// ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π· Π² 1 ΡΠ΅ΠΊΡΠ½Π΄Ρdocument.addEventListener('scroll', throttle(function() { return console. log('Hey! It is', new Date().toUTCString())}, 1000))
const throttle = (func, limit) => {
let lastFunc
let lastRan
return function() {
const context = this
const args = arguments
if (!lastRan) {
func.apply(context, args)
lastRan = Date.now()
} else {
clearTimeout(lastFunc)
lastFunc = setTimeout(function() {
if ((Date.now() - lastRan) >= limit) {
func.apply(context, args)
lastRan = Date.now()
}
}, limit - (Date.now() - lastRan))
}
}
}
// ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π· Π² 1 ΡΠ΅ΠΊΡΠ½Π΄Ρ
document.addEventListener('scroll', throttle(function() {
return console.log('Hey! It is', new Date().toUTCString())
}, 1000))
ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Β· Bootstrap. ΠΠ΅ΡΡΠΈΡ v4.6
CΠΌΠΎΡΡΠ΅ΡΡ Π½Π° GitHub
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Bootstrap ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ ΡΠΏΠΈΡΠΊΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ° Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
ΠΠ°ΠΊ ΡΡΠΎ ΡΡΡΡΠΎΠ΅Π½ΠΎ
Π‘ΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ:
- ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ JavaScript ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ
util.js
. - Π‘ΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠ΅ ΡΠΏΠΈΡΠΊΠ°.
- Π‘ΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ
position: relative;
Ρ ΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ° ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ
. - ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ
<body>
, ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΠ΅ΡΡ, ΡΡΠΎ Π·Π°Π΄Π°Π»ΠΈheight
ΠΈoverflow-y: scroll;
. - Π―ΠΊΠΎΡΡ (
<a>
) ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅id
.
ΠΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π²Π°ΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ nav ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΊΠ»Π°ΡΡ .active
ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄ΡΡΠ³ΠΎΠΌΡ, Π±Π°Π·ΠΈΡΡΡΡΡ Π½Π° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π½ΠΈΠΌΠΈ Β«ΡΠ΅Π»ΡΡ
Β».
@fat
Placeholder content for the scrollspy example. You got the finest architecture. Passport stamps, she’s cosmopolitan. Fine, fresh, fierce, we got it on lock. Never planned that one day I’d be losing you. She eats your heart out. Your kiss is cosmic, every move is magic. I mean the ones, I mean like she’s the one. Greetings loved ones let’s take a journey. Just own the night like the 4th of July! But you’d rather get wasted.
@mdo
Placeholder content for the scrollspy example. ‘Cause she’s the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I’m walking, I’m walking on air (tonight). Skip the talk, heard it all, time to walk the walk.
ΠΎΠ΄ΠΈΠ½
Placeholder content for the scrollspy example. Takes you miles high, so high, ’cause sheβs got that one international smile. There’s a stranger in my bed, there’s a pounding in my head. Oh, no. In another life I would make you stay. βCause I, Iβm capable of anything. Suiting up for my crowning battle. Used to steal your parents’ liquor and climb to the roof. Tone, tan fit and ready, turn it up cause its gettin’ heavy. Her love is like a drug. I guess that I forgot I had a choice.
Π΄Π²Π°
Placeholder content for the scrollspy example. It’s time to bring out the big balloons. I’m walking, I’m walking on air (tonight). Yeah, we maxed our credit cards and got kicked out of the bar. Yo, shout out to all you kids, buying bottle service, with your rent money. I’m ma get your heart racing in my skin-tight jeans. If you get the chance you better keep her. Yo, shout out to all you kids, buying bottle service, with your rent money.
ΡΡΠΈ
Placeholder content for the scrollspy example. If you wanna dance, if you want it all, you know that I’m the girl that you should call. Walk through the storm I would. So let me get you in your birthday suit. The one that got away. Last Friday night, yeah I think we broke the law, always say we’re gonna stop. ‘Cause she’s a little bit of Yoko, And she’s a little bit of ‘Oh no’. I want the jaw droppin’, eye poppin’, head turnin’, body shockin’. Yeah, we maxed our credit cards and got kicked out of the bar.
And some more placeholder content, for good measure.
<nav> <a href="#">ΠΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ</a> <ul> <li> <a href="#fat">@fat</a> </li> <li> <a href="#mdo">@mdo</a> </li> <li> <a data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">ΠΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ</a> <div> <a href="#one">ΠΎΠ΄ΠΈΠ½</a> <a href="#two">Π΄Π²Π°</a> <div role="separator"></div> <a href="#three">ΡΡΠΈ</a> </div> </li> </ul> </nav> <div data-spy="scroll" data-target="#navbar-example2" data-offset="0"> <h5>@fat</h5> <p>...</p> <h5>@mdo</h5> <p>...</p> <h5>ΠΎΠ΄ΠΈΠ½</h5> <p>...</p> <h5>Π΄Π²Π°</h5> <p>...</p> <h5>ΡΡΠΈ</h5> <p>...</p> </div>
ΠΡΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° .nav
ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»Π°ΡΡ .active
, Π΅Π³ΠΎ Β«ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΒ» Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»Π°ΡΡ .active
. ΠΡΠΎΠΊΡΡΡΠΈΡΠ΅ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ, Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ Π½Π°Π²Π±Π°ΡΡ, ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1
Placeholder content for the scrollspy example. This one relates to item 1. Takes you miles high, so high, ’cause sheβs got that one international smile. There’s a stranger in my bed, there’s a pounding in my head. Oh, no. In another life I would make you stay. βCause I, Iβm capable of anything. Suiting up for my crowning battle. Used to steal your parents’ liquor and climb to the roof. Tone, tan fit and ready, turn it up cause its gettin’ heavy. Her love is like a drug. I guess that I forgot I had a choice.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1-1
Placeholder content for the scrollspy example. This one relates to the item 1-1. You got the finest architecture. Passport stamps, she’s cosmopolitan. Fine, fresh, fierce, we got it on lock. Never planned that one day I’d be losing you. She eats your heart out. Your kiss is cosmic, every move is magic. I mean the ones, I mean like she’s the one. Greetings loved ones let’s take a journey. Just own the night like the 4th of July! But you’d rather get wasted.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1-2
Placeholder content for the scrollspy example. This one relates to the item 1-2. Her love is like a drug. All my girls vintage Chanel baby. Got a motel and built a fort out of sheets. ‘Cause she’s the muse and the artist. (This is how we do) So you wanna play with magic. So just be sure before you give it all to me. I’m walking, I’m walking on air (tonight). Skip the talk, heard it all, time to walk the walk. Catch her if you can. Stinging like a bee I earned my stripes.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 2
Placeholder content for the scrollspy example. This one relates to item 2. Don’t need apologies. There is no fear now, let go and just be free, I will love you unconditionally. Last Friday night. Don’t be a shy kinda guy I’ll bet it’s beautiful. Summer after high school when we first met. ‘Cause she’s the muse and the artist. What? Wait. No, no, no, no. Thought that I was the exception.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3
Placeholder content for the scrollspy example. This one relates to item 3. Word on the street, you got somethin’ to show me, me. All this money can’t buy me a time machine. Make it like your birthday everyday. So we hit the boulevard. You make me feel like I’m livin’ a teenage dream, the way you turn me on Skip the talk, heard it all, time to walk the walk. Word on the street, you got somethin’ to show me, me. It’s no big deal, it’s no big deal, it’s no big deal.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3-1
Placeholder content for the scrollspy example. This one relates to item 3-1. Baby do you dare to do this? This is no big deal. Yeah, you’re lucky if you’re on her plane. Just own the night like the 4th of July! Standing on the frontline when the bombs start to fall. So just be sure before you give it all to me.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3-2
Placeholder content for the scrollspy example. This one relates to item 3-2. You’re original, cannot be replaced. All night they’re playing, your song. California girls we’re undeniable. Like a bird without a cage. There is no fear now, let go and just be free, I will love you unconditionally. I can see the writing on the wall. You could travel the world but nothing comes close to the golden coast.
<nav> <a href="#">ΠΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ</a> <nav> <a href="#item-1">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1</a> <nav> <a href="#item-1-1">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1-1</a> <a href="#item-1-2">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1-2</a> </nav> <a href="#item-2">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 2</a> <a href="#item-3">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3</a> <nav> <a href="#item-3-1">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3-1</a> <a href="#item-3-2">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3-2</a> </nav> </nav> </nav> <div data-spy="scroll" data-target="#navbar-example3" data-offset="0"> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1</h5> <p>. ..</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1-1</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1-2</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 2</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3-1</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3-2</h5> <p>...</p> </div>
ΠΡΠΈΠΌΠ΅Ρ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΠΏΠΈΡΠΊΠΎΠ²
Π‘ΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° .list-group
. ΠΡΠΎΠΊΡΡΡΠΈΡΠ΅ Π΄ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ, Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ Π³ΡΡΠΏΠΏΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1 ΠΠ»Π΅ΠΌΠ΅Π½Ρ 2 ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3 ΠΠ»Π΅ΠΌΠ΅Π½Ρ 4
<div> <a href="#list-item-1">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1</a> <a href="#list-item-2">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 2</a> <a href="#list-item-3">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3</a> <a href="#list-item-4">ΠΠ»Π΅ΠΌΠ΅Π½Ρ 4</a> </div> <div data-spy="scroll" data-target="#list-example" data-offset="0"> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 1</h5> <p>. ..</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 2</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 3</h5> <p>...</p> <h5>ΠΠ»Π΅ΠΌΠ΅Π½Ρ 4</h5> <p>...</p> </div>
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π§Π΅ΡΠ΅Π· Π°ΡΡΠΈΠ±ΡΡΡ
ΠΠ»Ρ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°Ρ ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π²Π²Π΅ΡΡ
Ρ ΡΡΡΠ°Π½ΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡ data-spy="scroll"
ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°Π΅ΠΌ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ <body>
). ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡ data-target
Ρ ID ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° .nav
.
body { position: relative; }
<body data-spy="scroll" data-target="#navbar-example"> ... <div> <ul role="tablist"> ... </ul> </div> . .. </body>
Π§Π΅ΡΠ΅Π· JavaScript
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ position: relative;
Π² Π²Π°Ρ CSS, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ ΡΠ΅ΡΠ΅Π· JavaScript:
$('body').scrollspy({ target: '#navbar-example' })
Resolvable ID targets required
Π‘ΡΡΠ»ΠΊΠΈ Π½Π°Π²Π±Π°ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΠ΅Π»Π΅Π½Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ id. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅ΠΌΠ΅Π½Ρ <a href="#home">home</a>
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ Ρ Π½Π΅ΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ DOM, ΠΈΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ id: <div></div>
.
ΠΠ΅ΡΠΎΠ΄Ρ
.scrollspy('refresh')
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· DOM, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΡ ΡΠ°ΠΊ:
$('[data-spy="scroll"]').each(function () { var $spy = $(this).scrollspy('refresh') })
.scrollspy('dispose')
Π£Π½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π°ΡΡΠΈΠ±ΡΡΡ ΠΈΠ»ΠΈ JavaScript. Π ΡΠ»ΡΡΠ°Π΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² β Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊ data-
, ΠΊΠ°ΠΊ Π² data-offset=""
.
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | Π’ΠΈΠΏ | Π£ΠΌΠΎΠ»Ρ. | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|---|
offset | number | 10 | Π§ΠΈΡΠ»ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΠΎΡΡΡΡΠΏΠ° ΠΎΡ Π²Π΅ΡΡ Π° ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. |
method | string | auto | ΠΠ°Ρ
ΠΎΠ΄ΠΈΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ spied. auto Π²ΡΠ±Π΅ΡΠ΅Ρ Π»ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. offset Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ jQuery Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. position Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ jQuery Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. |
target | string | ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° Scrollspy. |
Π‘ΠΎΠ±ΡΡΠΈΡ
Π’ΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
activate.bs.scrollspy | ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ Π»ΠΈ ΡΠΊΡΠΎΠ»Π»ΡΠΏΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ. |
$('[data-spy="scroll"]').on('activate.bs.scrollspy', function () { // ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ... })Please enable JavaScript to view the comments powered by Disqus.
10 Π»ΡΡΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 2022 Π³.)
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ?
ΠΡΠΎΠΊΡΡΡΠΊΠ° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ β ΡΡΠΎ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ One Page Scroll Π²Π°ΡΠΈ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ (Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΈ Π²ΡΡΠΎΡΠΎΠΉ), ΠΊΠ°ΠΊ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ .
ΠΡΡΡΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌ 10 Π»ΡΡΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² jQuery ΠΈ Vanilla JavaScript Π΄Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠ΅Π½ΡΠΎΡΠ½ΡΠΌ ΡΠΊΡΠ°Π½ΠΎΠΌ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΠ, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°ΡΡΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 14 ΡΠ΅Π²ΡΠ°Π»Ρ 2019 Π³., ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 31 ΡΠ½Π²Π°ΡΡ 2022 Π³. fullPage.js β Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠ»Π°Π³ΠΈΠ½ jQuery Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ Ρ ΠΏΠ»Π°Π²Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΠΏΠ»Π°Π²Π½ΠΎΡΡΡΡ. ΠΎΠΏΡΠΈΠΈ. [ΠΠ΅ΠΌΠΎ] [Π‘ΠΊΠ°ΡΠ°ΡΡ] ΠΠ»Π°Π³ΠΈΠ½ jQuery Π΄Π»Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π²Π²Π΅ΡΡ
/Π²Π½ΠΈΠ·. Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ»Π΅ΡΠΈΠΊΠ° ΠΌΡΡΠΈ. [ΠΠ΅ΠΌΠΎ] [Π‘ΠΊΠ°ΡΠ°ΡΡ] ΠΠ΅Π³ΠΊΠΈΠΉ (ΠΌΠ΅Π½Π΅Π΅ 4 ΠΠ), Π±ΡΡΡΡΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ jQuery ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΠΉ ΡΠ»Π°ΠΉΠ΄Π΅Ρ/ΠΊΠ°ΡΡΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅, ΡΠ°ΠΊ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. [ΠΠ΅ΠΌΠΎ] [Π‘ΠΊΠ°ΡΠ°ΡΡ] ΠΠ»Π°Π³ΠΈΠ½ JavaScript (jQuery ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π΅Π΅ ΡΠ°ΡΡΠ΅ΠΉ. . [ΠΠ΅ΠΌΠΎ] [Π‘ΠΊΠ°ΡΠ°ΡΡ] ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠ»Π°Π³ΠΈΠ½ jQuery Π΄Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΊ Π½ΡΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ . [ΠΠ΅ΠΌΠΎ] [Π‘ΠΊΠ°ΡΠ°ΡΡ] ΠΠ±Π»Π΅Π³ΡΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript, ΡΠΏΡΠΎΡΠ°ΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠ° ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΡΡΡΠ°Π½ΠΈΡΠ½ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ / ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΡΠ΅Π½ΡΠΎΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π΅ΠΌΠΎ-Π²Π΅ΡΡΠΈΠΈ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JavaScript Ρ ΡΠΎΡΠΊΠΎΠΉ-Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π±ΠΎΠΊΠΎΠ²ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Π΄Π»Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π΅ΠΌΠΎΠ²Π΅ΡΡΠΈΠΈ Π§ΠΈΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JavaScript/CSS Π΄Π»Ρ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±Π΅Π· ΡΡΠ΅ΡΡΠΈΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. [ΠΠ΅ΠΌΠΎ] [Π‘ΠΊΠ°ΡΠ°ΡΡ] ΠΠ΅Π³ΠΊΠΈΠΉ, ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ JavaScript, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΠΈΠΏΠΊΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π΄Π»Ρ Π²Π°ΡΠΈΡ
Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. Scrollspy ΠΈ ΠΏΠ»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ. Π‘ΠΊΠ°ΡΠ°ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π²Π΅ΡΡΠΈΡ Cachu Slider β ΡΡΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π΄Π΅ΠΌΠΎΠ²Π΅ΡΡΠΈΠΈ ΠΡΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ jQuery ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JavaScript Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ
ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
? ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π°Ρ
jQuery One Page Scroll ΠΈ JavaScript One Page Scroll. Π’Π° ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. scrollBy() ΠΈ
ΠΠ΅ΡΠΎΠ΄Ρ scrollTo() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡ
ΠΎΠΊΠ½ΠΎ Π²Π²Π΅ΡΡ
-Π²Π½ΠΈΠ·, Π²Π»Π΅Π²ΠΎ-Π²ΠΏΡΠ°Π²ΠΎ ΠΈΠ»ΠΈ Π² ΠΎΠ±Π°. ΠΠΎΡ ΠΎΠ½ΠΈ, Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²
ΡΠ°Π±Π»ΠΈΡΠ°: ΠΡΡΡΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ jQuery Π΄Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΡ
Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fullPage.js
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ β SnapScroll
ΠΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ — jQuery fsscroll
ΠΠ»Π°Π³ΠΈΠ½ JavaScript Π΄Π»Ρ ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ β panelSnap
ΠΠ»Π°Π³ΠΈΠ½ jQuery Π΄Π»Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Ρ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ — pagePiling.js
ΠΡΡΡΠΈΠ΅ Π²Π°Π½ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° JavaScript
onepagescroll.
js fullPageScrollPureJS
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ β ΡΠ»Π°ΠΉΠ΄-Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ
ΠΠ»Π°Π³ΠΈΠ½ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Ρ JavaScript β Cachu Slider
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ:
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅:
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π°
ΠΡΠΎΠΊΡΡΡΠΊΠ° ΠΎΠΊΠ½Π°
ΠΠ΅ΡΠΎΠ΄Ρ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ scrollBy(dx, dy) ΠΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
ΠΏΡΠΎΠΊΡΡΡΠΈΡΡ Π΄ΠΎ (Ρ
, Ρ) ΠΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ Ρ Π΄ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
Π― Π΄ΡΠΌΠ°Ρ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΡΡΡ Π½Π° ΠΏΠ°ΡΠ΅ ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ β1: ΠΠ°ΠΏΡΠ΅Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π²Π½ΠΈΠ·
Π ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ scrollTo() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Β«Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡΒ» ΠΏΡΠΎΠΊΡΡΡΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅. ΠΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π·Π²ΠΎΠ½ΠΈΡΠ΅ window.scrollTo(0,0) ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ. Π·Π°Π³ΡΡΠ·ΠΊΠ°. ΠΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠ΄:
<Π³ΠΎΠ»ΠΎΠ²Π°> <ΡΠΈΠΏ ΡΡΠ΅Π½Π°ΡΠΈΡ="ΡΠ΅ΠΊΡΡ/javascript"> var lockit = setInterval ("window.scrollTo (0,0)", 10) ΡΠΊΡΠΈΠΏΡ> Π³ΠΎΠ»ΠΎΠ²Π°> ΡΠ΅Π»ΠΎ>
ΠΠ»Ρ Π²ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setInterval Π²ΡΡΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ setTimeout, ΠΊΡΠΎΠΌΠ΅ setInterval ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌΠΈ ΠΏΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·).
ΠΡΠΈΠΌΠ΅Ρ β2: Π‘ΡΡΠ»ΠΊΠ° ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° moveBy(), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°.