From e25070eb84ced97269b66032ccde9c3251ba8696 Mon Sep 17 00:00:00 2001 From: huanghong Date: Wed, 21 Mar 2018 21:03:32 +0800 Subject: [PATCH 1/6] fixed #2871 --- examples/routers/table.vue | 117 ++++++++++++++++++++++++++++++++- src/components/table/table.vue | 31 ++++++++- 2 files changed, 145 insertions(+), 3 deletions(-) diff --git a/examples/routers/table.vue b/examples/routers/table.vue index e4fba36d..cc5cce72 100644 --- a/examples/routers/table.vue +++ b/examples/routers/table.vue @@ -15,7 +15,7 @@
-
+
Table scrolling @@ -143,6 +143,14 @@ city: 'Sydney', zip: 100000 }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + }, { name: 'Jon Snow', age: 26, @@ -152,6 +160,113 @@ zip: 100000 } ], + data31: [ + { + name: 'John Brown', + age: 18, + address: 'New York No. 1 Lake Park', + province: 'America', + city: 'New York', + zip: 100000 + }, + { + name: 'Jim Green', + age: 24, + address: 'Washington, D.C. No. 1 Lake Park', + province: 'America', + city: 'Washington, D.C.', + zip: 100000 + }, + { + name: 'Joe Black', + age: 30, + address: 'Sydney No. 1 Lake Park', + province: 'Australian', + city: 'Sydney', + zip: 100000 + }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + }, + { + name: 'Jim Green', + age: 24, + address: 'Washington, D.C. No. 1 Lake Park', + province: 'America', + city: 'Washington, D.C.', + zip: 100000 + }, + { + name: 'Joe Black', + age: 30, + address: 'Sydney No. 1 Lake Park', + province: 'Australian', + city: 'Sydney', + zip: 100000 + }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + }, + { + name: 'Jim Green', + age: 24, + address: 'Washington, D.C. No. 1 Lake Park', + province: 'America', + city: 'Washington, D.C.', + zip: 100000 + }, + { + name: 'Joe Black', + age: 30, + address: 'Sydney No. 1 Lake Park', + province: 'Australian', + city: 'Sydney', + zip: 100000 + }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + }, + { + name: 'Jon Snow', + age: 26, + address: 'Ottawa No. 2 Lake Park', + province: 'Canada', + city: 'Ottawa', + zip: 100000 + } + ], + fixedHeader: false, tableData1: [], diff --git a/src/components/table/table.vue b/src/components/table/table.vue index d8c62b9e..19c49a7a 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -47,7 +47,8 @@ :columns-width="columnsWidth" :data="rebuildData">
-
+
-
+
0 && body.scrollHeight - body.clientHeight > currentScrollTop) { + event.preventDefault(); + } + //body.scrollTop += deltaY; + let step = 0; + let timeId = setInterval(()=>{ + step+=10; + if(deltaY>0){ + body.scrollTop += 10; + } + else{ + body.scrollTop += -10; + } + if(step>=Math.abs(deltaY)){ + clearInterval(timeId); + } + } , 20); + }, handleMouseWheel (event) { const deltaX = event.deltaX; const $body = this.$refs.body; From 7f2e78d8db1df647108444f7124faffd9c0598be Mon Sep 17 00:00:00 2001 From: huanghong Date: Wed, 21 Mar 2018 21:47:11 +0800 Subject: [PATCH 2/6] Decrease table scroll speed --- src/components/table/table.vue | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 19c49a7a..1f6f142a 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -12,6 +12,7 @@ :data="rebuildData">
+ @mousewheel="handleFixedMousewheel">
+ @mousewheel="handleFixedMousewheel"> { - step+=10; + step += 5; if(deltaY>0){ - body.scrollTop += 10; + body.scrollTop += 2; } else{ - body.scrollTop += -10; + body.scrollTop -= 2; } - if(step>=Math.abs(deltaY)){ + if(step >= Math.abs(deltaY)){ clearInterval(timeId); } - } , 20); + }, 5); }, handleMouseWheel (event) { const deltaX = event.deltaX; From e970884b3c7c8e1b5a1e712d1437070e68da70c4 Mon Sep 17 00:00:00 2001 From: huanghong Date: Wed, 21 Mar 2018 23:17:07 +0800 Subject: [PATCH 3/6] mousewheel support firefox and safari --- src/components/table/table.vue | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 1f6f142a..cad31cd3 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -12,7 +12,7 @@ :data="rebuildData">
+ @mousewheel="handleFixedMousewheel" @DOMMouseScroll="handleFixedMousewheel" + @touchmove="handleFixedTouchmove">
+ @mousewheel="handleFixedMousewheel" @DOMMouseScroll="handleFixedMousewheel" + @touchmove="handleFixedTouchmove"> Date: Thu, 22 Mar 2018 10:11:38 +0800 Subject: [PATCH 4/6] Update table.vue --- src/components/table/table.vue | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/components/table/table.vue b/src/components/table/table.vue index cad31cd3..0a0179a5 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -12,7 +12,6 @@ :data="rebuildData">
+ @mousewheel="handleFixedMousewheel" @DOMMouseScroll="handleFixedMousewheel">
+ @mousewheel="handleFixedMousewheel" @DOMMouseScroll="handleFixedMousewheel"> Date: Thu, 22 Mar 2018 10:12:43 +0800 Subject: [PATCH 5/6] Update table.vue --- src/components/table/table.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 0a0179a5..15f6e070 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -47,8 +47,7 @@ :columns-width="columnsWidth" :data="rebuildData">
-
+
-
+
Date: Thu, 22 Mar 2018 10:22:51 +0800 Subject: [PATCH 6/6] support ie Mousewheel --- src/components/table/table.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 15f6e070..909961c1 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -547,6 +547,9 @@ if(!deltaY && event.wheelDeltaY){ deltaY = -event.wheelDeltaY; } + if(!deltaY && event.wheelDelta){ + deltaY = -event.wheelDelta; + } if(!deltaY) return; const body = this.$refs.body; const currentScrollTop = body.scrollTop;