UNPKG

wsemi

Version:

A support package for web developer.

50 lines (40 loc) 1.19 kB
import { polyfill } from 'seamless-scroll-polyfill' import isEle from './isEle.mjs' import isobj from './isobj.mjs' import isIE from './isIE.mjs' /** * 前端平滑捲動至DOM元素 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/domScrollIntoView.test.mjs Github} * @memberOf wsemi * @param {Element} ele 輸入Element元素 * @param {Object} [opt={behavior:'smooth'}] 輸入scrollIntoView的設定物件,預設{behavior:'smooth'} * @example * need test in browser * * let ele = document.querySelector('#id') * domScrollIntoView(ele, {}) * */ function domScrollIntoView(ele, opt = {}) { //check if (!isEle(ele)) { return } if (!isobj(opt)) { opt = {} } //useOpt let useOpt = { behavior: 'smooth' } useOpt = { ...useOpt, ...opt } //call if (isIE()) { polyfill() //IE11, 不確定是否有偵測不重複加載機制, 為支援IE11暫時這樣處理 // elementScrollIntoView(ele, useOpt) //IE11 } else { // ele.scrollIntoView(useOpt) } ele.scrollIntoView(useOpt) } export default domScrollIntoView