2016-06-25 4 views
-1

Ive искал интернет в течение нескольких часов, и я не могу найти решение для того, что я хотел бы сделать.CSS translate3d

на ребенка у меня есть:

top: auto; 
    bottom: 0; 
    padding: 1em; 
    height: 100%; 
    background: red; 
    color: #3c4a50; 
    -webkit-transition: -webkit-transform 0.35s; 
    transition: transform 0.35s; 
    -webkit-transform: translate3d(0,93px,0); 
    transform: translate3d(0,93px,0); 

И по наведению у меня есть:

-webkit-transform: translate3d(0,0,0); 
    transform: translate3d(0,0,0); 

Что это делает, начиная ось Y от верхней и толкая его вниз 93px.

Мне нужно, чтобы меня перевернули и сделаем так, чтобы он показывал 93px на дне. Поэтому мне нужно, чтобы он начинал снизу и тянул вверх, начиная с вершины и толкаясь вниз.

Я не вдавался в детали с html, потому что я не думал, что это будет важно для этого. если это необходимо, дайте мне знать.

я нашел вещи говорят использование:

transform-origin: center bottom; 

Однако это я не смог попасть на работу.

Любая помощь приветствуется, как всегда.

Приветствия

UPDATE

Тестирование здесь, чтобы увидеть, если его работает должным образом

.parent { 
 
    position: relative; 
 
    height: 150px; 
 
    background-color: gray; 
 
    width: 50%; 
 
    float:left; 
 
    overflow:hidden; 
 
} 
 

 
.child { 
 
    position: absolute; 
 
    bottom: -100%; 
 
    padding: 1em; 
 
    height: 100%; 
 
    width:100%; 
 
    background: red; 
 
    color: #3c4a50; 
 
    -webkit-transition: -webkit-transform 0.35s; 
 
    transition: transform 0.35s; 
 
    -webkit-transform: translate3d(0,-93px,0); 
 
    transform: translate3d(0,-93px,0); 
 
} 
 

 

 
.child:hover{ 
 
    -webkit-transform: translate3d(0,0px,0); 
 
    transform: translate3d(0,0px,0); 
 
    bottom:0px; 
 
}
<div class="parent"> 
 
    <div class="child"></div> 
 
</div>

ответ

1

Вот 2 способа, с позиции bottom и flex.

.parent { 
 
    position: relative; 
 
    height: 150px; 
 
    background-color: gray; 
 
    width: 50%; 
 
    float:left; 
 
    overflow:hidden; 
 
} 
 

 
.child { 
 
    position: absolute; 
 
    height: 100%; 
 
    background-color: blue; 
 
    bottom: -100%; 
 
    width: 100%; 
 
    transform: translate3d(0, -93px, 0); 
 
    transition:.3s; 
 
} 
 

 

 
.child:hover{ 
 
    transform: translate3d(0, 0px, 0); 
 
    bottom:0; 
 
}
<div class="parent"> 
 
    <div class="child"></div> 
 
</div>

+0

Причина того, что не будет работать потому, что высота установлена ​​на 100%. Или, по крайней мере, насколько я не могу сказать. Я внес изменения в сообщение, чтобы сеять вас точным css. Я попытался реализовать то, что вы разместили, и его то же, что я и пробовал раньше. -93 все еще тянет сверху. Мне нужно сделать 0 оси Y в начале и выставить только 93px ребенка. – sean

+0

По существу вместо 0 для Y на идентификаторе зависания, как это сделать, поэтому я должен использовать 100%. В настоящее время, если я использую 100% при не зависании ребенка, он все это сбрасывает. Поэтому мне нужно отменить Y или, по крайней мере, появиться. Причина, по которой я пытаюсь достичь этого, - это глобальные причины CSS. Я мог бы понять это в px для каждого div, который имеет разные размеры. Представьте, что 1 div на странице - 500px, а другой - только 200px. Если я смогу понять, как раскрыть его снизу, а не толкать вниз, я могу сохранить его глобальным. Имеет ли это смысл? – sean

+0

Как в новом редактировании? – Erevald