CSS

スポンサー広告

スターウォーズ風オープニングロールをCSSで実装してみた。

2017/04/07

むかし、むかし、あるところにおじいさんとおばあさんがいました。

おばあさんは川へ洗濯に、おじいさんは山へ芝刈りに行きました。

おばあさんが川で洗濯していると、大きな桃が、どんぶらこ、どんぶらこ、と流れてきました。おばあさんはその大きな桃をひろいあげました。

すると、おばあさんはその桃をむしゃむしゃと食べ始めました。桃の実をあらかた平らげると空腹が満たされ、おじいさんの分が残っていないことに気づきました。

なかったことにしました。

かつて大きかった桃の、残りかすが、どんぶらこ、どんぶらこと流れていきました。

CSS3やCSS2.1などのプロパティーもブラウザ実装が進んできておりますので、自習がてらにスターウォーズ風オープニングロールをCSSで実装してみた。

あちこちにもっとよくできたものがありますが、せっかく作成したので備忘録的にも残しておきたいと思います。

CSSのanimationというプロパティーがありまして、以前ならJavaScriptでsetTimeoutか何かで位置を数ピクセルずつコンマ何秒おきに変化させるスクリプトが必要だったのですがCSSだけでできるようになっています。

テロップ部分にpositionのabsoluteを設定してanimationでtopを移動してあげればあとは台形に変形するCSSのプロパティーのtransformを設定すれば出来上がりです。

HTML

むかし、むかし、あるところにおじいさんとおばあさんがいました。

おばあさんは川へ洗濯に、おじいさんは山へ芝刈りに行きました。

おばあさんが川で洗濯していると、大きな桃が、どんぶらこ、どんぶらこ、と流れてきました。おばあさんはその大きな桃をひろいあげました。

すると、おばあさんはその桃をむしゃむしゃと食べ始めました。桃の実をあらかた平らげると空腹が満たされ、おじいさんの分が残っていないことに気づきました。

なかったことにしました。

3重構造になっています。

CSS
.screen{
	width:100%;
	max-width:600px;
	height:200px;
	background-color:#000;
	overflow:hidden;
	position:relative;
}
.outer{
	width:80%;
	height:200px;
	overflow:hidden;
	position:absolute;
	left:8%;
	top:-10px;
	background-color:#000;
 	transform:perspective(100px) rotateX(30deg);
  }
.roll{
	padding-top:200px;
	animation: anime1;
	animation-duration: 20s;
	animation-timing-function:linear;
	animation-iteration-count: infinite;
	position:absolute;
	font-weight:bold;
	color:#ff0;
}
@keyframes anime1{
	0% {top: 0;}
	100% {top: -600px;}
}

これで冒頭のスターウォーズ風オープニングロールをCSSで実装しています。ここで告白いたしますが、わたくし、なぜか縁なくスターウォーズの映画自体まともに1本も見たことがありません。せいぜいどっか一部を10分程度だと思いますのでスターウォーズ風オープニングロールも怪しいものです。

一応HTMLの説明です。3重構造の一番内側のdiv要素内は普通にHTMLを書いていただければ大丈夫なはずです。定義リストで役名、役者名とか見出し要素と段落要素で協賛、何々株式会社とかでいいと思います。

一番内側のdiv要素に対してanimateでtopを指定して動かせるようにposition:absolute;を設定します。そしていきなり文字が現れないように上余白、padding-top:200px;を設定しています。

その親要素には幅と高さを設定してoverflow:hidden;を追加します。また内側のdiv要素のposition:absolute;の起点になるようにposition:absolute;を設定します。(まださらに親要素に対して位置決めしているのでabsoluteにしています。position:relative;にして位置決めはパディングでもいいかもしれません)

むかし、むかし、あるところにおじいさんとおばあさんがいました。

おばあさんは川へ洗濯に、おじいさんは山へ芝刈りに行きました。

おばあさんが川で洗濯していると、大きな桃が、どんぶらこ、どんぶらこ、と流れてきました。おばあさんはその大きな桃をひろいあげました。

すると、おばあさんはその桃をむしゃむしゃと食べ始めました。桃の実をあらかた平らげると空腹が満たされ、おじいさんの分が残っていないことに気づきました。

なかったことにしました。

ちょっと実際とは違いますが,親要素の黒枠な中に赤枠の要素を入れてはみ出した部分を非表示にします。そして赤枠を上にずらしていけばスクロールが完成です。

むかし、むかし、あるところにおじいさんとおばあさんがいました。

おばあさんは川へ洗濯に、おじいさんは山へ芝刈りに行きました。

おばあさんが川で洗濯していると、大きな桃が、どんぶらこ、どんぶらこ、と流れてきました。おばあさんはその大きな桃をひろいあげました。

すると、おばあさんはその桃をむしゃむしゃと食べ始めました。桃の実をあらかた平らげると空腹が満たされ、おじいさんの分が残っていないことに気づきました。

なかったことにしました。

  1. 一番内側のdivがスクロールしていくのでここにCSSのaminateを設定します。必ずしないといけないことが名前を付けることと変化を何秒で終わらすかです。

     

  2. animation: anime1;となっているのが名前です。anime1というのは任意の名前を付けてください。本当はanimation-nameというプロパティー名が正式です。animationはショートハンドプロパティーです。borderでborder-styleやboreder-colornなど設定できるようなものです。
  3. animation-duration: 20s;がアニメーション効果を何秒かけて実行するのかです。今回は20秒でワンパターンです。
  4. そして@keyframes anime1がアニメーションの中身になります。@keyframesの後ろにanimation-nameでつけた名前を書きます。今回は名前 anime1のCSSプロパティーtopを0から-600pxまでアニメーションしてねということです。それ以外にも背景色やら幅や高さなど複数のCSSプロパティーをカンマ区切りで初期値、最終値で指定できます。また、半分まで来た時に別の指定をしたいときには50% {color: #f00;}みたいにこれも複数書くことができます。

最低限これで動きます。

アニメーションは下の6つ7つ(2017/05/25追記)のプロパティーがあります。

  1. animation-name 名前を付ける
  2. animation-duration アニメーションの時間
  3. animation-timing-function イージングのつけ方
  4. animation-delay 何秒後から始めるか
  5. animation-iteration-count 繰り返しの数
  6. animation-direction 逆再生するか
  7. animation-fill-mode 再生後のスタイル(2017/05/25追記)

animation-timing-functionは初期値がeaseになっておりイージングがかかっていますのでanimation-timing-function:linear;で同じ速度で動くように指定しています。

本当は繰り返しいらなのですがanimation-iteration-count: infinite;で無限に繰り返すように指定しています。

あとは、台形変形して文字色背景色などの設定で出来上がりです。

CSSのtransformプロパティーを使います。

むかし、むかし、あるところにおじいさんとおばあさんがいました。

おばあさんは川へ洗濯に、おじいさんは山へ芝刈りに行きました。

おばあさんが川で洗濯していると、大きな桃が、どんぶらこ、どんぶらこ、と流れてきました。おばあさんはその大きな桃をひろいあげました。

すると、おばあさんはその桃をむしゃむしゃと食べ始めました。桃の実をあらかた平らげると空腹が満たされ、おじいさんの分が残っていないことに気づきました。

なかったことにしました。

perspectiveは奥行きを表すZ平面と視点の距離になりますので近くで見るほど極端になります。rotateXはX軸に対しての傾きで0degで垂直になって普通の見え方で90degで真っ平になって高さ0で見えなくなります。

あとは微調整ですね。一番親のdiv要素の背景を黒にして2番目のdivを中央に配置したり、ちょっと親より小さくして、下辺の方は左右がちょっとだけ切れるようにしてあったりします。

自分で書けばいろいろと調整できたり、CSSの理解も深まりますのでコピペで動きを確認してからカスタマズしてくみてださい。

animationプロパティ can i use

transformプロパティ can i use

流れていく文字はアクセシビリティー的どうかと思いますので、装飾的な画像のような使い方がおすすめです。文章として読んでいただきたい場合は、速度を調節できるようにするとか、止めることができるようにするとかの対策をしてください。

rssfeed
コメント
2021年01月10日 13時25分
UyyYM さん
Drugs information. Brand names. <a href="https://prednisone4u.top">how can i get generic prednisone</a> in US. Everything trends of medication. Read now.
<a href=https://fengshuitricks.com/feng-shui-garden/#comment-3308>All trends of pills.</a> <a href=http://m.ganggo.org/board/news_view.php?no=19&uid=&fid=&select=&textfield=&code_main=&code=mentoring&table=community&catagory=>All about meds.</a> <a href=https://egyniletraining.com/class-aptent-taciti-sociosqu/#comment-22189>All what you want to know about medication.</a> 4ee9072
2021年01月11日 23時51分
DavidAew さん
Medicines information. What side effects can this medication cause?
how to buy norvasc https://norvasc4u.top in the USA
Everything about medicine. Get information here.

http://hkm-t.com/product?product_id=144 Actual about drugs. https://acharefacil.com.br/3197557799corpetesecorsetsembh Actual about drug. https://jpn.itlibra.com/article?id=20138 All trends of drug. 4ee9072
2021年02月13日 05時26分
dmdmyimnei さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
<a href="http://www.g25oi2503cgo3770bqwf5m0fq4p5y36os.org/">admdmyimnei</a>
[url=http://www.g25oi2503cgo3770bqwf5m0fq4p5y36os.org/]udmdmyimnei[/url]
dmdmyimnei http://www.g25oi2503cgo3770bqwf5m0fq4p5y36os.org/
2021年05月25日 13時44分
bzlfyqrwj さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
bzlfyqrwj http://www.gby94ae84prqyai59v81l1h43800z5b3s.org/
[url=http://www.gby94ae84prqyai59v81l1h43800z5b3s.org/]ubzlfyqrwj[/url]
<a href="http://www.gby94ae84prqyai59v81l1h43800z5b3s.org/">abzlfyqrwj</a>
2021年07月15日 01時13分
qvhoctzqgt さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
qvhoctzqgt http://www.gts468q7n6h94896i841fze8oul5e2yvs.org/
[url=http://www.gts468q7n6h94896i841fze8oul5e2yvs.org/]uqvhoctzqgt[/url]
<a href="http://www.gts468q7n6h94896i841fze8oul5e2yvs.org/">aqvhoctzqgt</a>
2021年07月22日 21時11分
mpylnshkzj さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
mpylnshkzj http://www.g3za37h357eo2of3589r8g8x9iqca60ps.org/
[url=http://www.g3za37h357eo2of3589r8g8x9iqca60ps.org/]umpylnshkzj[/url]
<a href="http://www.g3za37h357eo2of3589r8g8x9iqca60ps.org/">ampylnshkzj</a>
2021年07月23日 08時46分
epwlftttex さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
epwlftttex http://www.gs6l0g70616csp4icaj70z2s4803f4pvs.org/
[url=http://www.gs6l0g70616csp4icaj70z2s4803f4pvs.org/]uepwlftttex[/url]
<a href="http://www.gs6l0g70616csp4icaj70z2s4803f4pvs.org/">aepwlftttex</a>
2021年08月04日 16時45分
hpwnlyfe さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
hpwnlyfe http://www.g49o32b0c047yg2c7ozznax310hes817s.org/
<a href="http://www.g49o32b0c047yg2c7ozznax310hes817s.org/">ahpwnlyfe</a>
[url=http://www.g49o32b0c047yg2c7ozznax310hes817s.org/]uhpwnlyfe[/url]
2021年09月15日 05時25分
xciplivvx さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
xciplivvx http://www.gd801dm5yn3n2ysj9nqh1b6s72p52947s.org/
<a href="http://www.gd801dm5yn3n2ysj9nqh1b6s72p52947s.org/">axciplivvx</a>
[url=http://www.gd801dm5yn3n2ysj9nqh1b6s72p52947s.org/]uxciplivvx[/url]
2021年10月19日 17時09分
rnrsrijlqr さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
[url=http://www.gj49423d519pt3f1ej5ce2rfv8r71s4qs.org/]urnrsrijlqr[/url]
rnrsrijlqr http://www.gj49423d519pt3f1ej5ce2rfv8r71s4qs.org/
<a href="http://www.gj49423d519pt3f1ej5ce2rfv8r71s4qs.org/">arnrsrijlqr</a>
2021年12月03日 00時37分
bhkbgggb さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
<a href="http://www.g9e0lzl4aqb2o56u45rkt8i3q75539d8s.org/">abhkbgggb</a>
[url=http://www.g9e0lzl4aqb2o56u45rkt8i3q75539d8s.org/]ubhkbgggb[/url]
bhkbgggb http://www.g9e0lzl4aqb2o56u45rkt8i3q75539d8s.org/
2022年01月01日 10時25分
crtwzzehmz さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
<a href="http://www.gs4g37qjut72hg2y6mp7uk4x45964o59s.org/">acrtwzzehmz</a>
crtwzzehmz http://www.gs4g37qjut72hg2y6mp7uk4x45964o59s.org/
[url=http://www.gs4g37qjut72hg2y6mp7uk4x45964o59s.org/]ucrtwzzehmz[/url]
2022年01月08日 20時53分
forcyfetx さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
<a href="http://www.ggu48890j3f7k2j4941jsexijd2104qds.org/">aforcyfetx</a>
forcyfetx http://www.ggu48890j3f7k2j4941jsexijd2104qds.org/
[url=http://www.ggu48890j3f7k2j4941jsexijd2104qds.org/]uforcyfetx[/url]
2022年01月11日 00時44分
gmmqbowxhd さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
[url=http://www.g4hv1l74i4m6z575xya148l5mtp41ls9s.org/]ugmmqbowxhd[/url]
<a href="http://www.g4hv1l74i4m6z575xya148l5mtp41ls9s.org/">agmmqbowxhd</a>
gmmqbowxhd http://www.g4hv1l74i4m6z575xya148l5mtp41ls9s.org/
2022年01月19日 13時07分
dsnyfynxe さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
<a href="http://www.gf7ws565fv4toue268586y93vf45w7ems.org/">adsnyfynxe</a>
dsnyfynxe http://www.gf7ws565fv4toue268586y93vf45w7ems.org/
[url=http://www.gf7ws565fv4toue268586y93vf45w7ems.org/]udsnyfynxe[/url]
2022年01月22日 12時08分
dqnyllt さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
[url=http://www.g01l1rviync0u51j68b883s3595fux8ps.org/]udqnyllt[/url]
<a href="http://www.g01l1rviync0u51j68b883s3595fux8ps.org/">adqnyllt</a>
dqnyllt http://www.g01l1rviync0u51j68b883s3595fux8ps.org/
2022年02月11日 09時01分
xiwinyewhr さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
xiwinyewhr http://www.g8o7675hni3c6h24r0zl7203tk5rs8pws.org/
[url=http://www.g8o7675hni3c6h24r0zl7203tk5rs8pws.org/]uxiwinyewhr[/url]
<a href="http://www.g8o7675hni3c6h24r0zl7203tk5rs8pws.org/">axiwinyewhr</a>
2022年02月20日 11時30分
vvvvmxwgze さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
[url=http://www.g746tj91k54wp5zb9v0lap3wno9t7251s.org/]uvvvvmxwgze[/url]
vvvvmxwgze http://www.g746tj91k54wp5zb9v0lap3wno9t7251s.org/
<a href="http://www.g746tj91k54wp5zb9v0lap3wno9t7251s.org/">avvvvmxwgze</a>
2022年03月01日 13時21分
imlzeytkz さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
imlzeytkz http://www.g9j82y3374wd7ylh7p6924nodpl6zb97s.org/
[url=http://www.g9j82y3374wd7ylh7p6924nodpl6zb97s.org/]uimlzeytkz[/url]
<a href="http://www.g9j82y3374wd7ylh7p6924nodpl6zb97s.org/">aimlzeytkz</a>
2022年03月02日 11時47分
pptxmtwvnr さん
スターウォーズ風オープニングロールをCSSで実装してみた。/netkansai
<a href="http://www.ge12ld73s7xye93lc49780at61v4hy7is.org/">apptxmtwvnr</a>
[url=http://www.ge12ld73s7xye93lc49780at61v4hy7is.org/]upptxmtwvnr[/url]
pptxmtwvnr http://www.ge12ld73s7xye93lc49780at61v4hy7is.org/

コメントよろしくお願いします。

お名前
コメント