0313-0315的笔记

回到顶部

window.scrollTo(0,0) 一次性的过程,就是滚动到起始位置,就是x=0,y=0的地方。
是绝对滚动,相对屏幕来说。和window.scroll(0,0)一样的道理

window.scrollTo(x,y)
参数解释:
    x:要在窗口文档显示区左上角显示的文档的 x 坐标。
    y:要在窗口文档显示区左上角显示的文档的 y 坐标。

也有以对象形式的传参数。
window.scrollTo(options)
参数解释:
    options有三个属性:

  • left: num,此属性与x-coord参数对应,属性值是一个数字,默认单位是像素。
  • top: num,此属性与y-coord参数对应,属性值是一个数字,默认单位是像素。
  • behavior:behavior。属性规定调整是以动画方式完成,还是瞬间完成,具有两个属性值,"auto"与"smooth"

既然是调整滚动条的位置,那必须在一个坐标系中,否则你无法定位。
兼容性:xy形式的传参,任何浏览器都兼容,但opitons形式的传参,只有谷歌,火狐,opera兼容,其他不兼容。

拓展:
window.scrollBy(x-coord, y-coord) 代表的是在窗口中按指定的偏移量滚动文档。
scrollBy方法可以将文档位置移动指定尺寸,单位是像素(px)
scrollBy设置的尺寸不是一个绝对值,而是基于上一次值的一个增量。就是每次点击就是累加的过程。
该前提是有滚动条的情况才能生效,兼容性都适用于各个浏览器

正则,获取dom元素的某个值

获取a的x值。
let a = translate3d(-288.88px, 0px, 0px)
let b = a.match(/translate3d((-?d+(.d+)?)px,s(d+)px,s(d+)px)/i)[1]

  • 1 负号,点.要转义,加
  • 2 ?代表前面的字符只能出现0次或1次
  • 3 ()有两种含义,一个是优先级,一个是匹配里面的字符并获取这一匹配,就是数组里的值就和()有关
  • 4 * 代表可以不出现,也可以出现1次或多次
  • 5 match返回的是一个数组,第一个是全部的数据(translate3d(-288.88px, 0px, 0px) )

后台返回图片数据时是一个很长乱码的base64

后台返回图片是一个图片流,就是前端收到的是一个乱码的值。
解决办法:前端就直接把该地址赋值给img的src即可,无需发起一个请求
img.src = http://10.200.7.17:1220/captchaImage?type=char&s=${Math.random()} (?后面是后台要求的参数)

forEach 无法跳出循环

js的forEach循环
用break直接报错 'Illegal break statement'
用continue报 Illegal continue statement: no surrounding iteration statement
return是可以跳出满足条件的循环,而不是终止循环,return false也是如此

var arr = [1,2,3,4,5,6]
arr.forEach(val=>{
  if(val == 3){
    val = 33
    return
  }
  console.log(val) // 1 2 4 5 6
})

解决办法

  • 用普通的for循环,可以使用break,return跳出
  • 网上说的,用抛出异常的方式跳出循环。
    try {
      var array = [1,2,3,4,5,6];
      // 执行到第3次,结束循环
      array.forEach(function(item,index){
          if (item == 3) {
              throw new Error("EndIterative");
          }
          console.log(item);// first,sencond
      });
    } catch(e) {
      if(e.message!="EndIterative") throw e;
    };
    

elementui 的table更改头部样式,换行之类的

<el-table-column :render-header="renderHeader"></el-table-column>
methods中添加({}代表要填的样式,类名之类的)其结果可以通过控制器查看到


  renderHeader (h,{column,$index}) {
    return [h('p', {style:{color:’red’},class:’helloe'}, ['标题']),h('p', {}, ['单位'])]
  }

elementui的el-pagination抽成组件复用

<div class="pagination">
  <el-pagination
    @size-change="pagination.handleSizeChange"
    @current-change="pagination.handleCurrentChange"
    :current-page="pagination.currentPage"
    :page-sizes="pagination.pageSizes"
    :page-size="pagination.pageSize"
    layout="total, sizes, prev, pager, next, jumper"
    :total="pagination.total">
  </el-pagination>
</div>

<script>
paginationData:{
  total: 30,
  pageSizes: [10,20,30],
  pageSize: 10,
  currentPage: 1,
  handleSizeChange: val=>{ //pageSize改变时
    console.log(val)
  },
  handleCurrentChange: val=>{//currentPage改变时
    console.log(val)
  },
}
props:['pagination']
</script>
原文地址:https://www.cnblogs.com/sqh17/p/10646405.html