The following code lets my button glow in an animation on hover.
Now im trying to make it work without the need to hover over it.
Usually, i would go for .class:hover and try to edit something there. But a bit confused on this one, since there is only 1 line in that attribute.
Thanks for any help
.drts-bs-btn-outline-primary {
width: 220px;
height: 50px;
border: none;
outline: none;
color: #fff;
background: #111;
cursor: pointer;
position: relative;
z-index: 0;
border-radius: 10px;
}
.drts-bs-btn-outline-primary:before {
content: '';
background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
position: absolute;
top: -2px;
left:-2px;
background-size: 400%;
z-index: -1;
filter: blur(5px);
width: calc(100% 4px);
height: calc(100% 4px);
animation: glowing 20s linear infinite;
opacity: 0;
transition: opacity .3s ease-in-out;
border-radius: 10px;
}
.drts-bs-btn-outline-primary:active {
color: #000
}
.drts-bs-btn-outline-primary:active:after {
background: transparent;
}
.drts-bs-btn-outline-primary:hover:before {
opacity: 1;
}
.drts-bs-btn-outline-primary:after {
z-index: -1;
content: '';
position: absolute;
width: 100%;
height: 100%;
background: #111;
left: 0;
top: 0;
border-radius: 10px;
}
@keyframes glowing {
0% { background-position: 0 0; }
50% { background-position: 400% 0; }
100% { background-position: 0 0; }
}
CodePudding user response:
The only reason it wasn't working was because the animation was set to opacity: 0;
until it was hovered. With the code below you won't need the .drts-bs-btn-outline-primary:hover:before { opacity: 1; }
css rule anymore
.drts-bs-btn-outline-primary {
width: 220px;
height: 50px;
border: none;
outline: none;
color: #fff;
background: #111;
cursor: pointer;
position: relative;
z-index: 0;
border-radius: 10px;
}
.drts-bs-btn-outline-primary:before {
content: '';
background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
position: absolute;
top: -2px;
left:-2px;
background-size: 400%;
z-index: -1;
filter: blur(5px);
width: calc(100% 4px);
height: calc(100% 4px);
animation: glowing 20s linear infinite;
transition: opacity .3s ease-in-out;
border-radius: 10px;
}
.drts-bs-btn-outline-primary:active {
color: #000
}
.drts-bs-btn-outline-primary:active:after {
background: transparent;
}
.drts-bs-btn-outline-primary:after {
z-index: -1;
content: '';
position: absolute;
width: 100%;
height: 100%;
background: #111;
left: 0;
top: 0;
border-radius: 10px;
}
@keyframes glowing {
0% { background-position: 0 0; }
50% { background-position: 400% 0; }
100% { background-position: 0 0; }
}
<button >Click Me!</button>
CodePudding user response:
To make the button glow even when not hovering, you should move the contents of .drts-bs-btn-outline-primary:hover:before
(note the :hover) into .drts-bs-btn-outline-primary:before
(note the lack of :hover). In other words, you should delete the opacity: 0;
line.