Похоже, оверлей Apple - это больше, чем просто прозрачность. Любые идеи о том, как добиться этого эффекта с помощью CSS и, возможно, JS?
javascript
css
user-interface
blur
комковатый
источник
источник
Ответы:
Это возможно с CSS3:
Пример здесь => jsfiddle
источник
-moz-filter: blur()
. Вместо этого вы должны использовать SVG-фильтр, подробности смотрите в моем ответе.Вы заставили меня хотеть попробовать, поэтому я сделал, посмотрите пример здесь:
http://codepen.io/Edo_B/pen/cLbrt
С помощью:
Это оно.
Я также считаю, что это может быть сделано динамически для любого экрана, если использовать canvas для копирования текущего объекта и размывания его.
источник
[Редактировать] В будущем (мобильный) Safari 9 будет именно
-webkit-backdrop-filter
для этого. Посмотрите на эту ручку, которую я сделал, чтобы продемонстрировать это.Я думал об этом последние 4 недели и придумал это решение.
Live Demo
[Редактировать] Я написал более глубокий пост на CSS-хитрости
В этом методе используются CSS-регионы, поэтому поддержка браузеров в данный момент не самая лучшая. ( http://caniuse.com/#feat=css-regions )
Ключевой частью этой техники является разделение контента от макета с помощью CSS Region. Сначала определите
.content
элемент с помощью,flow-into:content
а затем используйте соответствующую структуру, чтобы размыть заголовок.Структура макета:
Две важные части этого макета
.header__background
и.phone__content
- это контейнеры, в которых должен передаваться контент.Используя CSS Regions это просто как
flow-from:content
(.content
перетекает в названную областьcontent
)Теперь самое сложное. Мы хотим всегда
.header__background
передавать содержимое через, потому что это раздел, где содержимое будет размыто. (используяwebkit-filter:blur(10px);
)Это делается , чтобы убедиться , что содержание всегда будет течь , хотя . Это преобразование всегда скрывает некоторый контент под заголовком. Исправить это легко добавив
transfrom:translateY(-$HeightOfTheHeader)
.content
.header__background
разместить для преобразования.
В настоящее время это работает в:
источник
Теперь это возможно с FireFox благодаря атрибуту style элемента .
Этот экспериментальный атрибут позволяет использовать любой контент HTML в качестве фонового изображения. Итак, для создания фона вам понадобятся три наложения:
-moz-element
фон, который устанавливает содержимое. Обратите внимание, что FX не поддерживаетfilter: blur()
атрибут, поэтому нам нужен SVG.Итак, соберите:
Фильтр размытия SVG (работает в FX, другие браузеры могут использовать
filter:blur()
):CSS стиль размытия:
Наконец 3 слоя:
Затем, чтобы переместить это, просто установите
background-position
(пример в jQuery, но вы можете использовать что угодно):Вот это как JS Fiddle, только FX.
источник
Проверьте эту демонстрационную страницу.
Эта демонстрация использует html2canvas для рендеринга документа в виде изображения.
http://blurpopup.labs.daum.net/
источник
Это перо, которое я нашел на днях, казалось, прекрасно, просто немного CSS и 21 строчка JavaScript. Я не слышал о команде cloneNode js до тех пор, пока не нашел ее, но она точно работала для того, что мне было нужно.
http://codepen.io/rikschennink/pen/zvcgx
Подробно: A. По сути, он просматривает ваш контент div и вызывает для него cloneNode, поэтому создает дубликат, который затем помещает в переполненный скрытый объект заголовка, расположенный в верхней части страницы. B. Затем он просто слушает прокрутку, так что оба изображения, кажется, совпадают и размывает изображение заголовка ... и BAM. Эффект достигнут.
На самом деле не полностью выполнимо в CSS, пока они не получат небольшую встроенную поддержку языка.
источник
Пример здесь:
http://versie1.com/TEST/ios7/
источник
Вчера сделал короткую демонстрацию, которая на самом деле делает то, о чем вы говорите. http://bit.ly/10clOM9 эта демонстрация выполняет параллакс на основе акселерометра, поэтому лучше всего работает на самом iPhone. Я просто копирую содержимое, которое мы накладываем, в элемент фиксированной позиции, который становится размытым.
примечание: проведите пальцем вверх, чтобы увидеть панель.
(Я использовал ужасные идентификаторы CSS, но вы поняли идею)
источник
Я не очень уверен в этом, я считаю, что CSS не способен сделать это в данный момент
Однако Крис Койер писал о старой технике с несколькими изображениями для достижения такого эффекта, http://css-tricks.com/blurry-background-effect/
источник
Проверьте это http://codepen.io/GianlucaGuarini/pen/Hzrhf Похоже, что это делает эффект без дублирования фонового изображения элемента под себя. См тексты размыты и в примере.
Vague.js
источник
Хорошие новости
На сегодняшний день, 11 апреля 2020 года , это легко возможно благодаря
backdrop-filter
свойству CSS, которое теперь является стабильной функцией в Chrome, Safari & Edge.Я хотел это в нашем мобильном приложении Hybrid, которое также доступно в Android / Chrome Webview и Safari WebView.
Пример кода:
Просто добавьте свойство CSS:
UI Пример 1
Посмотрите, как работает эта ручка, или попробуйте демо:
Пример интерфейса 2
Давайте рассмотрим пример приложения McDonald's, потому что оно довольно красочное. Я взял его скриншот и добавил в качестве фона
body
моего приложения.Я хотел показать текст поверх него с глянцевым эффектом. Используя
backdrop-filter: blur(20px);
наложение выше этого, я смог увидеть это: 😍источник
backdrop-filter
все еще не работает автоматически в Firefox, хотя. Я сомневаюсь, что пользователи будут включать варианты активацииbackdrop-filter
намеренно, просто чтобы увидеть этот эффект.Я использую фильтры SVG для достижения аналогичных эффектов для спрайтов
<feGaussianBlur stdDeviation="10"/>
пример Кейта .<image ...>
тег, чтобы применить его к любому изображению или даже использовать несколько изображений.источник
Это может помочь вам!
Это динамически меняет фон только IOS
источник
Вот мой взгляд на это с помощью jQuery. Решение не является универсальным, то есть нужно изменить некоторые позиции и прочее в зависимости от фактического дизайна.
По сути, я сделал следующее: при клонировании триггера / удалите весь фон (что должно быть размытым) в контейнер с не размытым содержимым (которое, по желанию, имеет скрытое переполнение, если оно не имеет полной ширины) и поместите его правильно. Предостережение заключается в том, что при изменении размера окна размытый div будет не соответствовать оригиналу с точки зрения положения, но это может быть решено с помощью некоторой функции изменения размера окна (честно говоря, сейчас меня это не беспокоит).
Буду очень признателен за ваше мнение об этом решении!
Спасибо
Вот скрипка , не проверенная в IE.
HTML
CSS
JQuery
источник