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程序来实现动画功能
Mar 06 Javascript
Jquery+JSon 无刷新分页实现代码
Apr 01 Javascript
jquery 操作表格实现代码(多种操作打包)
Mar 20 Javascript
JavaScript中length属性的使用方法
Jun 05 Javascript
JS实现的论坛Ajax打分效果完整实例
Oct 31 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
ES6新数据结构Map功能与用法示例
Mar 31 Javascript
深入理解ES7的async/await的用法
Sep 09 Javascript
Vue2.0 实现单选互斥的方法
Apr 13 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
vue3.0中使用postcss-pxtorem的具体方法
Nov 20 Javascript
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
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文件管理基本功能简单操作
2017/01/16 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
Python中的字符串替换操作示例
2016/06/27 Python
django使用html模板减少代码代码解析
2017/12/12 Python
Python输出各行命令详解
2018/02/01 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
实体的生命周期
2013/08/31 面试题
洗煤厂厂长岗位职责
2014/01/03 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
励志演讲稿600字
2014/08/21 职场文书
借款协议书
2014/09/16 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书