vue2.0中goods选购栏滚动算法的实现代码
发布时间 - 2026-01-11 01:08:30 点击率:次不多说,直接代码,以便以后重复利用:
<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选购栏滚动算法的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# vue2.0
# goods选购栏
# vue
# 滚动
# vue diff算法全解析
# 详解Vue2的diff算法
# 一篇文章带你搞懂Vue虚拟Dom与diff算法
# 详解vue3.0 diff算法的使用(超详细)
# 详解为什么Vue中不要用index作为key(diff算法)
# Vue的transition-group与Virtual Dom Diff算法的使用
# Vue实现开心消消乐游戏算法
# 基于Vue实现电商SKU组合算法问题
# 详解vue的diff算法原理
# vue的diff算法知识点总结
# 解析Vue 2.5的Diff算法
# LRU算法在Vue内置组件keep-alive中的使用
# 小编
# 在此
# 给大家
# 多说
# 所述
# 给我留言
# 感谢大家
# 疑问请
# 有任何
# scrollY
# computed
# length
# currentIndex
# listHeight
# data
# Object
# goods
# return
# discount
# decrease
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站页面设计需要考虑到这些问题
制作企业网站建设方案,怎样建设一个公司网站?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
如何快速选择适合个人网站的云服务器配置?
微信小程序 input输入框控件详解及实例(多种示例)
如何在景安服务器上快速搭建个人网站?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
jQuery 常见小例汇总
深圳网站制作培训,深圳哪些招聘网站比较好?
郑州企业网站制作公司,郑州招聘网站有哪些?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何在IIS中新建站点并解决端口绑定冲突?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
七夕网站制作视频,七夕大促活动怎么报名?
JS经典正则表达式笔试题汇总
如何在搬瓦工VPS快速搭建网站?
Java类加载基本过程详细介绍
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
重庆市网站制作公司,重庆招聘网站哪个好?
如何在万网主机上快速搭建网站?
网站建设要注意的标准 促进网站用户好感度!
怎么用AI帮你为初创公司进行市场定位分析?
如何在万网开始建站?分步指南解析
Laravel观察者模式如何使用_Laravel Model Observer配置
百度浏览器如何管理插件 百度浏览器插件管理方法
如何快速搭建高效可靠的建站解决方案?
如何在万网ECS上快速搭建专属网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
javascript读取文本节点方法小结
Android使用GridView实现日历的简单功能
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何快速查询网址的建站时间与历史轨迹?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
高端网站建设与定制开发一站式解决方案 中企动力
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
详解阿里云nginx服务器多站点的配置
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
详解CentOS6.5 安装 MySQL5.1.71的方法
,在苏州找工作,上哪个网站比较好?
C++时间戳转换成日期时间的步骤和示例代码

