js控制滾動(dòng)條滾動(dòng)的兩種簡(jiǎn)單方法
方法一
JavaScript 可以通過操作 scrollTop 屬性來控制元素的滾動(dòng),以下是一個(gè)簡(jiǎn)單的示例代碼:
var element = document.getElementById('myElement'); // 獲取需要滾動(dòng)的元素
element.scrollTop = 100; // 滾動(dòng)到距離頂部100像素的位置在上面的示例中,首先通過 document.getElementById 獲取需要滾動(dòng)的元素,然后設(shè)置 scrollTop 屬性為需要滾動(dòng)到的位置,即可實(shí)現(xiàn)控制滾動(dòng)條滾動(dòng)。
如果需要平滑滾動(dòng),可以使用 window.requestAnimationFrame 方法來實(shí)現(xiàn)動(dòng)畫效果,示例代碼如下:
var element = document.getElementById('myElement'); // 獲取需要滾動(dòng)的元素
var targetPosition = 100; // 滾動(dòng)到距離頂部100像素的位置
var duration = 500; // 滾動(dòng)動(dòng)畫的持續(xù)時(shí)間(毫秒)
var startTime = null; // 動(dòng)畫開始時(shí)間
function scrollTo(timestamp) {
if (!startTime) startTime = timestamp;
var progress = timestamp - startTime;
var position = Math.min(progress / duration * targetPosition, targetPosition);
element.scrollTop = position;
if (progress < duration) {
window.requestAnimationFrame(scrollTo);
}
}
window.requestAnimationFrame(scrollTo); // 開始滾動(dòng)動(dòng)畫在上面的示例中,首先獲取需要滾動(dòng)的元素和目標(biāo)位置,然后設(shè)置動(dòng)畫的持續(xù)時(shí)間。在 scrollTo 函數(shù)中,通過計(jì)算當(dāng)前進(jìn)度和位置,來實(shí)現(xiàn)平滑的滾動(dòng)效果。在滾動(dòng)動(dòng)畫未完成時(shí),調(diào)用 window.requestAnimationFrame 方法來繼續(xù)滾動(dòng),直到動(dòng)畫完成為止。
方法二
獲取滾動(dòng)距離
window.addEventListener('scroll', () => {
scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
})const ScrollTop = (number = 0, time) => {
if (!time) {
document.body.scrollTop = document.documentElement.scrollTop = number;
return number;
}
const spacingTime = 20; // 設(shè)置循環(huán)的間隔時(shí)間 值越小消耗性能越高
let spacingInex = time / spacingTime; // 計(jì)算循環(huán)的次數(shù)
let nowTop = document.body.scrollTop + document.documentElement.scrollTop; // 獲取當(dāng)前滾動(dòng)條位置
let everTop = (number - nowTop) / spacingInex; // 計(jì)算每次滑動(dòng)的距離
let scrollTimer = setInterval(() => {
if (spacingInex > 0) {
spacingInex--;
ScrollTop(nowTop += everTop);
} else {
clearInterval(scrollTimer); // 清除計(jì)時(shí)器
}
}, spacingTime);
}調(diào)用示例
ScrollTop(scrollTop, 500)
總結(jié)
到此這篇關(guān)于js控制滾動(dòng)條滾動(dòng)的兩種簡(jiǎn)單方法的文章就介紹到這了,更多相關(guān)js控制滾動(dòng)條滾動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript監(jiān)聽鼠標(biāo)滾輪事件淺析
這篇文章主要介紹了javascript監(jiān)聽鼠標(biāo)滾輪事件淺析,使用具體例子說明,同時(shí)考慮了不同的瀏覽器,需要的朋友可以參考下2014-06-06
js實(shí)現(xiàn)一個(gè)可以兼容PC端和移動(dòng)端的div拖動(dòng)效果實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)一個(gè)可以兼容PC端和移動(dòng)端的div拖動(dòng)效果實(shí)例,具有一定的參考價(jià)值,有需要的可以了解一下。2016-12-12
jquery動(dòng)態(tài)添加刪除(tr/td)
這篇文章主要介紹了jquery動(dòng)態(tài)添加刪除(tr/td)的方法,需要的朋友可以參考下2015-02-02
41個(gè)Web開發(fā)者必須收藏的JavaScript實(shí)用技巧
41個(gè)Web開發(fā)者必須收藏的JavaScript實(shí)用技巧,分享給大家,感興趣的小伙伴們可以參考一下2016-07-07
JavaScript實(shí)現(xiàn)帶緩沖效果的隨屏滾動(dòng)漂浮廣告代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)帶緩沖效果的隨屏滾動(dòng)漂浮廣告代碼,通過JavaScript結(jié)合時(shí)間函數(shù)動(dòng)態(tài)響應(yīng)頁(yè)面元素滾動(dòng)事件實(shí)現(xiàn)懸浮廣告的緩沖漂浮效果,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-11-11
基于Javascript實(shí)現(xiàn)的不重復(fù)ID的生成器
本文介紹了js生成一個(gè)不重復(fù)的ID的函數(shù)的進(jìn)化之路,具有一定的參考價(jià)值,需要的朋友一起來看下吧2016-12-12
學(xué)習(xí)javascript的閉包,原型,和匿名函數(shù)之旅
Javascript中有幾個(gè)非常重要的語(yǔ)言特性——對(duì)象、原型繼承、閉包。其中閉包 對(duì)于那些使用傳統(tǒng)靜態(tài)語(yǔ)言C/C++的程序員來說是一個(gè)新的語(yǔ)言特性,本文給大家介紹js的閉包,原型,和匿名函數(shù)之旅,感興趣的朋友一起學(xué)習(xí)吧2015-10-10

