2017-02-28 2 views
1

내 페이지에는 div가 표시하는 내용 (실제로는 단어)에 따라 세 가지 배경색이 있습니다.CSS 전환시 배경색 변경

색상이 지금 변경되지만 예상대로 부드럽게 전환되지 않습니다. 색깔은 변화없이 작동하면서 잔인하게 변화합니다.

.gradient-low{ 
background: #ddd6f3; 
background: -webkit-linear-gradient(to left, #faaca8 , #ddd6f3); 
background: linear-gradient(to left, #faaca8 , #ddd6f3); 
transition-duration: 0.4s; 
} 

.gradient-moderate{ 
background: #ff6e7f; 
background: -webkit-linear-gradient(to left, #ff6e7f , #bfe9ff); 
background: linear-gradient(to left, #ff6e7f , #bfe9ff); 
transition-duration: 0.4s; 
} 

.gradient-high{ 

background: #EECDA3; 
background: -webkit-linear-gradient(to left, #EF629F , #EECDA3); 
background: linear-gradient(to left, #EF629F , #EECDA3); 
transition-duration: 0.4s; 
} 

당신은 색상의 변화가 점진적으로 원활하게 운영되도록 제안이 있습니까 : 여기

내 CSS입니까?

+0

게시하시기 바랍니다 귀하의 HTML을 확인하시기 바랍니다. –

+0

올바르게 기억하면 배경 이미지가 애니메이션 속성이 아닙니다. 그것이 나이고 그라디언트가 필요한 경우 여러 오버레이를 사용하고 필요할 때마다 페이드 아웃합니다.하지만 성능이 크게 떨어질 수는 있습니다. – chrism

답변

1

불행히도 현재 CSS 그래디언트를 전환 할 수 없습니다. 그러나 비슷한 효과를 내기 위해이 문제를 해결할 수 있습니다.

아래 CSS는 그라데이션을 ::before 가상 클래스로 이동합니다. 이러한 그라디언트는 이제 투명에서 2 차 색상으로 변하기 때문에 클래스 자체의 단색 배경 전환이 백그라운드에서 볼 수 있습니다. 여기

.gradient-low { 
    background: #ddd6f3; 
    transition: background 0.4s; 
} 

.gradient-low::before { 
    height: 100%; 
    width: 100%; 
    content: ''; 
    position: absolute; 
    left: 0px; 
    top: 0px; 
    background: linear-gradient(to left, #faaca8 , rgba(0,0,0,0)); 
} 

전체 바이올린 : https://jsfiddle.net/mstringfellow/zftzrobv/

+0

흥미 롭습니다. 전환 기간을 1 초로 변경 했으므로 꽤 좋습니다. 힌트를 가져 주셔서 감사합니다! – mattvent

1

이 가능하지 않다 전환을 사용하지만 우리는 CSS 애니메이션 및 키 프레임 애니메이션을 사용할 수 있습니다. 이 시도 :

.gradient-high{ 

background: #EECDA3; 
background: -webkit-linear-gradient(to left, #EF629F , #EECDA3); 
background: linear-gradient(to left, #EF629F , #EECDA3); 
animation-name: drop; 
    animation-iteration-count: 1; 
    animation-timing-function: ease-out; 
    animation-duration: 5s; 
} 

@keyframes drop { 
    0% { 
    transform: translateY(-100%); 
    } 
    100% { 
    transform: translateY(50); 
    } 
} 

완전한 작업, 예를 들어, 너무 FIDDLE

+0

다른 가능한 해결책으로 보입니다. 그것은 눈에 약간 힘들어 보이는 것처럼 보이지만, 시도 할 것입니다. 감사. – mattvent