トップ画像をランダムに表示
ちょと前から、やってみようと思っていたトップ画像のランダム表示。テンプレートのHTMLにJavaScriptの記述があったので、出来るだろうとは思っていたが、相当な苦心の末に、どうにか完成させる事が出来た。
上のブログタイトルの所に出ている背景画像、読み込みの度に違うのが出てくるはずで、現在9枚をランダムに表示中。
表示にはJavaScriptを使っているので、ブラウザの設定で切られている場合には、残念ながら、いつもと同じ画像。
このくらいチョロいよなんて言う余裕はなく、なんで、僕は無償でこんな事をやっているのだろうかと疑問に思ったりして。ちなみに、何度やり直してもうまく行かずに詰まっていたのは、JavaScriptの中に書いたタグの閉じ忘れ・・・。
それはともかく、やってみたい人がいるのではないかと思うので、詳しく解説しておこう。JavaScriptが解らなくても、画像が用意できて、根気があれば何とか出来るはず。
ただし、このままで出来るのはてぃーだブログ限定。てぃーだブログのテンプレートはスタイルシートでスマートに記述してあるので、加工のしやすさはホントに秀逸だ。
他のブログでもちょっと試してみた。FC2ではテーブルを多用してあるので加工が少々大変だができた。livedoorとJUGEMは画像をアップロードするとファイル名を変更されてしまうので、gooはHTMLの編集もできないので、不可。他のブログでもできるかもしれないが、詳しいやり方は解らないし、保証もできない。参考にはなるかもしれないが。
以下、長い上に、全く用のない人もいるだろうから折りたたみ。
後日追記:
改良したのを公開しました。今から試してみる方は、この記事を参考にしつつ「ランダム表示、改良?!」も見てください。ふたつの記事にまたがっていて手間がかかって申し訳ないです。
上のブログタイトルの所に出ている背景画像、読み込みの度に違うのが出てくるはずで、現在9枚をランダムに表示中。
表示にはJavaScriptを使っているので、ブラウザの設定で切られている場合には、残念ながら、いつもと同じ画像。
このくらいチョロいよなんて言う余裕はなく、なんで、僕は無償でこんな事をやっているのだろうかと疑問に思ったりして。ちなみに、何度やり直してもうまく行かずに詰まっていたのは、JavaScriptの中に書いたタグの閉じ忘れ・・・。
それはともかく、やってみたい人がいるのではないかと思うので、詳しく解説しておこう。JavaScriptが解らなくても、画像が用意できて、根気があれば何とか出来るはず。
ただし、このままで出来るのはてぃーだブログ限定。てぃーだブログのテンプレートはスタイルシートでスマートに記述してあるので、加工のしやすさはホントに秀逸だ。
他のブログでもちょっと試してみた。FC2ではテーブルを多用してあるので加工が少々大変だができた。livedoorとJUGEMは画像をアップロードするとファイル名を変更されてしまうので、gooはHTMLの編集もできないので、不可。他のブログでもできるかもしれないが、詳しいやり方は解らないし、保証もできない。参考にはなるかもしれないが。
以下、長い上に、全く用のない人もいるだろうから折りたたみ。
後日追記:
改良したのを公開しました。今から試してみる方は、この記事を参考にしつつ「ランダム表示、改良?!」も見てください。ふたつの記事にまたがっていて手間がかかって申し訳ないです。
てぃーだブログにログインして「デザイン」→「オリジナルデザインの登録」へ。
「スタイルシート」「トップページ」「個別記事」「アーカイブ」の4つが表示される。今回は「スタイルシート」は数値を見るだけで、ほかの3つを加工していく。
まずはトップ画像の大きさを調べる。「スタイルシート」から、以下の部分を探し出す。
これは僕の場合の例で、数値はそれぞれ違ったり、ないモノもあるかもしれないが、必要なのは2カ所。#containerのところにあるwidth:●●pxの数値がトップ画像の幅で、#banner,#subbannerのところにあるheight: ●●pxの数値がトップ画像の高さになる。
実際には、周囲のマージンの分になるのか、この数値よりも縦横20ピクセルくらい大きめに作った方が良い。背景になるので、タグを使った縮小表示などが出来ないため、大きさに合わせた画像を作らないといけない。
また、トップに画像の入っていないテンプレートは、先を読み進んでいくと画像を加える事が出来るが、変則的な形に画像の入っているテンプレートは、申し訳ないが今回は対象外。ブラウザの幅100%に表示するテンプレートも、幅が可変になってしまうので画像の大きさを決められず、適していない。
どうしてもやりたかったら、ひと思いにテンプレートごと変えるとか・・・?
画像の加工に関しては、以前に書いた「ブログのトップ画像を作る」や画像処理関係の本やサイトを参考に。
ランダムに表示を変えるので、最低でも2枚以上のトップ画像が必要。この作った画像に「01.jpg」「02.jpg」「03.jpg」「04.jpg」・・・と01から連番を振って保存。管理画面の「記事の投稿」→「画像・動画の登録、一覧、削除」から画像だけアップロードしておく。
gifとjpgの混在は出来ないので、gifの場合はjpgに変換して保存する。すべてgifの場合には、次のところで拡張子を書き換えても良い。
この画像は出来たという事を前提に、次へ進む。
「オリジナルデザインの登録」の「トップページ」から、上の1行を探し出し、以下のモノと差し替える。
一部修正が必要で・・・
赤い数字の部分に、アップロードした画像の数を入れる。3枚なら3を入れるし、僕は9枚作ったので、9を入れた。
青い文字の部分は僕の場合の例で、実際には自分のブログのIDが入る。
それから、height:180pxの数値を変えると、画像が表示される高さを変える事も出来る。ただし、画像が縮小される訳ではなく、小さくすると上で書いたように画像の下が切れていく。
どこがどうなっているかの詳しい内容は省略するが、乱数を発生させて、連番を振った画像名を表示するという仕組みのJavaScript。最初と最後の行は、どこを加工したのか解りやすいようにするためのコメント行で、省いても良いし、■やその中の文字は変えて構わない。
最後に緑の行だが、ブラウザで無効にしてあったりしてJavaScriptに対応しない場合の対処。ランダム表示は出来ないが「ブログのトップ画像の変更」で表示させた画像が表示される。なので、万全を期す場合には、「ブログのトップ画像の変更」もやった方が良いという事になる。
問題なのは、いくつかのブラウザの場合に、JavaScript無効だとレイアウトが崩れてしまう事がある。書き方は合ってるはずなのに、そこだけが謎のまま。確率的には僅かに1〜2%だろうけど、気になるなぁ。
変更が終わったら「トップページ」を保存、同じように「個別記事」「アーカイブ」も同じ部分を探し出し、書き換えて保存。
と、まぁ、これで出来たはず。
読んでみても難しくて出来そうになかったり、どうしてもうまく行かなかったりした場合には、単純に画像を変更するだけの「ブログのトップ画像の変更」の方を試してみると良いかも。
ちなみに、てぃーだブログでは、ひとつのIDで5個ブログを作れて、非公開にする事も出来る。なので、公開しているブログと別にブログを作って、非公開で実験してみるとイイ。僕は何日も非公開で実験して完成したし。
あ、それから、このままで出来るのは画像の数が1桁(9個まで)の時で、2桁以上になると、また違ってくる。これは、希望があったら書くかも。
あと、良く読んで、何度やっても、うまく行かない場合の質問は、一応コメントなどにて受け付け。ただ、僕も完全には理解していないJavaScriptが含まれるので、あんまり難しい事は聞かないでね。
「スタイルシート」「トップページ」「個別記事」「アーカイブ」の4つが表示される。今回は「スタイルシート」は数値を見るだけで、ほかの3つを加工していく。
まずはトップ画像の大きさを調べる。「スタイルシート」から、以下の部分を探し出す。
#container{ font-size:12px;
width:740px;
background-color:#ffffff;
margin:0px auto;
text-align:left;
border-left:1px solid #8c0000;
border-right:1px solid #8c0000;
}
#banner,#subbanner{
background:#D20900 url(xxx);
padding:0px 10px 10px 10px;
height: 200px;}
これは僕の場合の例で、数値はそれぞれ違ったり、ないモノもあるかもしれないが、必要なのは2カ所。#containerのところにあるwidth:●●pxの数値がトップ画像の幅で、#banner,#subbannerのところにあるheight: ●●pxの数値がトップ画像の高さになる。
実際には、周囲のマージンの分になるのか、この数値よりも縦横20ピクセルくらい大きめに作った方が良い。背景になるので、タグを使った縮小表示などが出来ないため、大きさに合わせた画像を作らないといけない。
また、トップに画像の入っていないテンプレートは、先を読み進んでいくと画像を加える事が出来るが、変則的な形に画像の入っているテンプレートは、申し訳ないが今回は対象外。ブラウザの幅100%に表示するテンプレートも、幅が可変になってしまうので画像の大きさを決められず、適していない。
どうしてもやりたかったら、ひと思いにテンプレートごと変えるとか・・・?
画像の加工に関しては、以前に書いた「ブログのトップ画像を作る」や画像処理関係の本やサイトを参考に。
ランダムに表示を変えるので、最低でも2枚以上のトップ画像が必要。この作った画像に「01.jpg」「02.jpg」「03.jpg」「04.jpg」・・・と01から連番を振って保存。管理画面の「記事の投稿」→「画像・動画の登録、一覧、削除」から画像だけアップロードしておく。
gifとjpgの混在は出来ないので、gifの場合はjpgに変換して保存する。すべてgifの場合には、次のところで拡張子を書き換えても良い。
この画像は出来たという事を前提に、次へ進む。
<div id="banner">
「オリジナルデザインの登録」の「トップページ」から、上の1行を探し出し、以下のモノと差し替える。
<!-- ■■トップ画像表示■■ -->
<SCRIPT LANGUAGE="JavaScript">
<!--
e = Math.floor(Math.random() * 9)
i = e + 1
document.write('<div id="banner" style="background:url(//img01.ti-da.net/usr/kusano/0'+i+'.jpg);padding:0px 10px 10px 10px;height: 180px;">');
-->
</SCRIPT>
<noscript><div id="banner"></noscript>
<!-- ■■トップ画像表示、ここまで■■ -->
一部修正が必要で・・・
赤い数字の部分に、アップロードした画像の数を入れる。3枚なら3を入れるし、僕は9枚作ったので、9を入れた。
青い文字の部分は僕の場合の例で、実際には自分のブログのIDが入る。
それから、height:180pxの数値を変えると、画像が表示される高さを変える事も出来る。ただし、画像が縮小される訳ではなく、小さくすると上で書いたように画像の下が切れていく。
どこがどうなっているかの詳しい内容は省略するが、乱数を発生させて、連番を振った画像名を表示するという仕組みのJavaScript。最初と最後の行は、どこを加工したのか解りやすいようにするためのコメント行で、省いても良いし、■やその中の文字は変えて構わない。
最後に緑の行だが、ブラウザで無効にしてあったりしてJavaScriptに対応しない場合の対処。ランダム表示は出来ないが「ブログのトップ画像の変更」で表示させた画像が表示される。なので、万全を期す場合には、「ブログのトップ画像の変更」もやった方が良いという事になる。
問題なのは、いくつかのブラウザの場合に、JavaScript無効だとレイアウトが崩れてしまう事がある。書き方は合ってるはずなのに、そこだけが謎のまま。確率的には僅かに1〜2%だろうけど、気になるなぁ。
変更が終わったら「トップページ」を保存、同じように「個別記事」「アーカイブ」も同じ部分を探し出し、書き換えて保存。
と、まぁ、これで出来たはず。
読んでみても難しくて出来そうになかったり、どうしてもうまく行かなかったりした場合には、単純に画像を変更するだけの「ブログのトップ画像の変更」の方を試してみると良いかも。
ちなみに、てぃーだブログでは、ひとつのIDで5個ブログを作れて、非公開にする事も出来る。なので、公開しているブログと別にブログを作って、非公開で実験してみるとイイ。
あ、それから、このままで出来るのは画像の数が1桁(9個まで)の時で、2桁以上になると、また違ってくる。これは、希望があったら書くかも。
あと、良く読んで、何度やっても、うまく行かない場合の質問は、一応コメントなどにて受け付け。ただ、僕も完全には理解していないJavaScriptが含まれるので、あんまり難しい事は聞かないでね。
Posted by くさの│2006年03月18日
この記事へのトラックバック
今回は、乱数を使用したジャバスクリプトを紹介します。
乱数とは、ランダムに発生した数値で、任意に特定することができない数値のことを言います。
つまり、予想ができない数値とい...
乱数とは、ランダムに発生した数値で、任意に特定することができない数値のことを言います。
つまり、予想ができない数値とい...
JavaScriptで乱数【ネットビジネス用CGI Perl HTML Javascriptの情報サイト】at 2006年05月26日 23:21
この記事へのコメント
お疲れ様でしたm(__)m
僕も良い写真が撮れたらやってみたいと思います。
僕も良い写真が撮れたらやってみたいと思います。
Posted by しょ~ at 2006年03月18日 12:32
うん、試してみて。うまく行ったら教えてね。
ただ、IE、FireFox、OperaあたりでJavaScript切ると大変な事になるよ。
ただ、IE、FireFox、OperaあたりでJavaScript切ると大変な事になるよ。
Posted by くさの at 2006年03月18日 12:45
やってみたよw
ちゃんとできたっぽぃ(*>∀<)/
でも子供の写真、あんまり画質がよくない(写真をスキャナーで取り込んだやつ)、でもそれ以外は大丈夫かなぁ??
ちゃんとできたっぽぃ(*>∀<)/
でも子供の写真、あんまり画質がよくない(写真をスキャナーで取り込んだやつ)、でもそれ以外は大丈夫かなぁ??
Posted by i-z at 2006年03月18日 13:08
おっ、素早い!
大丈夫できてるね、お疲れ様。
僕も画像はチョコチョコ入れ替えてるから(笑)
大丈夫できてるね、お疲れ様。
僕も画像はチョコチョコ入れ替えてるから(笑)
Posted by くさの at 2006年03月18日 13:14
はじめまして。
凄い勉強になります★
今、ランダムにチャレンジ中ですが、
初心者なので
凄い時間かかってます(TOT)
でも
楽しいので頑張りますッ
(意味不明な報告ですいません)
聞きたい事があります。
>すべてgifの場合は拡張子を書き換えても良い
とはどうやるのですか???
お時間がある時にでも
教えて頂けたら嬉しいです。
宜しくお願いします。
凄い勉強になります★
今、ランダムにチャレンジ中ですが、
初心者なので
凄い時間かかってます(TOT)
でも
楽しいので頑張りますッ
(意味不明な報告ですいません)
聞きたい事があります。
>すべてgifの場合は拡張子を書き換えても良い
とはどうやるのですか???
お時間がある時にでも
教えて頂けたら嬉しいです。
宜しくお願いします。
Posted by STAR FISH at 2006年05月13日 01:22
何度もすいません。
自分で解決しました☆
今度はランダムに挑戦しています。
何回やっても
うまく行かないですが
根気よく頑張ってみようと思います。
自分で解決しました☆
今度はランダムに挑戦しています。
何回やっても
うまく行かないですが
根気よく頑張ってみようと思います。
Posted by STAR FISH at 2006年05月13日 22:01
こんにちは、はじめまして。
その後、うまくいきましたか?
拡張子の書き換えのところは少々余計でした。
全部JPGにしてしまえば必要ないので忘れてもいいです。
この手の記事は忘れた頃に反応があったりして、
長らくお役に立つようで、書いた甲斐があります。
最近は返事が遅いですが、
何かありましたらコメントでも書き込んでください。
その後、うまくいきましたか?
拡張子の書き換えのところは少々余計でした。
全部JPGにしてしまえば必要ないので忘れてもいいです。
この手の記事は忘れた頃に反応があったりして、
長らくお役に立つようで、書いた甲斐があります。
最近は返事が遅いですが、
何かありましたらコメントでも書き込んでください。
Posted by くさの at 2006年05月15日 14:35
くさのサマ
お返事ありがとうございます。
私も非公開で何度もやってますが
なかなかうまく出来ないです(TOT)
なぜか
右側に画像の左側だけが
出て、
後は真っ白です。
(意味不明だったらすいません)
でも
諦めたくないので
頑張ってみます!
またお時間があるときにでも
お返事もらえたら
嬉しいです。
お返事ありがとうございます。
私も非公開で何度もやってますが
なかなかうまく出来ないです(TOT)
なぜか
右側に画像の左側だけが
出て、
後は真っ白です。
(意味不明だったらすいません)
でも
諦めたくないので
頑張ってみます!
またお時間があるときにでも
お返事もらえたら
嬉しいです。
Posted by STARFISH at 2006年05月17日 13:05
こんにちは。
ちとどういう状況なのか分かりませんが、
余計なスペースが入っていないかとか、文字のうち間違いがないかとか、
細かく確認してみてください。
それでもうまく行かない時は、最初からもう一度やってみるとうまく行ったりします。
うまく行っても、間違っていた箇所が不明だったりするんですよね。
ちとどういう状況なのか分かりませんが、
余計なスペースが入っていないかとか、文字のうち間違いがないかとか、
細かく確認してみてください。
それでもうまく行かない時は、最初からもう一度やってみるとうまく行ったりします。
うまく行っても、間違っていた箇所が不明だったりするんですよね。
Posted by くさの at 2006年05月18日 15:49
くさのサマ。
お久しぶりです。
あれから何度もトライしているのですが
なかなかうまくできません(TAT)
そこで質問なのですが。
<div id="banner">
「オリジナルデザインの登録」の「トップページ」から、上の1行を探し出し、以下のモノと差し替える。
とありますが、
削除してから
差し替えればいいんですよね?
難しいですね。
>変更が終わったら「トップページ」を保存、同じように「個別記事」「アーカイブ」も同じ部分を探し出し、書き換えて保存。
は、先にトップページの書き換えをして
「登録」をしてから、「個別記事」・・・の書き換えですか??
初心者で本当にわからなくて質問多くてすいません。
お時間がある時にでも良かったら
教えて下さいm(>○<)m
お久しぶりです。
あれから何度もトライしているのですが
なかなかうまくできません(TAT)
そこで質問なのですが。
<div id="banner">
「オリジナルデザインの登録」の「トップページ」から、上の1行を探し出し、以下のモノと差し替える。
とありますが、
削除してから
差し替えればいいんですよね?
難しいですね。
>変更が終わったら「トップページ」を保存、同じように「個別記事」「アーカイブ」も同じ部分を探し出し、書き換えて保存。
は、先にトップページの書き換えをして
「登録」をしてから、「個別記事」・・・の書き換えですか??
初心者で本当にわからなくて質問多くてすいません。
お時間がある時にでも良かったら
教えて下さいm(>○<)m
Posted by ヒトデ at 2006年05月26日 22:11
うむむ、うまく行きませんか?
そうです、<div id="banner">の部分を削除して、
その次にある長いのと入れ替えます。
「トップページ」がうまく行ったら、「個別記事」「アーカイブ」も
同じように書き換えれば完成です。
「トップページ」しかやらないと、
「個別記事」「アーカイブ」を見た時にランダムになりませんので。
実際のところ、ほとんど出来ているのに、
簡単な事で詰まっているのかもしれませんね。
お近くにこういう事を聞けそうな人は居ませんか?
そうです、<div id="banner">の部分を削除して、
その次にある長いのと入れ替えます。
「トップページ」がうまく行ったら、「個別記事」「アーカイブ」も
同じように書き換えれば完成です。
「トップページ」しかやらないと、
「個別記事」「アーカイブ」を見た時にランダムになりませんので。
実際のところ、ほとんど出来ているのに、
簡単な事で詰まっているのかもしれませんね。
お近くにこういう事を聞けそうな人は居ませんか?
Posted by くさの at 2006年05月27日 14:14
4年前の記事を読んで返事くるか不安なんですが、今Flash cs4を使って画像7枚をランダム再生しようと思っています。タイムラインとかはどういう感じになっているのか教えてほしいんですが大丈夫でしょうか?
Posted by ことぶき at 2010年05月27日 01:48
はいはい、見てはいますよ。
ただ、この記事はFlashではなくて、Javascriptを使ったランダム表示です。この方式でよろしければ、新しいブログに改良したものを書いています。
http://1748.blog52.fc2.com/blog-entry-25.html
Flashではやった事がないので、すみませんが他を探してみてください。
Flashの場合、プラグインが入っていなかったり、対応していない機器では、表示されない可能性はあります。
このJavascriptの方式もブラウザの設定で切ってしまうと毎回同じものしか表示されませんが、Flashのように何も表示されないのではなく、少なくとも毎回同じ画像が表示されます。
ただ、この記事はFlashではなくて、Javascriptを使ったランダム表示です。この方式でよろしければ、新しいブログに改良したものを書いています。
http://1748.blog52.fc2.com/blog-entry-25.html
Flashではやった事がないので、すみませんが他を探してみてください。
Flashの場合、プラグインが入っていなかったり、対応していない機器では、表示されない可能性はあります。
このJavascriptの方式もブラウザの設定で切ってしまうと毎回同じものしか表示されませんが、Flashのように何も表示されないのではなく、少なくとも毎回同じ画像が表示されます。
Posted by くさの
at 2010年06月02日 16:29
