Подтвердить что ты не робот

Используя CSS, можете ли вы применить градиентную маску для перехода к фону по тексту?

У меня есть полноэкранное фиксированное фоновое изображение. Я хотел бы, чтобы текст в моем прокручиваемом div исчезал вверху, предположительно, применяя градиентную маску к фону только в верхней части div. Я заинтересован в том, чтобы текст выглядел так, как будто он исчезает, поскольку пользователь прокручивает вниз, но все еще имеет большую площадь полной непрозрачности для фактического чтения текста.

Я знаю, что в webkit есть маскирующие параметры, но я не могу найти способ переходить на фон страницы поверх содержащегося текста, применяя только градиент к небольшой части элемента.

Надеюсь, я достаточно описателен.

Спасибо.

4b9b3361

Ответ 1

Мне было интересно это точно так же. Решение на самом деле довольно простое. Хотя это, конечно, современная функция CSS3, поэтому вы придерживаетесь совместимости с браузером.

Webkit может позаботиться об этом с помощью одной строки CSS:

-webkit-mask-image: -webkit-gradient(linear, left 90%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)))

Это уменьшило бы нижние 10% любого элемента, к которому он применим, не используя даже столько, сколько изображение. Вы можете добавить padding-bottom: 10%, чтобы убедиться, что контент только угас, когда прокручивается больше. Источник: http://www.webkit.org/blog/181/css-masks/

Резервное копирование Mozilla (Gecko) немного сложнее: вы можете использовать функцию 'mask', но для этого требуется SVG-изображение, Вы можете попробовать base64 вставить это изображение в таблицу стилей...

Ответ 2

Если вы затухаете до сплошного цвета, вы можете использовать элемент psudo:

.image-container {
    position: relative;
    display: inline-block;
  }

.image-container:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 55%;
  bottom: 0;
  background: -webkit-linear-gradient(transparent, #FFF) left repeat;
  background: linear-gradient(transparent, #FFF) left repeat; 
}
<div class="image-container">
  <img src="https://photosharingsites.files.wordpress.com/2014/11/tiger-wild-cat-animal-winter-snow-wallpapers-free-backgrounds.jpg?w=474&h=344" alt="don't shoot me">
  </div>

Ответ 3

Предполагая, что я правильно понимаю, что вы хотите, вы можете дублировать верхние 300-пиксельные пиксели вашего изображения и применять градиент прозрачности к ним в Photoshop (делая верх полностью непрозрачным и снизу полностью прозрачным).

Затем поместите это изображение в div или какой-либо другой элемент, зафиксированный в верхней части фиксированного изображения, но с высоким z-index. Затем основной текст будет прокручиваться по фону, но под наложением div и исчезать, когда наложение становится более непрозрачным в верхней части экрана.