JS實現(xiàn)平滑滾動到指定元素

項目中經(jīng)常會遇到觸發(fā)事件頁面自動滾動到某一位置的情況掸屡,一般可以用游標(biāo)實現(xiàn),但也有另一種簡單的實現(xiàn)思路顶考,利用element.getBoundingClientRect()window.scrollTo()

由于是JS控制滾動條醉顽,所以我們可以輕松添加動畫效果,代碼如下

  function animateScroll(element,speed) {
    let rect=element.getBoundingClientRect();
    //獲取元素相對窗口的top值蜀撑,此處應(yīng)加上窗口本身的偏移
    let top=window.pageYOffset+rect.top;
    let currentTop=0;
    let requestId;
    //采用requestAnimationFrame挤巡,平滑動畫
    function step(timestamp) {
      currentTop+=speed;
      if(currentTop<=top){
        window.scrollTo(0,currentTop);
        requestId=window.requestAnimationFrame(step);
      }else{
        window.cancelAnimationFrame(requestId);
      }
    }
    window.requestAnimationFrame(step);
  }

JSBin Demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市酷麦,隨后出現(xiàn)的幾起案子矿卑,更是在濱河造成了極大的恐慌,老刑警劉巖沃饶,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件母廷,死亡現(xiàn)場離奇詭異轻黑,居然都是意外死亡,警方通過查閱死者的電腦和手機琴昆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門氓鄙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人业舍,你說我怎么就攤上這事抖拦。” “怎么了舷暮?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵态罪,是天一觀的道長。 經(jīng)常有香客問我下面,道長复颈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任沥割,我火速辦了婚禮耗啦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘机杜。我一直安慰自己帜讲,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布叉庐。 她就那樣靜靜地躺著舒帮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陡叠。 梳的紋絲不亂的頭發(fā)上玩郊,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音枉阵,去河邊找鬼译红。 笑死,一個胖子當(dāng)著我的面吹牛兴溜,可吹牛的內(nèi)容都是我干的侦厚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼拙徽,長吁一口氣:“原來是場噩夢啊……” “哼刨沦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膘怕,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤想诅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體来破,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡篮灼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了徘禁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诅诱。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖送朱,靈堂內(nèi)的尸體忽然破棺而出娘荡,到底是詐尸還是另有隱情,我是刑警寧澤驶沼,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布它改,位于F島的核電站,受9級特大地震影響商乎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜祭阀,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一鹉戚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧专控,春花似錦抹凳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柏蘑,卻和暖如春幸冻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咳焚。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工洽损, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人革半。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓碑定,卻偏偏與公主長得像,于是被迫代替她去往敵國和親又官。 傳聞我的和親對象是個殘疾皇子延刘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容