CSS анимация div снизу от высоты - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь добиться следующего анимационного текста div снизу для его полной высоты. Я могу сделать это с помощью JavaScript, когда я могу получить его высоту для TransformY. Есть ли способ сделать это с чистым CSS?

(обратите внимание, что transformY в настоящее время жестко задан для демонстрации).

$('.trigger').click(function() {
  $('.inner').css({"transform": "translateY(73px)"});
});
.wrap {
  position: absolute;
  width: 200px;
  height: 100px;
  top: 50px;
  left: 0;
  overflow: hidden;
  background-color: #333;
  color: #FFF;
}

.inner {
     position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    margin: 0;
    padding: 5px;
    color: #fff;
    font-size: 15px;
    background: rgba(0,0,0,0.5);
    box-sizing: border-box;
    transition-property: transform;
    transition-duration: 0.2s;
    transition-timing-function: ease-out;
    transform: translate(0, 100px);
  
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button class="trigger">
  show it
</button>

<div class="wrap">
  <div class="inner">Lorem ipsum dolor</div>
</div>

1 Ответ

0 голосов
/ 31 октября 2018

используйте top:100%, чтобы изначально скрыть текст, поскольку процентное значение в верхней части учитывает высоту контейнера. Затем используйте transformY(-100%), чтобы показать его, поскольку процент внутри преобразования учитывает высоту преобразованного элемента:

/*$('.trigger').click(function() {
  $('.inner').css({
    "transform": "translateY(-100%)"
  });
});*/
.wrap {
  width: 200px;
  height: 100px;
  margin:10px;
  overflow: hidden;
  background-color: #333;
  color: #FFF;
  position:relative;
}

.inner {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  padding: 5px;
  color: #fff;
  font-size: 15px;
  background: rgba(0, 0, 0, 0.5);
  box-sizing: border-box;
  transition: transform 0.2s ease-out;
}
.wrap:hover .inner{
 transform:translateY(-100%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button class="trigger">
  show it
</button>

<div class="wrap">
  <div class="inner">Lorem ipsum dolor<br>Lorem ipsum dolor</div>
</div>

<div class="wrap">
  <div class="inner">Lorem ipsum dolor</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...