vue 滚动,vue div滚动

  vue 滚动,vue div滚动

  这几天研究项目的时候看到了better-scroll插件,看着看着感觉还挺厉害的。本文主要介绍vue使用better-scroll进行水平滚动的相关信息,有需要的朋友可以参考一下。

  

一、滚动的实现原理

  better-scroll的滚动原理和浏览器原生滚动是一样的。当子框高度大于父框高度时,会发生纵向滚动;同样,如果子框的宽度大于父框的宽度,那么就会有横向滚动。

  

二、better-scroll的 html 结构

  让我们先来看看better-scroll的常见html结构:

  div class=wrapper

  ul class=内容

  里./李

  里./李

  .

  /ul

  /div

  BetterScroll应用于外部包装容器,滚动部分是内容。注意,默认情况下,包装器处理容器()的第一个子元素(内容)的滚动,这意味着其他元素将被忽略。

  

三、在Vue中使用better-scroll

  m安装更好-滚动-保存//NPM安装

  Import scroll从 better-scroll//Better-scroll引入到组件文件中。

  模板

  /*水平滚动*/

  /*这里是父框*/

  差异

  class=wrapper_box

  style=最小高度:100vh

  ref=wrapper

  v-否则

  /*这里是子框,即滚动区*/

  div class= content ref= wrapper child

  差异

  v-for=(item,index) in currentImgList

  :key=index

   imgItem

   img:src= item . img class= img style= margin:0 10px;/

  /div

  /div

  /div

  /模板

  脚本

  从“better-scroll”导入b scroll;

  导出默认值{

  data() {

  返回{

  当前列表:[

  { img: require(././assets/image/zzb_1.png) },

  { img: require(././assets/image/zzb_2.png) },

  { img: require(././assets/image/zzb_3.png) }

  ],

  };

  },

  已安装(){

  this . slide _ x();//水平滚动

  },

  方法:{

  //初始化

  _initScroll() {

  如果(!this.scroll) {

  this . scroll=new scroll(this。$ refs.wrapper,{//实例化bscroll需要两个参数,第一个是父框的dom节点。

  StartX: 0,///配置详情请参考better-scroll的官方文档,在此不再赘述。

  点击:真的,

  没错,

  Scroll: false,//忽略垂直滚动

  eventPassthrough:垂直,

  UseTransition: false //防止快速滑动触发的异常反弹。

  });

  }否则{

  this . scroll . refresh();//如果dom结构发生变化,调用此方法重新计算,保证正常滚动效果。

  }

  },

  //计算宽度

  _calculateWidth() {

  //获取类名为imgItem的标签

  让横冲直撞列表=这个。$ refs . wrapper child . getelementsbyclassname(

   imgItem

  );

  //设置起始宽度

  设init width=0;

  //遍历标签

  for(设I=0;我横冲直撞。i ) {

  const item=横冲直撞列表[I];

  //添加每个标签的宽度。

  init width=item . client width;

  }

  //设置可滚动的宽度

  这个。$ refs . wrapper child . style . width=` { init width } px `;

  },

  slide_x() {

  这个。$ NextTick (()={//this。$ NextTick是一个异步函数,目的是确保DOM已经呈现。

  这个。_ init scroll();//初始化

  这个。_ calculate width();//计算宽度

  });

  },

  },

  };

  /脚本

  插件的原作者是这样说的:

  

四. 容易出现问题的点:

  在实例化BScroll之前,必须等到页面的DOM呈现完成。建议在挂接功能中进行。

  子框的宽度大于父框的宽度。

  

最后

  better-scroll插件作者的文章发现better-scroll真的很厉害!

  当更好的卷轴遇到Vue

  在Vue中实现水平滚动和更好的滚动

  这就是这篇关于vue使用better-scroll实现水平滚动的文章。有关vue better-scroll实现水平滚动的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: