關(guān)于scrollIntoView()、scrollIntoViewIfNeeded()、scrolIByLines()、scroIIByPages()方法在實(shí)際工作中用得不多,但偶爾也會(huì)用到,注重用戶體驗(yàn)時(shí),一些細(xì)節(jié)要做到位,有些不常用的方法也就要用下,DOM規(guī)范沒有就如何滾動(dòng)頁面區(qū)域這個(gè)問題作出規(guī)定。為此,各種瀏覽器都實(shí)現(xiàn)了相應(yīng)的方法, 用于以不同方式控制滾動(dòng)。這些方法都是作為HTMLElement類型的擴(kuò)展存在的,因此可以在所有元素上使用。
◎scrollIntoView(alignWi thTop):滾動(dòng)瀏覽器窗◎或容器元素,以便在視◎(viewport)中看到當(dāng)前元素。如果alignWi thTop的值為true,或者省略它,那么窗◎會(huì)盡可能滾動(dòng)到自身頂部與元素頂部平齊。所有瀏覽器都實(shí)現(xiàn)了這個(gè)方法。
◎scrollIntoViewIfNeeded(alignCenter):只在當(dāng)前元素在視◎中不可見的情況下,才滾動(dòng)瀏覽器窗◎或容器元素,最終讓當(dāng)前元素可見。如果當(dāng)前元素在視◎中可見,這個(gè)方法什么也不做。如果將可選的alignCenter參數(shù)設(shè)置為true,則表示盡量將元素顯示在視◎中部(垂 直方向)。Safari和Chrome實(shí)現(xiàn)了這個(gè)方法。
◎scrolIByLines( lineCount):將元素的內(nèi)容滾動(dòng)指定的行數(shù)的高度,lineCount值可是正值,也可以是負(fù)值。Safari和Chrome實(shí)現(xiàn)了這個(gè)方法。
◎scroIIByPages (pageCount):將元素的內(nèi)容滾動(dòng)指定的頁面的高度,具體高度由元素的高度決定。Safari和Chrome實(shí)現(xiàn)了這個(gè)方法。
要注意的是,scrollIntoView()和scrollIntoViewIfNeeded()作用的是元素的窗◎,而scrolIByLines()和scrolIByPages()影響的則是元素自身。下面是幾個(gè)示例:
//將頁面主體滾動(dòng)5行
document.body. scrollByLines(5);
//確保當(dāng)前元素可見
document.forms[0].scrollIntoView();
//確保只在當(dāng)前元素不可見的情況下使其可見
document.Images[0].scrollIntoViewIfNeeded();
//將頁面主體往回滾動(dòng)1頁
document.body. scrollByPages(-1);
〈b>南昌網(wǎng)站制作公司百恒網(wǎng)絡(luò)開發(fā)工程師提告訴大家由于所有瀏覽器都支持方法只有scrollIntoView(),因此這個(gè)方法是最常用的。
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對(duì)廣技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò)http://www.myforexfactory.net/如轉(zhuǎn)載請(qǐng)注明出處!