Showing posts with label css. Show all posts
Showing posts with label css. Show all posts

12/29/2012

CSS3 によるローディングアニメーションを生成する jQuery プラグイン jquery.cssloading.js をリリースしました

CSS3 によるローディングアニメーションを生成する jQuery プラグインを作ってみました。iOS や Android といった、スマートフォン用のプラグインという位置づけです。cssloading() でアニメーション開始、stopcssloading() でアニメーション停止を行います。アニメーションの形やスピードなどは、プロパティを与えて設定します。
GitHub: jquery.cssloading.js

☆確認環境
iOS/Android

☆プロパティ一覧
  • type:アニメーションの形(dot/line/square/block/eddy)
  • width:表示されるアニメーションのサイズ(数値)
  • color:色(CSSで定義できる値)
  • size:表示されるひとつひとつのサイズ(数値)
  • items:表示されるアイテムの数(数値、「type」が「dot」の場合は円を構成する数、それ以外は1行の数)
  • speed:アニメーションのスピード(ミリ秒)
  • clockwise:右回りか左回りか(「true」が右回り、「false」が左回り)
  • direction:アニメーションを行う起点の方向(「left」「right」「top」「bottom」)
  • shape:表示されるひとつひとつの形(「circle」「square」)

☆使用できるプロパティの種類
  • dot:direction/shape以外
  • line:width/clockwise以外、「direction」は「left」または「right」
  • square:width/direction以外
  • block:width/clockwise以外
  • eddy:width/direction以外

☆ファイルの読み込み
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.cssloading.min.js'></script>


☆html
<button>Play/Stop</button>
<div id='loading'></div>


☆JavaScript(dot)
// 開始
var option = {
  type: 'dot',
  width: 100,
  color: 'rgba(0, 102, 255, .9)',
  size: 3,
  items: 30,
  speed: 1000,
  clockwise: false
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。


☆JavaScript(line)
// 開始
var option = {
  type: 'line',
  color: 'rgba(255, 255, 255, .9)',
  size: 5,
  items: 10,
  speed: 1000,
  direction: 'left',
  shape: 'square'
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。

その他のサンプルは jquery.cssloading.js | Archives | Flügel にて公開しています。

9/14/2012

myFacebookStyle の爆速化

myFacebookStyle をリニューアルしましたで「爆速化」って書きましたが、どうやってスピードを高めるかに苦心しました。

元々は、それぞれの定義で適用させる class と、適用させるスタイルを content_script 内の JS にそれぞれ書いておいて、実際に適用させる場面では、それらを組み合わせて style を body 内に記述する、という形式を採っていました。しかし Facecbook 側の度重なる仕様変更によって、適用させる class が膨大になってきており、その影響でスピードが落ちていたというのが原因でした。

これを改善すべく、以下の手法に変更しました。
  1. 適用させる class を別途の css へ「/* BG background-color: $BG$;BG */」のように記述する
  2. その css は外部ファイルとして manifest.json に定義する
  3. 適用させる場面で、その css を JS で読み込む
  4. BG を適用させる場合は、「/* BG」と「BG */」を外し、「$BG$」にユーザが定義した色指定を突っ込む
  5. css を読み込むのは最初の一度だけで、変数に入れてデフォルトの内容を保持し、以降はそれを使い回す

これでかなり爆速化ができました。

拡張内に入れた画像などのファイルを読み込む [Chrome Extensions を作ってみる:第十回]

例えば Chrome 拡張を作っているとき、画像などのファイルを使いたいっていう場合があると思います。しかし他のサーバのを読み込むよりも、拡張内に格納したファイルを読み込んだ方が当然速いので、こっちを使いたいところですね。

まず、manifest.json 内で記述します。

★manifest.json
"web_accessible_resources": [
"img/sample.png"
]

次に、読み込むファイル側で定義します。ここでは css で定義してみます。

★background_page 内の Javascript
#sample {
background: url(chrome-extension://xxxxxx/img/sample.png);
}
※「xxxxxx」の部分には拡張の ID を入れます。
同じように JavaScript 内でも読み込ませることができます。

Formats: Manifest Files - Google Chrome

9/13/2012

myFacebookStyle をリニューアルしました

Safari/Chrome 機能拡張 myFacebookStyle をリニューアルしました。Facebookの見た目のスタイルを簡単な操作で変更できます。プリインストールテーマとして5種類ありますが、自分で作ったテーマを最大5件まで保存できます。

Chrome 拡張:myFacebookStyle
Safari 拡張:myFacebookStyle

【Version 2 での主な変更点】
  • 操作画面のデザイン変更
  • カラーピッカーの実装
  • 内部構造見直しによる高速化

【変更できる部分】
全体
  • 全体(背景色・枠線色・文字色)
  • リンク(文字色)
  • オンマウス時のボタン(背景色・文字色)
  • 補助文(文字色)
  • ボタン類(背景色・枠線色・文字色)
  • アイコン画像(角丸にする/しない)

ヘッダ
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色・文字色)

通知部分
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色)
  • 新着通知(背景色・文字色)
  • ユーザ名(文字色)

コメント
  • 全体(背景色・文字色)
  • リンク(文字色)
  • 補助文(文字色)
  • 新着表示(枠線色)
  • コメント書き込み部分(背景色・文字色)

下の通知部分
  • 全体(背景色・枠線色・文字色)
  • 表示(表示する/しない)
  • 場所(左下/右上)

チャット部分
  • 全体(背景色・枠線色・文字色)
  • ヘッダ(背景色・文字色)
  • オンマウス時(背景色・文字色)

リアルタイムフィード
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色・文字色)

設定
  • この拡張の言語(英語・日本語)
  • 初期化

【インストール方法】
(Safari 拡張の場合)
ダウンロードした後、「myFacebookStyle.safariextz」というファイルをダブルクリックするだけでインストールされます。


(Chrome 拡張の場合)
「Chrome に追加」をクリックするだけです。


【機能詳細】
インストール後、facebookにアクセスして右クリックを行うと、以下のように「myFacebookStyle」というメニューが表示されます。


このメニューをクリックすると、操作画面が表示されます。


各項目をクリックし、「設定」を押すことにより表示されるカラーピッカーやボタンで決定していくことで、自分好みのスタイルに調整できます。背景色や文字色、枠線色、アイコンの角丸化、通常は左下に表示される通知を右下にしたり、様々なことができます。



プリインストールのテーマは5種類用意されており、そのテーマをベースに変更していくことも可能ですし、ゼロから設定していくこともできます。もちろん、保存したテーマを削除することもできます。


複数のブラウザで同じテーマを使用したいときは、「出力」を押します。するとダウンロード画面が表示されるので名前を付けて保存し、読み込み先のブラウザで読み込むと同じテーマが適用されます。Chrome/Safari共に同じファイルが生成されるので、Chromeで生成したテーマをSafariで適用させることもできます。


※フリーツールですので、苦情・損害等につきましては、応じかねます。
※改変その他倫理上相応しくないご使用はお控えください。

5/03/2012

SelectorHighlighter(Chrome 機能拡張)を公開しました

Chrome 機能拡張 SelectorHighlighter を公開しました。HTML 内に記述されたスタイルや CSS を読み込んで表示し、それらに含まれるセレクタをクリックすると、ページ内で該当する箇所の背景色が変わります。

操作画面は、右クリックによるメニューから呼び出すことができ、以下のような操作画面が出現します。


セレクタをクリックすると、該当箇所の背景色が変わります。


「Minimum」をクリックすると、小さく表示されます。


色は赤・青・黒の三種類から選べます。


興味のある方は、以下からどうぞ。
SelectorHighlighter: Google Chrome 機能拡張

7/07/2011

簡易的なスマートフォン用ウェブページの対応

ウェブページを作ったはいいけど、スマートフォンの対応が必要な場合は確実に増えてくると思う。しかし、それ用のウェブページを作るなんて、ナンセンスだと思う。以下の meta タグを入れるだけで、スマートフォンの場合は /css/m.css を読み込んでくれる。

☆css の読み込み
<link type="text/css" rel="stylesheet" href="/css/m.css" media="only screen and (max-device-width:960px)" />
ここで、max-device-width を 960px にしているのは、現在スマートフォンの最高解像度を持つ iPhone4 の画面を横にした場合を考慮している。Android は 854px なのでこれに含まれる。この css をパソコン用の css の後に記述すれば、携帯用に値を上書きしてくれる。

☆js の振り分け
var device = (window.innerWidth > 960) ? true : false;
これも必要な場合に device の値を参照すれば処理を振り分けることができる。

ただ、これは単に画面サイズによって振り分けてるだけなので、キチンと userAgent を取って処理を分けた方がいいのも事実。あくまでも、「簡易的に」対応する場合に限られる。

10/12/2010

読み込んだウェブページに CSS を適用させる [Chrome Extensions を作ってみる:第四回]

Safari Extensions の場合もやったことを、Chrome Extensions でもやってみる。

これは、Apple の背景を青にしてみるという例。

★manifest.json
{
  "content_scripts": [{
    "css": [ "apple.css" ],
    "matches": ["http://www.apple.com/*"],
    "run_at": "document_end"
  }],
  "name": "test",
  "version": "1.0.0.0"
}

★apple.css(content_scripts)
body {background: rgba(0, 102, 255, .7) !important;}

これだけで、実現できる。

9/10/2010

Chrome Extensions を作ってみる

Safari Extensions をやってみたので、Google Chrome Extensions も作ってみようと思う。

  1. インストールした Chrome Extensions の格納場所
  2. Extension の定義ファイル
  3. 読み込んだウェブページの内容を使って処理を行う
  4. 読み込んだウェブページに CSS を適用させる
  5. content_scripts と background_page でデータをやり取りする
  6. 独自の要素からページ遷移を行う
  7. 独自のコンテクストメニューを生成する
  8. 開いている全てのタブに処理を走らせる
  9. ウェブページに iframe があって複数挿入されてしまう場合の対処
  10. 拡張内に入れた画像などのファイルを読み込む
  11. 現在開いているタブのスクリーンショットを撮る

Safari Extensions と同じものは、こちらを参考に。

読み込んだウェブページに CSS を適用させる [Safari Extensions を作ってみる:第四回]

さて、Safari で読み込んだページに CSS を適用させてみる。今回は Apple の背景を青にしてみる。

とりあえず、CSS を用意する。名前は「apple.css」とする。
body {background: rgba(0, 102, 255, .7) !important;}

既に背景はスタイルで宣言されているので、!important を付けておく。

  1. Safari Extensions の新規開発画面を表示する

  2. Safari Extensions の新規開発画面を表示する際に保存したフォルダに、上記で作った css ファイルを保存する

  3. 「機能拡張の情報」「機能拡張の詳細」「機能拡張のバージョン」の各項目に適宜な内容を入力する

  4. 「機能拡張 Web サイトアクセス」の「アクセスレベル」を「すべて」にする

  5. 「取り込んだ機能拡張の内容」の「スタイルシート」の「新規スタイルシート」をクリックする

  6. 入力箇所が表示されるので、セレクトボックスをクリックすると 2. で保存した apple.css が表示されるので、それを選択する

  7. 少し下の「ホワイトリスト」の「新規 URL パターン」をクリックする

  8. 入力ボックスが表示されるので、「http://www.apple.com/*」と入力する。アスタリスクでワイルドカードを使えるので、スラッシュの後には「*」を入力する

  9. 機能拡張ビルダー右上の「インストール」をクリックし、Apple にアクセスすると、背景が青くなる。


ちなみに、このホワイトリストでドメインを指定しないと、あらゆるウェブページで css が発動してしまう。ホワイトリストの説明は Safari Extensions Development Guide: Using Extension Builder に載っている。

Safari Extensions を作ってみる

Safari 5 から Extensions(拡張機能)を使えるようになったので、作ってみようと思う。

  1. Safari Extension(機能拡張)を作る前に証明書をゲットし、Safari Developer となる
  2. とりあえず Hello World
  3. 読み込んだウェブページの内容を使って処理を行う
  4. 読み込んだウェブページに CSS を適用させる
  5. 自動的にアップデートをさせるようにする
  6. Extension のアイコンを設定する
  7. Javascript ファイルから設定画面の情報を読み込む
  8. 読み込んだページに独自の要素を表示させる
  9. 独自の要素からページ遷移を行う
  10. 独自のコンテクストメニューを生成する
  11. 開いている全てのタブに処理を走らせる
  12. 設定内容の保存先には localStorage がいいと思う
  13. ウェブページに iframe があって複数読み込まれてしまう場合の対処

9/17/2009

css を読み込めない

と思ったら、rel の設定が alternate stylesheet だった。。。気づくまで大層な時間がかかったorz
html 内の css 読み込み部分をコピーしてたんだが、そのコピー元で alternate stylesheet で、そのまんまだった、と言い訳してみる。

はぁ〜、すんごいしょーもないことで無駄な時間を使った。。。