※ 古いコードから移行する時に、 document.all を変更し忘れていましたので修正しました。 ※ IE8 以前のアンチエイリアスが無効になるバグに対応したコードを追加しました IE は 4 の時から使える方法で実装しています。他のブラウザでは CSS3 の transition が使えるようなので、CSS 側に定義して、処理そのものは、JavaScript (タイマー)で実装しました。 このサンプルは、テキストですが、画像でも同じ事です。 ※ setTimeout の時間が、トランジションの時間より大きくなる必要があります
2
1
<script type="text/javascript"> var a_counter = 3; var userAgent = window.navigator.userAgent.toLowerCase(); function a_start() { if (userAgent.indexOf("msie") > -1) { if ( a_counter % 2 == 1 ) { document.getElementById("a2").filters.blendTrans.Apply(); document.getElementById("a2").style.visibility = "hidden"; document.getElementById("a2").filters.blendTrans.Play(); } else { document.getElementById("a2").filters.blendTrans.Apply(); document.getElementById("a2").style.visibility = "visible"; document.getElementById("a2").filters.blendTrans.Play(); } } else { if ( a_counter % 2 == 1 ) { document.getElementById("a2").style.opacity = 0; } else { document.getElementById("a2").style.opacity = 100; } } setTimeout("a_next();", 7000 ); } function a_next() { if ( a_counter % 2 == 1 ) { document.getElementById("a2").innerHTML = a_counter.toString(); } else { document.getElementById("a1").innerHTML = a_counter.toString(); } a_counter++; if ( a_counter > 8 ) { a_counter = 1; } a_start(); } </script> <style type="text/css"> #base { position:relative; width:500px; height:300px; } #a1,#a2 { width:100%; height:100%; background-color:#fff; font-size:250px; position:absolute; -webkit-transition: opacity 3s ease-in-out; -moz-transition: opacity 3s ease-in-out; -o-transition: opacity 3s ease-in-out; transition: opacity 3s ease-in-out; filter:blendTrans(duration=3); } </style> <div id="base"> <div id="a1">2</div> <div id="a2">1</div> </div> <input value="go" type='button' onclick='a_start();this.style.visibility="hidden"' />
▼ 以下は、IE8 以前のアンチエイリアスが無効になるバグに対応したものです
<script type="text/javascript"> var a_counter = 2; function a_start_ie8() { document.getElementById("a2").style.visibility = "visible"; document.getElementById("a1").innerHTML = a_counter.toString(); document.getElementById("a2").filters.blendTrans.Apply(); document.getElementById("a2").style.visibility = "hidden"; document.getElementById("a2").filters.blendTrans.Play(); setTimeout("a_next_ie8();", 7000 ); } function a_next_ie8() { document.getElementById("a2").innerHTML = a_counter.toString(); a_counter++; if ( a_counter > 5 ) { a_counter = 1; } a_start_ie8(); } </script> <style type="text/css"> #base { position:relative; width:500px; height:300px; } #a1,#a2 { width:100%; height:100%; background-color:#fff; font-size:250px; position:absolute; -webkit-transition: opacity 3s ease-in-out; -moz-transition: opacity 3s ease-in-out; -o-transition: opacity 3s ease-in-out; transition: opacity 3s ease-in-out; filter:blendTrans(duration=3); } </style> <div id="base"> <div id="a1">2</div> <div id="a2">1</div> </div> <input value="go" type='button' onclick='a_start_ie8();this.style.visibility="hidden"' />
関連する記事 IE 兼用背景 Fade transition の実装
|
【記録の最新記事】
- Java、PHP、jQuery : 最近の記事と関連する記事のまとめ / インデックス
- Google MAP API が 1日に 25,000 ビューを超えると表示される画面
- WEB フォントをクロスドメインで利用する
- ブログ更新通知先に関する情報
- さくらインターネットの CRON の設定で、標準エラー出力を postmaster に送らない
- VBScript 用 onClick 一行書き
- 『家に帰ると妻が必ず死んだふりをしています』というブログを発見しました
- Google Chrome 32.0.1700.76 のコンボボックススクロールバーがドラッグできないのは、Windows7 のエアロ系で起きるようです。
- Google Chrome 32.0.1700.76 のコンボボックススクロールバーがドラッグできない問題が、開発版(34.0.1794.5 canary) で修正されたそうです
- Google Chrome 32.0.1700.76 の具体的な問題点
- ファイル名リストをクリップボードへコピー
- キーボード説明用画像( フリーフォントでキーボード画像作成 )
- 何だこれ。Microsoft の 看板的ワードの誤字『EIblog をご覧ください。』って・・・
- 9月27日10時頃、Google Chrome でのみ AdSense の表示がおかしくなりましたが・・・
- 注意 : フィッシング詐欺メールのタイトル『【ドラゴンクエストX 目覚めし五つの種族 オンライン】認証』
- まぎらわしい『AdSenseの終了』を知らせる『日本語ページ』
- Trigger Rally(WebGL+Three.js) のコースを無視してひたすら悪路を走りまくる
- Windows 8.1 に期待は無いけれど、3D プリンタへの期待は膨らむのです
- Adobe Readerの脆弱性を突かれて人生初の『ウィルス』に感染・・・
- また4月なんで、フリーのレンタルサーバーの確認してみると・・・