Reintroduced scroll event

This commit is contained in:
Djamil Legato
2016-03-22 17:25:22 -07:00
parent 1c229e3bc1
commit 0c0284e400
2 changed files with 15 additions and 9 deletions

View File

@@ -82,20 +82,24 @@ export default class ColorpickerField {
this.wrapper.addClass('cp-visible');
this.updateFromInput();
let mainContainer = $('#admin-main .content-wrapper').data('scrollbar').getViewElement();
this.wrapper.on(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));
body.on(MOUSEMOVE, this.bound('bodyMove'));
body.on(MOUSEDOWN, this.bound('bodyClick'));
body.on(MOUSEUP, this.bound('targetReset'));
$(mainContainer).on('scroll', this.bound('reposition'));
}
hide() {
if (!this.built) { return; }
this.wrapper.removeClass('cp-visible');
let mainContainer = $('#admin-main .content-wrapper').data('scrollbar').getViewElement();
this.wrapper.undelegate(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));
body.off(MOUSEMOVE, this.bound('bodyMove'));
body.off(MOUSEDOWN, this.bound('bodyClick'));
body.off(MOUSEUP, this.bound('targetReset'));
$(mainContainer).off('scroll', this.bound('reposition'));
}
build() {
@@ -138,15 +142,16 @@ export default class ColorpickerField {
this.updateFromInput();
});
this.wrapper.appendTo('.content-wrapper .content-padding');
this.wrapper.appendTo('.content-wrapper');
this.built = true;
this.mode = 'hue';
}
reposition() {
let ct = $('.content-wrapper')[0];
let offset = this.element[0].getBoundingClientRect();
let ct = $('.content-wrapper .content-padding')[0].getBoundingClientRect();
let ctOffset = ct.getBoundingClientRect();
let delta = { x: 0, y: 0 };
if (this.options.offset) {
@@ -155,8 +160,8 @@ export default class ColorpickerField {
}
this.wrapper.css({
top: offset.top + offset.height - ct.top + delta.y,
left: offset.left - ct.left + delta.x
top: offset.top + offset.height + ct.scrollTop - ctOffset.top + delta.y,
left: offset.left + ct.scrollLeft - ctOffset.left + delta.x
});
}
@@ -208,9 +213,10 @@ export default class ColorpickerField {
let phi;
// Touch support
if (event && (event.changedTouches || event.originalEvent.changedTouches)) {
x = ((event.changedTouches || event.originalEvent.changedTouches) ? (event.changedTouches || event.originalEvent.changedTouches[0].pageX) : 0) - offsetX;
y = ((event.changedTouches || event.originalEvent.changedTouches) ? (event.changedTouches || event.originalEvent.changedTouches[0].pageY) : 0) - offsetY;
let touchEvents = event.changedTouches || (event.originalEvent && event.originalEvent.changedTouches);
if (event && touchEvents) {
x = (touchEvents ? touchEvents[0].pageX : 0) - offsetX;
y = (touchEvents ? touchEvents[0].pageY : 0) - offsetY;
}
if (event && event.manualOpacity) {

File diff suppressed because one or more lines are too long