zoukankan      html  css  js  c++  java
  • 秒杀模块的实现思路

    最近新做了个h5活动页面的秒杀模板,样式类似于日期是一个tab的列表,时间是一个tab的列表,商品是一个可以左右滑动的列表,结构从上到下排列。这里具体的代码就不贴了,简单介绍下实现的思路。

    实现原理

    处理页面的显示逻辑即是处理数据。当页面初始化时,遍历秒杀商品的数据列表,每个商品和分割线的宽度是固定的,这时可以计算出每个商品的offsetLeft值,保存在商品对象中。(或者也可以等DOM节点渲染好后,遍历商品的节点,获得每个商品的offsetLeft值,但是这种方法需要浏览器操作DOM节点,相比于直接处理数据,性能可能会差些)这个offsetLeft值用于后面商品滑动时的定位。

    秒杀组件基本上没有太过于复杂的交互逻辑,难点即是商品定位和时间日期定位。包括两处:

    1. 点击指定的日期或时间,商品区域滑动到该场次对应商品的位置。

    点击日期或时间时,可以拿到日期或时间的索引值,根据这个值可以找出对应场次的第一个商品,获得该商品的offsetLeft值,然后将商品区域的scrollLeft值设为该商品的offsetLeft值。即可滑动到该商品所在的位置。中间用到了动画过渡效果,使滑动的过程比较平滑。

    2. 滑动商品区域,计算出页面中显示商品所在的日期和时间,并给相应的日期和时间加上状态。

    滑动商品时,调用scroll方法,使用函数节流控制scroll事件触发的频率,此处有两个方法,1:遍历视图区第一个商品节点的getBoundingClientRect().left值来定位。2:判断商品区域的scrollLeft的值是在哪两个秒杀场次的offset值的区间内,此处采用第二种做法。确定好对应的秒杀场次后,日期和时间的值也就出来了。这时如果日期和时间不在浏览器的可见区域内,则要移动至可见区域。

    点击日期或时间,商品的滑动还未停止时,这时商品区域是没有绑定scroll事件的。

  • 相关阅读:
    Win8杂谈
    ipad还能横行霸道多久
    C++异步编程 for VS2011(二)
    C++异步编程 for VS2011(一)
    互联网催生的新的商业模式
    微信小程序用户评分实例
    即时通讯小程序实现代码
    CDN(内容分发网络)技术原理 枯木
    RHEL6.3下Zabbix监控实践之Zabbix的安装 枯木
    Firefox浏览器完美运行Firefox OS 枯木
  • 原文地址:https://www.cnblogs.com/zourong/p/5438699.html
Copyright © 2011-2022 走看看