2016-11-21 2 views
1

Я новичок в анимации. И я использую scalex() для анимации области моего div, но которые производят масштабирование в обоих направлениях onclick на соответствующий div.I'm добавил фрагмент ниже.Как можно масштабировать только в положительном направлении x?

document.getElementById("match").addEventListener("click",function(){ 
 
    document.getElementById("match").classList.add("anim"); 
 
});
#match{ 
 
height:100px; 
 
    width:100px; 
 
    background-color:red; 
 
    } 
 

 
.anim{ 
 
    animation : scale 5s linear 1; 
 
} 
 

 
@keyframes scale{ 
 
    0%{ 
 
     transform: scaleX(1); 
 
    } 
 
    50%{ 
 
     transform: scaleX(1.5); 
 
    } 
 
    100%{ 
 
     transform: scaleX(2); 
 
    } 
 
}
<div id="match"> </div>

На приведенном выше коде я пытаюсь достичь div области, которая масштабирования только на положительном x-direction.How добиться?

ответ

1

Установите значение transform-origin как left так, чтобы левый край ящика оставался фиксированным.

document.getElementById("match").addEventListener("click", function() { 
 
    document.getElementById("match").classList.add("anim"); 
 
});
#match { 
 
    height: 100px; 
 
    width: 100px; 
 
    background-color: red; 
 
} 
 
.anim { 
 
    animation: scale 5s linear 1; 
 
    transform-origin: left; 
 
} 
 
@keyframes scale { 
 
    0% { 
 
    transform: scaleX(1); 
 
    } 
 
    50% { 
 
    transform: scaleX(1.5); 
 
    } 
 
    100% { 
 
    transform: scaleX(2); 
 
    } 
 
}
<div id="match"></div>

+1

Тпй ... это новое знание ** ** для меня –

+1

Вы приветственное @WhiteMaskers. «Transform-origin» всегда указывает, какая точка должна быть фиксированной. По умолчанию это '50% 50%' (означает, что центральная точка поля исправлена). – Harry

Смежные вопросы