Презентация про CSS3 и HTML5 на них же
31 Mar, 2010Я показывал ее на недавнем Openwebcamp. Презентация на CSS3 и HTML5 без джаваскрипта. Как надо работает только в Safari и Хроме, но вы уже привыкли, да?
Предыстория
Началось с того что мне нужно было сделать доклад об использовании новых технологий. Делать его в Powerpoint и потом все время говорить «Ну вы это легко проверите в своём браузере» мне не нравилось, и я решил сделать презентацию целиком на этих эффектах. Вот что получилось. То что получилось устроить все без Javascript — случайность. Приятная.Сразу о поддержке браузеров
Это всего лишь презентация, и я c самого начала не преследовал цель полной кроссбраузерности. Мне было важно чтобы она работала в моем Сафари. Однако, в Опере и Фаерфоксе она будет работать, просто в некоторых местах коряво, а кое-где очень коряво. В Хроме она работает отлично, но иногда по непонятным мне причинам хром делает что-то вроде «Я устал от твоего CSS3» и опускает руки. Редко. Вобщем Сафари и Хром наш выбор сегодня.Презентация
В презентации которую я показывал на конференциях ссылки были скрыты, было видно только их черную границу справа, которая становилась красной при фокусе на ссылке. Однако чтобы можно было смотреть ее в интернете, я сделал ссылки видимыми, кликайте.о том как это сделано
Структура кода примерно такая:- <body>
- <section id="slide1">
- <h1>CSS3 и HTML5</h1>
- <p>Openwebcamp, Киев, 2010</p>
- </section>
- <section id="slide2">
- ...
section
— отдельный слайд. Всем им задан:
- section{
- position:absolute;
- top:0;left:0;
- height:100%;
- opacity:0;/*по умолчанию все слайды скрыты*/
- }
section
:
- <ul>
- <li><a tabindex="100" href="#slide1">slide1</a></li>
- ...
Но как же я переключаю слайды? Это делается с помощью псевдокласса :target
.
Этот селектор указывает на блоки, которые являются «адресом» внутренней ссылки. То есть при blabla.html#slide21, для блока у которого id="slide21" сработает :target
.
Результат в CSS выглядит так:
- section:target{
- opacity:1;
- }
- section{
- transition:all 1s linear;
- }
- .effect-slideleft{
- left:-100%;
- opacity:1;
- transition:all 1s ease-in-out;
- }
- .effect-rotate{
- transform:rotate(360deg) scale(.01) translate(50%, 50%);
- transition:all 1s ease-in-out;
- }
Как переключать слайды пультом?
Я написал небольшой applescript, который по нажатию Apple Remote табулировался по ссылкам навигации (вот зачем tabindex), и по нажатию на пульте «Play» — кликал на них. Это единственная часть которую по понятным причинам трудно реализовать совсем без скрипта.Хотя у меня была идея построить все на -webkit-transition-delay (расписать в CSS появление каждого слайда по времени). Но тогда даже я сам считал бы себя психом.
Если кому-то интересно итоговый скрипт выглядел примерно так (табулирование + enter):
- on nextElement()
- simulate keycode 48 with option
- simulate keycode 76
- end nextElement
Почитать
- Сама презентация и ее ядро
- CSS3.info
- HTML5 спецификация
- Еще вариант движка на Django
- S5 один из первых движков для презентаций в браузере
37 комментариев к “Презентация про CSS3 и HTML5 на них же”