Skip to content

Commit

Permalink
Updated colorpicker
Browse files Browse the repository at this point in the history
  • Loading branch information
Kiuryy committed Nov 11, 2017
1 parent 019dd21 commit f5e1562
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 8 deletions.
2 changes: 1 addition & 1 deletion dist/css/settings.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/img/settings/icon-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion dist/js/settings.js

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions src/css/settings.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/css/settings.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/img/settings/icon-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 22 additions & 3 deletions src/js/lib/colorpicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ window.Colorpicker = (() => {
/**
* Returns whether the given value is an numeric value or not
*
* @param {int} value
* @param value
* @returns {boolean}
*/
let isNumeric = (value) => {
Expand Down Expand Up @@ -365,6 +365,10 @@ window.Colorpicker = (() => {
preview.className = "color-preview";
field.parentNode.insertBefore(preview, field.nextSibling);

field.ownerDocument.defaultView.addEventListener("resize", () => {
this.reposition();
});

preview.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
Expand Down Expand Up @@ -692,9 +696,24 @@ window.Colorpicker = (() => {
*/
this.reposition = () => {
if (wrapper.classList.contains("visible")) {
let pos = ["bottom", "left"];
let rect = preview.getBoundingClientRect();
wrapper.style.top = (rect.top + preview.offsetHeight) + "px";
wrapper.style.left = rect.left + "px";
let top = rect.top + preview.offsetHeight;
let left = rect.left;

if (wrapper.offsetHeight + top > window.innerHeight) {
top = rect.top - wrapper.offsetHeight;
pos[0] = "top";
}

if (wrapper.offsetWidth + left > window.innerWidth) {
left = rect.left - wrapper.offsetWidth + preview.offsetWidth;
pos[1] = "right";
}

wrapper.setAttribute("data-pos", pos.join("-"));
wrapper.style.top = top + "px";
wrapper.style.left = left + "px";
}
};

Expand Down
4 changes: 4 additions & 0 deletions src/scss/include/settings/_colorpicker.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ div.color-picker {

$leftColWidth: 160px;

&[data-pos='bottom-right'], &[data-pos='top-right'] {
margin-left: 10px;
}

&.visible {
display: block;
}
Expand Down

0 comments on commit f5e1562

Please sign in to comment.