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 相关文章推荐
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
vue中将网页打印成pdf实例代码
Jun 15 Javascript
利用Vue实现移动端图片轮播组件的方法实例
Aug 23 Javascript
使用InstantClick.js让页面提前加载200ms
Sep 12 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
Jul 18 Javascript
简单了解vue 插值表达式Mustache
Jul 22 Javascript
javascript实现拼图游戏
Jan 29 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
初学JavaScript第二章
2008/09/30 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
党员学习十八大感想
2014/01/17 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
绩效考核实施方案
2014/03/18 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
酒店端午节活动方案
2014/08/26 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
社保转移委托书范本
2014/10/08 职场文书
活动总结模板大全
2015/05/11 职场文书