Comments (8)
This is a difficult issue to solve, I will think about it and get back to you.
A possible solution would be to use CSS to disable pointer events on the iframe if it doesn't have any interactive elements.
from coloris.
yesterday I create a workaround for fixit
i'll share my solution I add this at line 959 in coloris.js:
const cover = document.createElement('div')
cover.classList.add('clr-cover');
cover.addEventListener('click', ()=> {
closePicker();
})
picker.appendChild(cover);
and this in coloris.css
#clr-picker .clr-cover {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: transparent;
z-index: -1;
}
this create a transparent layer under the picker that cover all window.
from coloris.
If that kind of fix is good enough for you, then you don't even need to modify coloris.js
. Just add this CSS code to your page:
.clr-picker:after {
content: '';
position: fixed;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
z-index: -1;
background: transparent;
}
But with you won't be able to click outside to close the color picker.
from coloris.
Unfortunately I should close on click outside. And it's not possibile to catch click on pseudo elements.
I try and it's a cool effect also with background color for example with rgba(0, 0, 0, 0.5)
Obv I don't like to have customized library.
If you like it's possibile add a new parameter in settings like "backdrop" if null nothing change and nothing happend , if a color your code can add clr-cover or better clr-backdrop div as backdrop and add style in line with color selected (even transparent or rgb with alpha 0).
from coloris.
In that case here is a version that doesn't force you to modify the color picker itself.
Add this CSS code anywhere in your page:
.clr-picker.clr-open .clr-backdrop {
position: fixed;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
z-index: -1;
background: transparent;
}
And add this Javascript code after initializing the color picker:
function clrFixIframeMouseUp() {
const picker = document.getElementById('clr-picker');
const backdrop = document.createElement('div');
picker.appendChild(backdrop);
backdrop.classList.add('clr-backdrop');
backdrop.addEventListener('click', () => {
Coloris.close();
});
}
// Wait foe the docuemnt to load first
if (document.readyState !== 'loading') {
clrFixIframeMouseUp();
} else {
document.addEventListener('DOMContentLoaded', function () {
clrFixIframeMouseUp();
});
}
from coloris.
Hello @giacomarco, does this solve your problem?
from coloris.
Hi @mdbassit sorry for delay. At this moment I should keep mod inside code because I instance Coloris in a lot of diferents parts and I prefer to have this implementation once for future maintenance.
IF you think thats possibile to implement in your code I can help you (but i'm sure that you don't need my help for this easy things) .
Thank you again for your code and for your help.
from coloris.
Unfortunately, I have no plans to implement this.
from coloris.
Related Issues (20)
- When used in modal dialog-tag, color picker is displayed behind the modal HOT 5
- close dialog box with keyboard HOT 1
- No way to access the current element? HOT 2
- Manually clearing color has unexpected behavior HOT 3
- Enhancement: mirror cursor position/selection when picker is opened with focusInput: true HOT 4
- Allow el configuration property to be the dom element HOT 4
- How do you add a custom input?
- Dragging hue and alpha markers doesn't work on iOS HOT 4
- Reading option with attributes HOT 1
- How to programmatically change the thumbnail color?
- 能增加一个onClose事件监听吗? HOT 1
- Firefox accessing colorAreaDims before initialization HOT 18
- swatchesOnly=true , add input HOT 3
- Default color of input
- Feature request: Close callback HOT 6
- Feature Request: Pipette / Eye Dropper HOT 2
- custom element HOT 4
- Display Value color after refresh page HOT 1
- passive event handler HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coloris.