vue2.0中goods选购栏滚动算法的实现代码


Posted in Javascript onMay 17, 2017

不多说,直接代码,以便以后重复利用:

<script type="text/ecmascript-6">
import BScroll from 'better-scroll';
const ERR_OK = 0;
export default {
 props: {
  sell: {
   type: Object
  }
 },
 data() {
  return {
   goods: [],
   listHeight: [],
   scrollY: 0
  };
 },
 computed: {
  currentIndex() {
   for (let i = 0; i < this.listHeight.length; i++) {
    let height1 = this.listHeight[i];
    let height2 = this.listHeight[i + 1];
    if (!height2 || (this.scrollY >= height1 && this.scrollY < height2)) {
     return i;
    };
   }
   return 0;
  }
 },
 created() {
  this.classMap = ['decrease', 'discount', 'special', 'invoice', 'guarantee'];
  this.$http.get('/api/goods').then((response) => {
   response = response.body;
   if (response.errno === ERR_OK) {
    this.goods = response.data;
    this.$nextTick(() => {
     this._initScroll();
     this._calculateHeight();
    });
   }
  });
 },
 methods: {
  _initScroll() {
   this.menuScroll = new BScroll(this.$refs.menuwrapper, {
    click: true
   });
   this.foodScroll = new BScroll(this.$refs.foodswrapper, {
    probeType: 3
   });
   this.foodScroll.on('scroll', (pos) => {
    this.scrollY = Math.abs(Math.round(pos.y));
   });
  },
  _calculateHeight() {
   let foodList = this.$refs.foodswrapper.getElementsByClassName('food-list-hook');
   let height = 0;
   this.listHeight.push(height);
   for (let i = 0; i < foodList.length; i++) {
    let item = foodList[i];
    height += item.clientHeight;
    this.listHeight.push(height);
   }
  },
  selectMenu(index, event) {
   if (!event._constructed) {
    return;
   };
   console.log(index);
   let foodList = this.$refs.foodswrapper.getElementsByClassName('food-list-hook');
   let el = foodList[index];
   this.foodScroll.scrollToElement(el, 300);
  }
 }
};
</script>

以上所述是小编给大家介绍的vue2.0中goods选购栏滚动算法的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS对URL字符串进行编码/解码分析
Oct 25 Javascript
javascript中处理时间戳为日期格式的方法
Jan 02 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
Apr 14 Javascript
javascript中JSON.parse()与eval()解析json的区别
May 19 Javascript
JS中递归函数
Jun 17 Javascript
JavaScript简单实现弹出拖拽窗口(二)
Jun 17 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
js cookie实现记住密码功能
Jan 17 Javascript
echarts学习笔记之箱线图的分析与绘制详解
Nov 22 Javascript
基于js 字符串indexof与search方法的区别(详解)
Dec 04 Javascript
vue路由教程之静态路由
Sep 03 Javascript
AngularJS自定义指令实现面包屑功能完整实例
May 17 #Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 #jQuery
AngularJS使用拦截器实现的loading功能完整实例
May 17 #Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 #Javascript
微信小程序如何获知用户运行小程序的场景教程
May 17 #Javascript
bootstrap轮播图示例代码分享
May 17 #Javascript
bootstrap警告框示例代码分享
May 17 #Javascript
You might like
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
Javascript学习笔记2 函数
2010/01/11 Javascript
有趣的javascript数组定义方法
2010/09/10 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
Python对数据进行插值和下采样的方法
2018/07/03 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
python中os包的用法
2020/06/01 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
德国家具折扣店:POCO
2020/02/28 全球购物
材料物理专业个人求职信
2013/12/15 职场文书
老师对学生的寄语
2014/04/09 职场文书
低碳环保标语
2014/06/12 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
小时代观后感
2015/06/10 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书