Day 6 让表格动起来

返回目录

以下知识源码位置:[Git:  https://gitee.com/zhouweng/mini_sheet  version=fb0b051f1c545c6b3aeeb647795b25fc097e44af]

 

首先看一下效果,通过X和Y轴滚动栏和鼠标滑轮,可以实现表格拖动,效果如下:

 

与滚动相关的代码 包括:

0.基础知识:

H5 CSS : .mousewheel() / .scroll() / .css() / .show() 

git: git log / git reset --hard [id]

1.global/scroll.js  

   函数luckysheetscrollevent(), 作用是 根据X/Y滚动条,把下面这些元素的 Left和Top设置好,并调用refresh.luckysheetrefreshgrid(), 刷新表格里面的单元格:

  1)表格  id=#luckysheet-cell-main

  2)行标题  id=#luckysheet-rows-h

  3)列标题 id=#luckysheet-cols-h-c

 

2.controllers/handler.js

 函数 luckysheetHandler(),定义了#luckysheet-scrollbar-x和#luckysheet-scrollbar-y 这两个滚动条

的scroll event处理,调用 scroll.luckysheetscrollevent()。另外还定义了 #luckysheet-grid-window-1 

元素上鼠标滚动的时候,通过 .scrollTop() 改变 #luckysheet-scrollbar-y  滚动条的垂直位置

 

3.core.js

  在页面完全加载后, 新增一行  调用 handler.luckysheetHandler() ,把交互相关的event 调用起来

 


这样改造完成后,存在一个问题,当窗口的大小变化后,可能出现双重的滚动条,影响用户的使用体验

以下知识源码位置:[Git:  https://gitee.com/zhouweng/mini_sheet  version=f1ccda438313edb4d4b8cf87561661cff5c996c2]

0.基础知识:

H5 CSS : .mousewheel() / .scroll() / .css() / .show() 

1.handler.luckysheetHandler() 增加以下代码,在窗口大小变化的时候,重新调用以下 resize.luckysheetsizeauto(),根据重新计算的尺寸刷新一下界面

 

    // If brower's windows size change, refresh page

    $(window).resize(function () {

        let luckysheetDocument = document.getElementById(Store.container);

        if (luckysheetDocument) {

            luckysheetsizeauto();

        }

    });

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值