点击查看更多&收起 做法解析

点击查看更多在前端页面中运用特别多,但是做好里面的细节方面还是需要揣摩一下
我们一步一步开始这里面的情况和步骤吧

首先,我们来看一个最简单的情况: 一次性请求完所有的数据
1. 这样的情况,会一次性请求所有的数据回来,直接将全部数据遍历到列表
2. 接着就是根据需要 " 设定父元素的高度并且overflow达到遮拦的效果 " 并且设定一个button的点击事件,点击之后把高度设定去除
3. 去除高度({height: auto})之后就把 “点击查看更多” 字眼换成 “收起” 


另外,如果点击收起,浏览器会记录当前的scrollTop
也就是说点击收起之后scrollTop会变成之前没有收起时候的scrollTop(显示效果就是会定位到屏幕更加下方的位置)
会造成不美观也不符合用户习惯

解决办法: 
所以这边我们需要在点击 “查看更多” 的时候记录下当前页面的scrollTop并且赋值给一个变量存放。
再次点击 “收起” 按钮的时候我们把scrollTop赋值为刚刚存放的变量就能还原之前的操作啦

Expand () {
        if (this.viewMore === false) {  // 判断当前用户有没有展开
          this.viewMore = true
          // 收起回到用户点击查看更多时的定位
          document.body.scrollTop = this.scroll
          // alert(this.scroll)
        } else {
          // 记录下来用户滑动到的位置,下面会收起到这个位置
          let scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
          this.scroll = scrollTop
          // alert(this.scroll)
          this.viewMore = false
        }
      }
image.png
接着我们来看需要数据请求的查看更多
1. 这样的情况,会比较类似分页,第一次请求数据,然后第二次继续请求数据之后将两次的数据进行拼接
2. 因为排行榜会实时更新,所以我们请求的数据需要保证之前分页请求的数据是不变的,每次请求回来之后我们提供列表最后那个的id,后台请求这个id后面的数据,当然这也是不准确的。
3. 接下来的操作其实是跟上面的类似
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,432评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 2018年,元旦 想来自己本不是一个无趣的人,哪怕独处也会找些小兴趣。但现在越来越感觉自己有些煞风景,甚至不想言语...
    SeanQD阅读 503评论 0 0
  • 班级情况: 校区:科学创想乐高机器人和平校区 时间:周六9:00——10:00 学员:朱紫凝 高煜迪 杨子铭 任...
    bong撒卡啦卡阅读 4,359评论 0 0
  • 总有几分钟,其中的每一秒,妳都愿意拿一年去换取。总有几颗泪,其中的每一次抽泣,妳都愿意拿满手的承诺去代替。总有几段...
    聪聪那年阅读 158评论 0 0