const isError = document.getElementsByClassName('el-form-item__error') //为所有校验未通过的数组
//提示第一个未通过表单并定位到该表单位置
this.$message({
type: 'warning',
message: isError[0].innerText + '!', //isError[0].innerText获取rule里面定义的提示信息
customClass: 'customClass' //指定class
})
isError[0].scrollIntoView({
// 滚动到指定节点
block: 'center', // 值有start,center,end,nearest,当前显示在视图区域中间
behavior: 'smooth'// 值有auto、instant,smooth,缓动动画(当前是慢速的)
})
例如:
scrollIntoView方法介绍
scrollIntoView 是 HTMLElement 集合下的一个 API,每一个 HTML 元素都拥有这个 API。它的作用就和字面意思一样:滚动到可视区。
官方解释:
Element 接口的 scrollIntoView()方法会滚动元素的父容器,使被调用 scrollIntoView()的元素对用户可见。
element.scrollIntoView(); // 等同于 element.scrollIntoView(true)
element.scrollIntoView(alignToTop); // Boolean 型参数
element.scrollIntoView(scrollIntoViewOptions); // Object 型参数
参数解释:
alignToTop:它是一个 Boolean 值,它用来规定元素出现在可视区后与可视区的对齐方式,为 true 代表顶端对齐,false 代表低端对齐。
scrollIntoViewOptions:它是一个对象,该参数主要是配置元素的动画效果以及位置的,它有一下 3 个属性:
behavior:它定义元素出现在可视区内过程的动画,有 auto 和 smooth 两种选择。
block:定义元素的垂直方向的对齐方式,有"start", “center”, “end”, 或 “nearest” 4 个选项,默认 start。
inline:定义元素水平对齐方式,有"start", “center”, “end”, 或 “nearest"4 个选项,默认"nearest”
alignToTop 为 true 则相当于 {block:‘start’,inline:‘nearest’}
alignToTop为false 相当于 {block:‘end’,inline:nearest’}
scrollIntoView 兼任性也很好 可以兼容 ie 浏览器