鍍金池/ 問答/HTML/ 關(guān)于scrollTop的使用

關(guān)于scrollTop的使用

問題描述

在我們angular項(xiàng)目中使用$('.dialog_center').scrollTop(0);未能將滾動(dòng)條置頂,這是個(gè)彈框的滾動(dòng)條

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

這個(gè)元素是一個(gè)彈框,然后使用定時(shí)器解決了,可以將其置頂,但這個(gè)js加載方式有些不懂,哪個(gè)大神可以解答一下,萬分感謝

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

    $timeout(function(){
        $('.dialog_center').scrollTop(0);
    })

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

回答
編輯回答
爛人

timeout 會(huì)添加到任務(wù)隊(duì)列,延遲執(zhí)行。
可能是你那個(gè)彈框有個(gè)動(dòng)畫效果,導(dǎo)致 $('.dialog_center') 這個(gè)元素第一時(shí)間沒有拿到。你可以試試將 timeout拿掉后把 $('.dialog_center') 打印出來看是否為空。

2018年3月7日 13:39
編輯回答
誮惜顏

你的問題流程并沒有描述完整,只能靠猜測(cè)了...

  1. 使用$('.dialog_center').scrollTop(0)沒生效,大概率是因?yàn)榇藭r(shí)頁面上還沒有class為.dialog_center這個(gè)對(duì)象,其原因是頁面渲染dom的過程還未結(jié)束。
  2. 放在timeout中,它會(huì)在當(dāng)前進(jìn)程空閑(之前Angular應(yīng)該在進(jìn)行Dom渲染工作)后馬上執(zhí)行,此時(shí)已經(jīng)可以找到所有頁面元素,能直接操作,故能達(dá)到你期望的效果
2018年2月1日 04:51