mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 14:09:20 -04:00
Improve redraw performance
It’s noticeable when clicking from row to row in the spreadsheet that the page jumps around a fair bit on load because there are a couple of Javascript-powered components. This commit makes sure: - the radio select component doesn’t change height when rendering for the first time - the scrollable table doesn’t show parts of the table that should be hidden by overflow for a fraction of second before all the JS has run - the right-hand shadow on horizontally scrollable tables doesn’t fade in on initial page load but shows at 100% opacity immediately
This commit is contained in:
@@ -52,7 +52,8 @@
|
|||||||
'height': this.nativeHeight,
|
'height': this.nativeHeight,
|
||||||
'top': this.topOffset
|
'top': this.topOffset
|
||||||
})
|
})
|
||||||
);
|
)
|
||||||
|
.css('position', 'absolute');
|
||||||
|
|
||||||
this.$scrollableTable = this.$component.find('.fullscreen-scrollable-table');
|
this.$scrollableTable = this.$component.find('.fullscreen-scrollable-table');
|
||||||
this.$fixedTable = this.$component.find('.fullscreen-fixed-table');
|
this.$fixedTable = this.$component.find('.fullscreen-fixed-table');
|
||||||
@@ -100,6 +101,11 @@
|
|||||||
this.$scrollableTable.scrollLeft() < (this.$table.width() - this.$scrollableTable.width())
|
this.$scrollableTable.scrollLeft() < (this.$table.width() - this.$scrollableTable.width())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
setTimeout(
|
||||||
|
() => this.$component.find('.fullscreen-right-shadow').addClass('with-transition'),
|
||||||
|
3000
|
||||||
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,8 +6,7 @@
|
|||||||
z-index: 10;
|
z-index: 10;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
position: absolute;
|
margin: 0 0 $gutter 0;
|
||||||
margin: 5px 0 $gutter 0;
|
|
||||||
padding: 0 0 0 0;
|
padding: 0 0 0 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-bottom: 1px solid $border-colour;
|
border-bottom: 1px solid $border-colour;
|
||||||
@@ -42,8 +41,13 @@
|
|||||||
z-index: 200;
|
z-index: 200;
|
||||||
|
|
||||||
&.visible {
|
&.visible {
|
||||||
transition: box-shadow 0.3s ease-in-out;
|
|
||||||
|
&.with-transition {
|
||||||
|
transition: box-shadow 0.6s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
box-shadow: inset -1px 0 0 0 $border-colour, inset -3px 0 0 0 rgba($border-colour, 0.2);
|
box-shadow: inset -1px 0 0 0 $border-colour, inset -3px 0 0 0 rgba($border-colour, 0.2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
.radio-select {
|
.radio-select {
|
||||||
|
|
||||||
|
min-height: 39px;
|
||||||
|
|
||||||
&-column {
|
&-column {
|
||||||
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
Reference in New Issue
Block a user