window.scrollTo()方法的無效問題

this.$nextTick(() => { window.scrollTop(x, y) });

這是使用方法但卻無效!javascript

後來發現是HTML對象的問題:html

改成:java

this.$nextTick(() => {
document.body.scrollTop(x, y) 

});

緣由分析:瀏覽器

html、body、document、window的區別

 

html是一門超文本標記語言;dom

document對象表明整個html文檔,可用來訪問頁面中的全部元素;函數

body表明document的主體子對象,除瀏覽器頭部,頁面中可以看到的內容都屬於body中的內容;post

window表明瀏覽器中打開的窗口,表明運行環境。this

在javascript中:spa

window對象是一個虛擬的對象,瀏覽器在打開HTML文檔時生成window對象,能夠把它看做是你所使用的瀏覽器的窗口,其地位很高,由於它是瀏覽器腳本引擎中的globalobject。能夠用window對象訪問窗口中繪製的文檔、窗口中發生的事件和影響窗口的瀏覽器特性。若是文檔定義一組幀,則瀏覽器對原文檔生成一個window對象,並對每一個幀生成window對象。(關於globalobject,能夠從javascript腳本引擎的概念中瞭解到。)code

BOM的核心對象是window,它表示一個實例。在瀏覽器中,window對象有雙重角色,它既是經過js訪問瀏覽器窗口的一個接口,又是ECMAScript規定的Global對象,它意味着在網頁中定義的任何一個對象、變量和函數,都是以window做爲其Global對象,所以有權訪問isNaN()、isFinite()、parseInt()等方法。

*html元素對象*和*document對象*和*document元素對象*都是不一樣的:

document對象是一個跟當前文檔相關的對象,擁有一些操做文檔內容的功能,其功能上跟window對象差很少,由於window擁有一些操做瀏覽器窗口的功能。可是document對象地位沒有window對象高,window擁有其餘全部根對象的引用,包括browser、navigator、location等等。html元素對象和document元素對象是屬於html文檔的dom對象,能夠認爲就是html源代碼中那些標籤所化成的對象。他們跟div select什麼對象沒有根本區別。

相關文章
相關標籤/搜索