Quantcast
Channel: Coding_team –ウェブラボ(株)スタッフブログ
Viewing all 87 articles
Browse latest View live

jQueryを使ってアハ体験??

$
0
0
復活第2回目となりました、ウェブラボ技術メモです。

今回はなんと自作のjQueryとなります。

少し前にテレビやゲーム等で流行った、アハ体験をjQueryを使って再現致しました。

DEMOはこちら

今回使用させて頂いた画像は、友人のペットのフェレットです。

フェレットばかりに目がいってしまうと、画像の変化になかなか気が付かないかもしれませんね笑

ヒントも出るようになってますので、ぜひ画像の変化を探してみてください!

仕組みは至って簡単です。

jQueryを使って、画像をフェードイン・フェードアウトさせているだけです。

こちらのDEMOには、ソースを見ただけでは答えがわからないように、背景画像を使ったりしていますが、

基本は画像を2枚並べて、フェードイン・フェードアウトをさせれば完成です。

簡単に作った場合下記のようになります。

HTMLはこちら

<div id="wrapper">
	<p class="img01"><img src="○○" width="980" height="○○" alt="○○"></p>
	<p class="img02"><img src="○○" width="980" height="○○" alt="○○"></p>
</div>

CSSはこちら

#wrapper {
	width: 980px;
	margin: 0 auto;
	position: relative;
}

#wrapper .img01 {
	position: absolute;
	top: 0;
	left: 0;
}

#wrapper .img02 {
	position: absolute;
	top: 0;
	left: 0;
	display: none;
}

jQueryはこちら

setTimeout(function(){
	$('.img02').fadeIn(2000);
},2000)

DEMO等は自由に使って頂いて構いません。

※これらを使用して、起きたいかなる不具合・問題等に関しましては、弊社は一切責任を負いません。予めご了承下さい。

jQuery NailThumbを使って自動でサムネイルを生成する

$
0
0
こんにちは。ウェブラボ技術メモです。

突然ですが、こんな事はありませんか?

沢山写真を並べたギャラリーページを作りたい!!

でもサムネイルを用意するのが大変…
持っている画像はサイズ縦横比もバラバラだし…

第3回となる今回の技術メモでは、そんな時に便利なこちらのプラグインを紹介します。

jQuery NailThumb

このプラグインを使うと簡単にサムネイルが生成されるのです。

まずは簡単なデモを作成しましたのでご覧ください。

デモページ

元画像とサムネイルは全く同じ画像をそのまま並べているのですが、photoshopなどのレタッチツールを使って沢山のサムネイルを作らなくても、このようにjQuery NailThumbを使えばサムネイルが自動でできてしまうのです。

上記のデモはクロップという方法でサムネイルを作成しました。

クロップとは刈り込み、切り落としという意味です。
指定した100px四方のサイズに縮小し、余った部分を切り落としているのです。
画像の縦横比は変更したくないという場合も大丈夫。

続いてこちらのデモもご覧ください

デモページ2

こちらは元画像の縦横比はそのままに、指定した100pxのボックスに収まるサイズに縮小(リサイズ)されています。

ちなみに画像のtitleタグを入力すると、サムネイルに触れた時にエフェクト付きでキャプションとして表示されます。

サムネイルはクロップやリサイズだけでなくサイズを指定することもできます。

サムネイルが表示される際にさまざまなアニメーションを使ったエフェクトも用意されており、そして何より嬉しいのは、コーダーの天敵でもあるIE(IE6にも!)にも問題なく表示されるのです。

公式サイトは英語なのでなかなかとっつきにくいと思います。

導入したいけど自分では無理!という時はお気軽にお申し付けください。

以上、7月の技術メモは「jQuery NailThumb」の紹介でした。

jQueryを利用してシンプルなティッカーを作る

$
0
0
こんにちは。ウェブラボ技術メモ第4回目です。

今回はjquery.simpleTicker.jsを使ってシンプルなニュースティッカーを作ってみたいと思います。

ティッカーとは…
特定範囲内に文字列を流して表示させる表示方式のことである。右から左(あるいは上から下へ)文字が次々に流れてゆくのを読ませる方式であるので、限られた狭い領域で多くの情報を表示することができる。

IT用語辞典より

新幹線の車内や看板、証券取引所などにある電光掲示板と言えば想像がつくと思います。

これをサイトに設置したいと思います。

今回はjQueryのプラグインを使用しますのでjquery.jsも一緒に読み込ませます。

■HTML head内

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="jquery.simpleTicker.js"></script>
<script>
$(function(){
  // ここでエフェクトの種類を指定します。
  $.simpleTicker($("#ticker-fade"),{'effectType':'fade'}); //フェードイン
  $.simpleTicker($("#ticker-roll"),{'effectType':'roll'}); //縦スライド
  $.simpleTicker($("#ticker-slide"),{'effectType':'slide'}); //横スライド
});
</script>

HTMLはリストを作るだけです。

さきほどheadで指定したid(#ticker-fade)を指定するのを忘れないようにしましょう。

■HTML

<div id="ticker-fade" class="ticker">
    <ul>
    <li>テスト1 ここにテキストが入ります</li>
    <li>テスト2 ここにテキストが入ります</li>
    <li>テスト3 ここにテキストが入ります</li>
    <li>テスト4 ここにテキストが入ります</li>
    <li>テスト5 ここにテキストが入ります</li>
    </ul>
</div><!--/#ticker -->

CSSはある程度自由に指定が出来ますが、シンプルに作成するデモでは下記のようにします。

■CSS

.ticker {
  margin: 0 auto;
  padding: 10px;
  width: 600px;
  text-align: left;
  border: #ccc 1px solid;
  position: relative;
  overflow: hidden;
  background-color:#ffffff;
}

.ticker ul {
  width: 100%;
  position: relative;
}

.ticker ul li {
  width: 100%;
  display: none;
}

完成したデモはこちらです

いかがでしょうか。

ニュースティッカーを作成するプラグインとしては他にもこのようなプラグインがあります。

・フレキシブルな垂直型のニュースティッカー

jquery-advanced-news-ticker
・文字をタイプしているようなニュースティッカー
jQuery News Ticker

使用用途や、好みの動きに合わせて設置してみるのも良いと思います。

以上、ウェブラボ技術メモでした。

jQueryを利用して画像の遅延読み込みを行う

$
0
0
こんにちは。ウェブラボ技術メモ第5回目です。

今回はjQueryプラグイン「Lazy Load」を使って画像の遅延読み込みを行ってみたいと思います。

こんな事はありませんか?

ページに画像が多くて読み込みが遅い…
少しでも表示速度を早くしたい…

表示の速さはサイトにとって大事です。ではなぜ表示が遅いとダメなのか?

以下に例を2つ示します。

1.GoogleがSEOに影響があると発表したから

2.ユーザーがアクセスした際に離脱原因になるから

他にも様々な影響がありますが、この2点だけを見ても表示速度は重要であると言えます。

そんな時に役立つのがこちらのプラグインです。実際にブラウザに画像を表示するまではロードしないという効率的な仕組みです。

Lazy Load

今回はjQueryのプラグインを使用しますのでjquery.jsも一緒に読み込ませます。

■HTML head内

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="jquery.lazyload.min.js"></script>
<script>
$(function() {
	$("img").lazyload({   //遅延ロードの対象となる要素を指定
		effect:"fadeIn",   //フィードイン効果
		effectspeed: 1500   //フィードインの速度をmsで設定できます。
	});
});
</script>

HTMLは data-original に(オリジナルの)画像を指定し、src にダミー画像を指定します。

ダミー画像は1px のグレー塗りの画像などが良いかと思います。

■HTML

<img data-original="img/001.jpg" src="img/gray.gif" width="640" height="480">
<img data-original="img/002.jpg" src="img/gray.gif" width="640" height="480">
<img data-original="img/003.jpg" src="img/gray.gif" width="640" height="480">

完成したデモはこちらです

いかがでしょうか?

ブラウザの表示領域内に入ると、画像が読み込まれるようになりました。
特に、画像が多いギャラリーページなどに設置してあげるのが良いかと思います。

以上、ウェブラボ技術メモでした。

jQueryプラグイン『iCheck』を使ってカッコいいチェックボックス、ラジオボタンを作る

$
0
0
こんにちは。ウェブラボ技術メモも6回目となりました。

普段webサイトを制作していると、チェックボックスやラジオボタンなどはデフォルトのものから変更できないものと思い込んでしまう人もいるかと思います。恥ずかしながら私もそうでした。

ところが、実はJQueryでカスタマイズすることが可能なのです。

そこで、今回はjQueryプラグイン『iCheck』を使ってカッコいいチェックボックス、ラジオボタンを作ってみたいと思います。

『iCheck』

今回もjQueryのプラグインを使用しますのでjquery.jsも一緒に読み込ませます。また、CSSもプラグインと一緒に用意されているので一緒に読み込ませます。

■HTML head内

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" src="icheck.min.js"></script>
<link type="text/css" href="skins/all.css" rel="stylesheet" media="all" />
<script>
$(document).ready(function(){
	$('.type01 input').iCheck({                    //要素の指定
		checkboxClass: 'icheckbox_square-red', //チェックボックスのデザインや色を指定します。
		radioClass: 'iradio_square-blue'       //ラジオボタンのデザインや色を指定します。
	});
</script>

HTMLは、head内のscriptで指定した値を忘れずに付与してあげましょう。今回はクラスtype01。

これでtype01内のinput要素に反映されるようになります。

■HTML

<div class="type01">
	<ul>
		<li><label><input type="checkbox" name="" id="" /> test</label></li>
		<li><label><input type="checkbox" name="" id="" checked disabled/>
		test(Disabled & checked)</label></li>
		<li><label><input type="radio" name="type" id="" /> test</label></li>
		<li><label><input type="radio" name="type" id="" /> test</label></li>
	</ul>
</div>

完成したデモはこちらです。

デフォルトのチェックボックスやラジオボタンより数段カッコ良くなりました。

※IE8~、firefox、Chrome、Safariで動作確認済み。今回IE6,7では表示されない不具合が出ましたが配布元によると対応しているみたいです。

また、オプションで他にも数種類のデザイン・色が用意されているのでより好きなものを選択することが可能です。主に入力フォームのユーザビリティを向上などの用途に使用するのが良いかと思います。

以上、今回のテーマは「チェックボックス、ラジオボタンのカスタマイズ」でした。

jQueryでWebサイトの背景をおしゃれにする

$
0
0
こんにちは、第7回ウェブラボ技術メモです。

今回は、Webサイトの背景をおしゃれにするプラグイン『Particleground』を実装してみたいと思います。

『Particleground』は、パーティクルアニメーション(コンピュータグラフィックの技術のひとつでパーティクル(粒子)を沢山発生させて動かす仕組み)を表示するプラグインです。また、マウスカーソルに追従して動く視差効果(パララックス)の機能もあります。

配布ページはこちら

では、早速実装してみましょう。

今回もjQueryのプラグインを使用しますのでjquery.jsも一緒に読み込ませます。

head内は、背景を表示させたい要素を忘れずに指定してあげましょう。また、ここでドットの色などのオプションなどを指定することも出来ます。

■HTML head内

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.particleground.min.js"></script>
<script>
$(document).ready(function() {
	$('#particles').particleground({     //背景を表示したい要素の指定
	dotColor: '#f89e9e',                 //ドットの色を指定
	lineColor: '#f89e9e',                //ドットをつなぐ線の色を指定
	density:'4000'                       //生成されるparticleの密度を指定
	});
});
</script>

HTMLはhead内と同様に背景を表示する要素を記述します。

■HTML

<div id="particles">  //背景を表示させる要素
   //本文
</div>

CSSでは主に背景色を指定し、必要に応じて幅や高さなどの調整を行いましょう。

■CSS

#particles {
	background: #f84848; //背景の指定
    //必要に応じて高さ、幅などの調整を追加
}

完成したデモはこちらです。

いかがでしょうか、背景がパーティクルアニメーションになり、とてもおしゃれになっています。

他にもオプションで、particleの流れる速さやドット間の線を曲線にしたり、自分好みにカスタマイズすることも可能です。

ちなみに対応ブラウザは、Google Chromeなどのモダンブラウザ、Internet Explorer 9以降、スマートフォンではiOS 7.1のSafari、Android 4以降のものに対応してるみたいです。それ以外の古いブラウザなどはアニメーションが表示されず背景色のみとなってしまいます。

古いブラウザなんて気にしないよという人は一度試してみてはどうでしょうか?

以上、ウェブラボ技術メモでした。

googleの画像検索のようなギャラリーをつくる

$
0
0
こんにちは、ウェブラボ技術メモです。
第8回目となる2015年最初の技術メモでは、ギャラリーに使えるjavascriptを紹介したいと思います。
 
ギャラリーと言えば、lightboxを使って、画面の上に大きな画像が表示されるようなものをよく見かけますが、今回は誰もが見慣れたgoogleの画像検索画面のようなギャラリーを作成したいと思います。
 
モデルとなる本物のgoogle画像検索画面はこちら
今年の干支、羊の検索結果です。
 
まずはこちらのサイトから今回使用するjavascriptなどのファイルをダウンロードし、htmlのhead内にcssとjavascriptを読み込ませます。default.cssは好みに応じて変更、削除して構いません。
 
<head>
<link rel="stylesheet" href="conponent.css" />
<link rel="stylesheet" href="default.css" />
<script src="modernizr.custom.js"></script>
<script src="grid.js"></script>
<script>
     $(function() {
          Grid.init();
     });
</script>
</head>

htmlには下記のようにリストを使って記述しましょう。

画像はサムネイル用に小さい画像と、オリジナルの大きな画像を用意しています。

 

<ul id="og-grid" class="og-grid">
    <li>
        <a href="http://www.weblab.co.jp" data-largesrc="images/1.jpg" data-title="ひつじ1" data-description="ひつじ1の説明文が入ります。">
        <img src="images/thumbs/1.jpg" alt="img01"/>
        </a>
    </li>
    <li>
        <a href="http://www.weblab.co.jp" data-largesrc="images/2.jpg" data-title="ひつじ2" data-description="ひつじ2の説明文が入ります。">
        <img src="images/thumbs/2.jpg" alt="img02"/>
        </a>
    </li>
    <li>
        <a href="http://www.weblab.co.jp" data-largesrc="images/3.jpg" data-title="ひつじ3" data-description="ひつじ3の説明文が入ります。">
        <img src="images/thumbs/3.jpg" alt="img03"/>
        </a>
     </li>
・
・
・

aタグの中、data-largesrcにオリジナル画像のパス、data-titleには画像のタイトル、data-descriptionに説明文を入力すればギャラリーの完成です。
 
作成したデモページはこちら
 
いかがでしょうか。lightboxとは少し違った見せ方ができ、ギャラリーの選択肢が広がると思います。
注意点としては、古いブラウザ(主にIE)には対応していません。
検証してみたところ、IE8以下ではscriptが正常に動作せず、IE7以下では表示崩れが発生しました。
その他のモダンブラウザでは問題なく見れますので、IE8以下は切り捨てても良い!という場合は使ってみても良いのではないでしょうか。

セレクトボックスのタグ拡張

$
0
0

サイト

https://select2.github.io/

 

DL

https://github.com/select2/select2/tags

 

 

まずはこちらのサイトから今回使用するcssやjavascriptなどのファイルをダウンロードし、htmlのhead内にcssとjavascriptを読み込ませます。

 

<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-beta.3/css/select2.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-beta.3/js/select2.min.js"></script>
<script>
	$(document).ready(function() {
		$('.tag_option').select2();
	});
</script>

 

 

複数入力したい場合は、multiple=”multiple”を付けて下さい。

<select class="tag_option">
	<option value="みかん">みかん</option>
	<option value="ばなな">ばなな</option>
	<option value="りんご">りんご</option>
	<option value="すいか">すいか</option>
	<option value="なし">なし</option>
	<option value="めろん">めろん</option>
	<option value="ぱいなっぷる">ぱいなっぷる</option>
	<option value="いちご">いちご</option>
	<option value="ぶどう">ぶどう</option>
</select>

 

 

作成したデモページはこちら。

 

select要素を拡張し、かつデザインもおしゃれな感じになりましたね。

今回はmultipleタイプしか紹介してませんが、multipleタイプだけでも色々とあります。

 

1つ目のdemoはデフォルト設定のdemoで、選択した時に候補が表示されます。

 

2つ目のdemoでは、2文字以上を入力、かつヒットしなければ表示されない仕組みになってます。

たくさん候補があった場合など、絞りこみ検索のような感じで使用でき、便利かもしれませんね。

 

3つ目はselect要素を使ってません。

オプションでタグの中身を決めたり、ユーザーが任意にタグを作ることも可能になってます。

適当な文字を入力するとそれがタグになります。

 

HTMLの記述は下記になります。

<script>
$(document).ready(function() {
	$('.tag_option_j').select2({
		placeholder: "選択して下さい",
		tags: ["みかん", "ばなな", "りんご", "すいか", "なし", "めろん", "ぱいなっぷる", "いちご", "ぶどう"],
		tokenSeparators: [",", " "]
	});
});
</script>
<div class="tag_option_j"></div>

 

 

色々なことが出来ますので、試ししてみてはいかがでしょうか。

 

他にも6回目で書いた
jQueryプラグイン『iCheck』を使ってカッコいいチェックボックス、ラジオボタンを作ると組み合わせるといいかもしれませんね。

 

 

詳しいやり方

http://select2.github.io/select2/

 

 

対応ブラウザは下記になります。

IE 8+

Chrome 8+

Firefox 10+

Safari 3+

Opera 10.6+

 

以上、ウェブラボ技術メモでした。


ページのローディング画面を作成する

$
0
0

第10回目ウェブラボ技術メモです。

今回はjQueryを使って、ページが読み込まれるまで表示されるローディング画面を作ります。

 

ページの表示速度が遅いのは、ユーザーが見るのをやめてしまう大きな原因になってしまいます。そこで、少しでも待ってもらう為にページの読み込み状況を表示させたいと思います。

 

参考にさせて頂いたサイトはこちら。では早速実装してみましょう。

 

HTMLのhead内はjQueryの読み込みと一緒に以下の記述をします。

■HTMLhead内

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function() {
	Array.prototype.remove = function(element) {
	  for (var i = 0; i < this.length; i++)
	    if (this[i] == element) this.splice(i,1); 
	};
	function preload(images, progress) {
		var total = images.length;
	    $(images).each(function(){
			var src = this;
	        $('<img/>')
				.attr('src', src)
				.load(function() {
					images.remove(src);
					progress(total, total - images.length);
				});
	    });
	}
	var now_percent = 0;
	var displaying_percent= 0;
	preload([
		'img/img01.jpg', //表示したい画像
		'img/img02.jpg', //表示したい画像
		'img/img03.jpg' //表示したい画像
	], function(total, loaded){
		now_percent = Math.ceil(100 * loaded / total);
	});
	var timer = window.setInterval(function() {
		if (displaying_percent >= 100) {
			window.clearInterval(timer);
			$('#loader').fadeOut('slow', function() {
				$('<img />') //HTMLに吐き出される記述
					.attr('src', 'img/img01.jpg') //表示したい画像
					.appendTo('#content'); //画像を表示したい場所
				$('<img />') //HTMLに吐き出される記述
					.attr('src', 'img/img02.jpg') //表示したい画像
					.appendTo('#content'); //画像を表示したい場所
				$('<img />') //HTMLに吐き出される記述
					.attr('src', 'img/img03.jpg') //表示したい画像
					.appendTo('#content'); //画像を表示したい場所
				$('#content').fadeIn('slow'); 

			});
		} else {
			if (displaying_percent < now_percent) {
				displaying_percent++;
				$('#load-text').html(displaying_percent + '%');
				$('#bar span').css('width', displaying_percent + '%');
			}
		}
	}, 
	5);	// %表示の更新間隔(ミリ秒)
});
</script>

ページが遅くなる大きな原因は画像なので、あらかじめjQueryで画像を読み込んでおき、読み込み終わったらHTMLに画像の記述を出力します。

 

HTML本文に必要な記述は以下の通りです。

■HTML本文

<div id="loader"> //ローディング画面
Loading <span id="load-text">0%</span>
	<div id="bar"><span></span></div>
</div>
<div id="content" style="display: none;">
	<!-- ここにコンテンツが入ります。 -->
</div>

この記述を設置したい場所に入れます。

 

次にCSSにローディング画面のレイアウト情報を記述してあげます。

■CSS

#loader {
  font-family: 'Marvel', sans-serif;
  margin: 300px auto 300px;
  width: 300px;
  text-align: center;
  font-size: 25px;
  color: #333333;
  }
#bar {
  width: 300px;
  height: 2px;
  border:1px solid #333333;
  padding: 1px;
  margin-top: 10px;
  font-size: 1px;
  }
#bar span {
  display: block;
  width: 0px;
  height: 2px;
  background: #333333;
  }

CSSはお好みで変更して頂いて大丈夫です。フォントや色など自分好みに変更するのも可能です。

 

必要な記述は以上です。完成したデモはこちらです。

 

いかがでしょうか?デモをリロードしてあげると1回目とローディングのスピードが違いますね。

これはブラウザにキャッシュが保存され読み込み時間が短くなっているせいです。また1から見たい場合はブラウザのキャッシュを消してあげて下さい。

 

気になる対応ブラウザですが、Firefox,Chrome,Safari,Operaで動作確認済みです。

IEでは画像サイズの高さ、幅が取得されずおかしく表示されてしまうので別途で画像サイズを指定してあげる必要がありそうですね。

 

以上ウェブラボ技術メモでした。

SVGアニメーション

$
0
0

こんにちは、ウェブラボ技術メモ第12回目です。

今回はSVGを使って、アニメーションをつけたいと思います。

まずはSVG作成からです。

1.イラストレータにて適当な文字を作成

イラストレータにて適当な文字を作成し、文字をアウトライン化してください。

150525001
150525002

2.SVGファイルとして保存する

保存する時にSVGファイルを選択することができるので、SVGで保存してください。

150525003

3.Lazy Line PainterにてJSを取得する

こちらのサイトの「SVG TO LAZY LINE CONVERTER」にて、作ったSVGファイルをドラック&ドロップしてJSを取得します。

Lazy Line Painter
http://lazylinepainter.info/

150525004
150525005

4.こちらのサイトからzipをダウンロードしましょう

https://github.com/camoconnell/lazy-line-painter

これで下準備は完了です。

あとは準備したものを読み込ませるだけです

先ほど取得したものとzipからダウンロードしたものを読み込ませましょう。

↓↓↓↓zipもの↓↓↓↓
<script src="jquery.lazylinepainter-1.5.1.js"></script>
↑↑↑↑zipもの↑↑↑↑

↓↓↓↓取得したもの↓↓↓↓
var pathObj = {
~~省略~~
};
$(document).ready(function(){
~~省略~~
});
↑↑↑↑取得したもの↑↑↑↑

オプションは以下になります。

(もっとありますが、簡単なものだけ説明してます)

'strokeColor'    // 色を変更できます
'strokeOpacity'  // 透明度を変更できます
'delay'          // 開始速度を変更できます
'overrideKey'    // デモなどで複数個置きたい場合便利です
'speedMultiplier' // 描画されるスピードを変更できます
'drawSequential'  // 一度にアニメーションをさせる
'reverse' // 逆再生

簡単ですね!

DEMOがありますので、参考にしてください。

DEMO

画像並び替えプラグイン レスポンシブ対応

$
0
0

こんにちは、ウェブラボ技術メモ第15回目です。

今回は画像を綺麗に並べてくれるプラグインの紹介です。

今回使用するプラグインはこちらです。

http://miromannino.github.io/Justified-Gallery/

DLしたファイルの、jsとcssを読み込ませます。

<link rel="stylesheet" type="text/css" href="css/justifiedGallery.min.css">
<script src="js/jquery.justifiedGallery.min.js"></script>

オプションは以下になります。

その他にも色々とありますので、下記にて試してみてください。

http://miromannino.github.io/Justified-Gallery/options-and-events/

$(document).ready(function() {
	$('.gallery').justifiedGallery({
		rowHeight       : 250, // 1行の高さ設定
		fixedHeight     : true, // rowHeightに沿った高さにするか
		margins         : 5, // 画像の隙間設定
		lastRow         : 'nojustify', // 最後の行をどうするか
		randomize       : true, // ランダム
		sort            : false, // ソートをするかどうか
		rel             : 'gallery1', // rel属性の書き換え
		captions        : true, // captionを付けるかどうか
		captionSettings : { animationDuration: 500, visibleOpacity: 0.8, nonVisibleOpacity: 0.0 } // caption設定
	});
});

作ったDEMOがこちらになります。

DEMO

rel属性を書き換えられるので、LightBoxと併用して使うといいかもしれませんね。

外側の要素のwidthを%で指定すれば、後は自動的にレスポンシブ対応もしてくれます!

便利ですね。

画像は以下のサイトよりダウンロードさせて頂きました。

ソザイング

以上ウェブラボ技術メモでした。

JSで動画を後から読み込む

$
0
0

こんにちは、ウェブラボ技術メモ第16回目です。

1つのページに複数の動画を埋め込むとページの表示速度が遅くなりますよね。

これを改善するために「最初に代替画像を表示しておき、クリックしたら動画を読み込む」という処理をするJavascriptを実装してみたいと思います。

今回はyoutubeに対応したものを実装していきます。

まずはhtmlのhead内でjquery本体と以下のJavascriptを読み込みませます。

$(function (){
	var youtube = new Array(
		'https://www.youtube.com/embed/qLUnhoeaMwA?rel=0',  //1つ目の動画 ※youtubeの埋め込みコードのsrc属性をここに入れてください
		'https://www.youtube.com/embed/2rGTay3d0PQ?rel=0',  //2つ目の動画 ※youtubeの埋め込みコードのsrc属性をここに入れてください
		'https://www.youtube.com/embed/Lss9YMX09ew?rel=0'   //3つ目の動画 ※youtubeの埋め込みコードのsrc属性をここに入れてください
	);
	$('.youtube').each(function(index, element) {
		$(this).click(function (){
			$(this).after('<iframe width="480" height="270" src="'+youtube[index]+'&autoplay=1" frameborder="0" allowfullscreen></iframe>').remove(); //ここにsrc属性を変数に置き換えた埋め込みコード
		});
	});
});

次にhtmlのbody内に代替画像を記述しておきます。

<p><img class="youtube" src="img/movie_click.gif" width="480" height="270"></p>  //1つ目の動画の代替画像
<p><img class="youtube" src="img/movie_click.gif" width="480" height="270"></p>  //2つ目の動画の代替画像
<p><img class="youtube" src="img/movie_click.gif" width="480" height="270"></p>  //3つ目の動画の代替画像

たったこれだけの記述で実装可能です。

youtubeの埋め込みコードのsrc属性をあらかじめJavascript側の配列に入れておき、代替画像をクリックしたら埋め込みコードに置き換えるという処理を行っています。

作成したDEMOはこちらです。

ブラウザの開発ツールなどでファイルのレスポンスの状況を調べてみると、クリックされてから動画を読み込んでるのがわかります。

動画を埋め込んだページの表示速度を改善したいとき、是非利用してみてはどうでしょうか?

余談ですが、動画を埋め込む時には著作権や規約にも気を付けてくださいね。

以上、ウェブラボ技術メモでした。

CSS3で画像にマウスオーバーした時に効果をつける

$
0
0
こんにちは、ウェブラボ技術メモ第11回目です。

今回はcss3を使って、画像に少し効果をつけてみたいと思います。

 

今回使うのはhtmlとcssだけです。

まずはhtmlに画像ファイルを一つ記述します。

 

imgの後にspanがついていますが、これも効果を与えるのに必要なので記述します。

 

続いてcssを書いていきます

a {
	position: relative;
	display: block;
	width: 300px;
	height: 200px;
	background: #ff0000;
	overflow: hidden;
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-ms-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all 0.3s ease; /* 下のものをまとめる事も可能 全てのプロパティを0.3秒で開始と完了を滑らかに変化させる */
}

a:hover {
	opacity:0.7;
	-webkit-transform: scale(0.98,0.98);  
	-moz-transform: scale(0.98,0.98);  
	-o-transform: scale(0.98,0.98);  
	transform: scale(0.98,0.98); /* 要素を拡大縮小する この場合はX方向(横)、Y方向(縦)に98%に縮小 */
}

a span {
	opacity: 0;
	display: block;
	width: 100px;
	height: 500px; /* 画像のサイズに合わせて少し大きめに作る */
	position: absolute;
	top: -100px;
	left: -200px; /* 画像のサイズに合わせて位置を外側から外側へ */
	background: rgba(255, 255, 255, 0.3);

	-webkit-transition-property: left, top, opacity;
	   -moz-transition-property: left, top, opacity;
	    -ms-transition-property: left, top, opacity;
	     -o-transition-property: left, top, opacity;
	        transition-property: left, top, opacity; /* a spanのcssプロパティ left,top,opacityを時間的変化させる */
	-webkit-transition-duration: 0.7s, 0.5s, 0.1s;
	   -moz-transition-duration: 0.7s, 0.5s, 0.1s;
	    -ms-transition-duration: 0.7s, 0.5s, 0.1s;
	     -o-transition-duration: 0.7s, 0.5s, 0.1s;
	        transition-duration: 0.7s, 0.5s, 0.1s; /* 変化にかかる時間を指定 上のプロパティに対応している*/
	-webkit-transition-timing-function: ease;
	   -moz-transition-timing-function: ease;
	    -ms-transition-timing-function: ease;
	     -o-transition-timing-function: ease;
	        transition-timing-function: ease; /* 変化のタイミング・進行割合を指定 easeの場合は開始と完了を滑らかにする */
	-webkit-transform: rotate(30deg);
	   -moz-transform: rotate(30deg);
	    -ms-transform: rotate(30deg);
	     -o-transform: rotate(30deg);
	        transform: rotate(30deg); /* 要素を回転表示 この場合は30度回転させる */
}
a:hover span { /* マウスオーバーした時の光の位置 */
	opacity: 1;
	top: -50px;
	left: 630px; 
}

少し長いですが、この記述でマウスオーバー時に画像を縮小し、キラリと光らせたいと思います。

作成されたデモ画面はこちら

 

いかがでしょうか。少し目立たせたい画像やボタンなどに使うと気持ちのよい動きで、効果的だと思います。

今回使ったのはCSS3で、transitionなどはIE10からの対応になりますので旧バージョンのIEでは効果が失われてしまいますが、それによって表示に崩れが発生するという事はありません。

あくまで効果であり、無いと困るというようなものでもありませんので、気軽に使用してみても良いかと思います。

 

以上、今月の技術メモでした。

JSを使わずに背景に動画を使う

$
0
0
thumb_demo1507

こんにちは。

ウェブラボ技術メモ第14回です。

ここ数年で、背景に動画を使ったサイトを見る機会が増えました。

製品の使用イメージやお店などの雰囲気をインパクトと共に伝えることができ、よりユーザーの視点を画面に集中させることができますが、動画を用いるため、重くなる、旧ブラウザに対応できないなどといったデメリットもあります。

動画の表示にはjavascriptを使う方法もありますが、

今回はhtml5で登場したvideoタグとcssだけで背景に動画を表示し、
旧ブラウザで表示する際は代替画像を表示してみたいと思います。

当然ながら最初に動画を用意する必要があります。

動画の形式は今回のデモではmp4にしました。
動画の長さとしてはあまり長くなってしまうと容量が増えてしまいますので、20秒ほどで収めると良いでしょう。

htmlの記述はこれだけです。

<video src="movie.mp4" autoplay loop></video>

自動再生とループ再生されるようになっています。

CSSはvideo要素とIE8以下で代替画像表示の為、bodyに対して指定をし、

body {
  margin: 0;
  padding: 0;
/*  IE8以下の代替の背景画像  */
  background: #333 url(../img/ie8bg.gif) 50% 50% no-repeat;
  background-attachment: fixed;
  background-size: cover;
}

video {
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1;
}

後は背景の上に乗るpタグなどに

p {
  color: #fff;
  font-size: 123.1%;
  margin: 50px;
  position: relative;
  z-index: 3;
  text-align: center;
}

と、指定するだけです。

ではこれで作成したデモをご覧ください。

動画を背景にするデモ

背景に動画が表示され、見出しなどの要素が上に乗っています。

また、IE8以下のブラウザで見ると代替画像が表示されていると思います。

jqueryのプラグインを使用すれば旧ブラウザにも対応できるかもしれませんが

代替画像を用意すれば、htmlとcssだけでも十分に背景に動画をつかったサイトを作ることが可能です。

また、動画を背景にすると、画質が粗くなってしまう、という時には

htmlのvideoタグの前に空の要素を記述し、
<div class="pattern"></div>

CSSでドットやストライプなどの画像を背景で表示するようにすれば

.pattern {
  width: 100%;
  height: 100%;
  background: url(../img/yokojima.png);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2;
}

背景動画を少しおしゃれにしたデモ

このように画質を目立たなくすることも出来ます。

製品や会社を大きくアピールしたいような時には、動画を背景に使ってみるのも良いのではないでしょうか。

以上ウェブラボ技術メモでした。

サイトのツアーを実装するプラグイン

$
0
0
第18回目になりました。技術メモです。こんにちは。

今回ご紹介するjqueryプラグインは、SNSやCMSなどで見た事がある方もいらっしゃるのではないでしょうか。

サイトのツアーを実装するプラグインです。
「サイトのツアー???」と疑問に思われる方もおられると思いますので、
具体的にどのような事が出来るのか、まずはデモ画面をご覧ください。

デモ画面はこちら

説明が必要な画面の各パーツに対してツールチップを表示するという簡単なものですが

ちょっとした入力フォームに使う事でもユーザーの迷いを解消する事につながるかもしれません。

まずは下記URLからプラグインをダウンロードします。

https://github.com/CodeSells/TourTip

解凍したフォルダの中から、jsとcssをjqueryと一緒にhead内で読み込ませます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="tinytools.tourtip.min.js"></script>
<link rel=" stylesheet" href="css/tinytools.tourtip.min.css">

html内の、説明が必要なパーツに任意のidを振り、さらにツアーを開始させるボタンを設置します。

<h1 id="demo1">TourTipのデモです。</h1>
 
<p id="demo2">▼ボタンをクリックするとツアーがはじまります。</p>
<button type="button" id="StartTour">ツアーをスタート</button>
 
<div id="demo3">コンテンツ</div>

最後に、各idに対応したscriptを記述し、titleやdiscription(説明)を記述、

positionにはbottomやrightなど、ツールチップを表示したい位置を指定します。

<script>
$(document).ready(function () {
  $("#demo1").tourTip({
    title: "説明のタイトル",
    description: "説明が入ります",
    previous: true, //戻るボタンを設置するか true/false
    position: 'bottom' //噴出しの位置を指定
  });
  $("#demo2").tourTip({
    title: "ツアー方法の説明",
    description: "ボタンをクリック",
    previous: true,
    position: 'bottom'
  });
  $("#demo3").tourTip({
    title: "",
    description: "赤の画像だよ~。",
    previous: true,
    position: 'right'
  });
  $("#StartTour").click(function(){
    $.tourTip.start();
  });
});
</script>

これだけで上記のデモ画面のようなツアーを実装することができます。

cssを編集すれば、ツールチップのデザインもサイトに合わせて変更する事ができますし、途中で表示を消す事や、前の説明に戻る事もできるので、ユーザーのニーズに合わせて使い方の説明ができ、ページ内に無理に説明を詰め込む事もなく、読みやすいページを作る事が可能です。
気になるブラウザの対応状況ですが、Chromeやfirefoxといったモダンブラウザはもちろん、IEも8から対応しています。
ただし、IE7以下は崩れてしまうので、IE7以下はプラグインを読み込ませないようにするなど対応が必要になります。

サイトのツアーを実装するプラグインは他にも色々ありますので、用途に合ったものを使ってみると良いと思います。

以上、技術メモでした。


画像をパズルにしてくれるプラグイン

$
0
0

こんにちは。

第19回目になりました。

クリスマスですね!

クリスマスと言えばサンタですね!!

サンタといえば、パズルですね(?)

ということで、画像をパズルにしてくれるプラグインを紹介します。

jqPuzzle – Customizable Sliding Puzzles with jQuery

http://www.2meter3.de/jqPuzzle/index.html

2008年と7年前にもうこのプラグインがあったことが驚きですね…。

jQueryの対応バージョンも1.2系~1.8系までなら問題なく動きました。

導入はいたって簡単です。

上記のURLからzipをダウンロードし、それらを読み込ませて画像にクラスをつけるだけです。

<link rel="stylesheet" type="text/css" href="jquery.jqpuzzle.css">
<script type="text/javascript" src="jquery.jqpuzzle.js"></script> 

<img class="jqPuzzle" src="img/santa.jpg" width="980" height="653" alt="サンタ">

このプラグインの素晴らしいところは、クラスを変えていくだけでJSのオプションが切り替えられるというところです。

※多様なオプションがありますが、クラスで変えていく場合は限度がありますので、ご注意下さい。

デフォ(4×4のパズル)

<img class="jqPuzzle" src="img/santa.jpg" width="980" height="653" alt="サンタ">

5×5のパズルにしたい場合

<img class="jqPuzzle jqp-r5-c5" src="img/santa.jpg" width="980" height="653" alt="サンタ">

クラスオプションの一例

r // パズルの行の数3~9
c // パズルの列の数3~9
h // 非表示にする場所
N // パズルの数字を消す
S // 最初にシャッフルする

jqp-r5-c5 // 5×5
jqp-r5-c5-h25 // 5×5で25番目が非表示
jqp-r5-c5-h25-NS // 5×5で25番目が非表示でパズルの数字が消えてシャッフルされてる状態

もちろん、クラスを追加しなくても変更することは可能です。

以下一例

var settings = {
	rows: 3, // パズルの行の数3~9
	cols: 3, // パズルの列の数3~9
	hole: 9, // 非表示にする場所
	shuffle: true, // 最初にシャッフルするかどうか
	numbers: true, // ピースに番号をふるかどうか
	language: 'en', // 言語
	style: {
		gridSize: 2, // ピースとピースの間のグリッド幅
		backgroundOpacity: 0.3 // 非表示になってる部分の元画像の透過率
	}
};
var texts = {
	// ボタン等の文言変更
	shuffleLabel: 'シャッフル',
	toggleOriginalLabel: '元画像',
	toggleNumbersLabel: '順番表示',
	movesLabel: '動かした回数',
	secondsLabel: '秒経過'
};
$('.demo img').jqPuzzle(settings, texts);

簡単ですね!

これで一人でも誰かと一緒でも楽しいクリスマスが過ごせますね!!

なお、ライセンスは以下になります。

jqPuzzle is dual-licensed under the GPL and MIT licenses.

簡単のから難しいのまで作ってみたので是非試してみてください。

※ハイレベル難易度はクリアしてません…。

以下DEMO

ノーマル難易度

ハイレベル難易度

印刷用CSSを使わずに特定の要素のみを印刷する

$
0
0

こんにちは。

第20回目ウェブラボ技術メモです。

今回は特定の要素のみを印刷するプラグイン「printThis」を紹介したいと思います。

普段なら特定の要素のみを印刷する場合には、その印刷箇所に応じたCSSを作らなければいけません。

しかも、印刷したい箇所が同一ページ内に複数ある場合にはかなり面倒な処理が必要となります。

ですが、このプラグインを使えば、もうそんな必要はありません!!

では早速実装してみましょう。

ボタンを押すとそれに応じた写真を印刷するDEMOを作ってみたいと思います。

・GitHub

https://github.com/jasonday/printThis

まずはJquery本体と一緒にprintThis.jsを読み込ませます。

そして以下の様に印刷ボタンと印刷箇所を設定します。

<script src="js/printThis.js"></script>
<script>
$(function() {
	$('.print_btn01').click(function(){  //印刷ボタンをここで指定
	    $('.print_img01').printThis();   //印刷したい箇所をここで指定
	});
});
</script>

次に、印刷したい箇所のHTMLは以下の通りです。

上で設定したクラス(またはID)を印刷ボタン、印刷したい箇所に対応させます。

<p class="print_img01"><img src="http://www.weblab.co.jp/demo/1601/img/img01.jpg" width="980" height="653" alt="特定の要素のみを印刷する"></p>  //印刷したい箇所
<p class="print_btn01"><a>この写真を印刷する</a></p>  //印刷ボタン

たったこれだけで実装できちゃうんです!簡単ですね!!

注意事項としては、画像などを印刷する場合には絶対パスで書いてください。でないとリンク切れ扱いになってしまいます。

作成したDEMOはこちら

ちなみにIE7から使えるらしいとのこと。もう印刷用CSSを無理して用意する必要はありませんね。

クーポンや地図を載せたページなど、活躍する機会は沢山あるのではないでしょうか?

以上、今回のウェブラボ技術メモでした。

レイアウトを二分割してスライドさせるプラグイン

$
0
0

こんにちは。

ウェブラボ技術メモです。

今回は少し動きのあるサイトで使えそうなプラグインをご紹介します。

どんなプラグインか、説明するより見て操作してみるのが一番でしょう。

ということで、まずはデモをご覧ください。

レイアウトが左右に分割され、スクロールすると別方向にコンテンツがスライドしていますね。

何か対比したいものを左右に並べても良いでしょうし、1つのコンテンツでも画像と文章で分けるなど、色々な見せ方ができると思います。

ページ上部と右側にナビゲーションがついているので、現在地も把握しやすいですね。

では早速実装してみましょう。

プラグインは下記よりダウンロードしてください。

・GitHub

https://github.com/alvarotrigo/multiscroll.js

まずは下記のようにJquery本体と一緒にプラグインのjsとcssを読み込ませます。

今回は一緒にjquery.easings.min.jsも読み込ませましょう。こちらのjsはイージング、つまり単調な動きだけでなく、加速や減速など動きに強弱のついたエフェクト
処理をつけるためのものです。

<link rel="stylesheet" href="css/jquery.multiscroll.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="js/jquery.easings.min.js"></script>
<script src="js/printThis.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$('#myContainer').multiscroll({
           	// ここからオプションを指定する
           	sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE'],  //オプションで背景色を指定できます
           	anchors: ['first', 'second', 'third'],  //ナビゲーションのテキストを変更できます
           	menu: '#menu',
           	navigation: true,  // 右のナビゲーションの有効化
           	navigationTooltips: ['One', 'Two', 'Three'],  //右側のナビゲーションにテキストを表示させます
           	loopBottom: true,  //「true」にすると最初のセクションから上にスクロールした時に、最後のセクションに移動するようになる。
           	loopTop: true
		});
	});
</script>

次にHTMLを記述します。

下記のように、左右のコンテンツを分け、その中にスライドさせるコンテンツを記述していきます。もちろんテキストだけでなく画像等どんなコンテンツを入れても構いません。

<div id="myContainer">
        <!-- 左側のコンテンツ内容を記述 -->
        <div class="ms-left">
            <div class="ms-section">
                <h2>左コンテンツ1</h2>
                <p>左のコンテンツ1番目のものが入ります。</p>
            </div>
            <div class="ms-section">
                <h2>左コンテンツ2 </h2>
                <p>左のコンテンツ2番目のものが入ります。</p>
            </div>
            <div class="ms-section">
                <h2>左コンテンツ3</h2>
                <p>左のコンテンツ3番目のものが入ります。</p>
            </div>
        </div>

        <!-- 右側のコンテンツ内容を記述 -->			
        <div class="ms-right">
            <div class="ms-section">
                <h2>右コンテンツ1</h2>
                <p>右のコンテンツ1番目のものが入ります。</p>
            </div>
            <div class="ms-section">
                <h2>右コンテンツ2</h2>
                <p>右のコンテンツ2番目のものが入ります。</p>
            </div>
            <div class="ms-section">
                <h2>右コンテンツ3</h2>
                <p>右のコンテンツ3番目のものが入ります。</p>
            </div>
        </div>	
    </div>

たったこれだけでデモのようなページが出来上がりです!

とても簡単に実装できる上に、今チェックしてみたところ、なんとこのプラグインはIE7でも動くようです。

旧バージョンのIEサポートが終わり、対象ブラウザからカットされる事が多くなってきましたが、どうしても対応させなければならない!というような時にもこれなら安心して使えそうですね。

というわけで、今月の技術メモは以上です。

次回もお楽しみに!

簡単にフリップコンテンツを実装する

$
0
0
こんにちは、ウェブラボ技術メモです。

今回は簡単にフリップコンテンツを実装できるプラグイン「jQuery.Flipster」を紹介したいと思います。

フリップコンテンツと聞くと導入に敷居が高そうに聞こえますが、全然そんなことはありません!!すごい簡単に実装できてしまうんです!!

では早速実装していきます。

プラグインは下記よりダウンロードしてください。

・Github
https://github.com/drien/jquery-flipster

まずはjquery本体、jquery.flipsterを動かすのに必要なファイルを読み込ませます。

■外部ファイル読み込み

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="js/jquery.flipster.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery.flipster.css">

次にコンテンツ部分を記述します。

下記のように各パネルはリストタグで、それを内包する要素にクラスまたはIDを与えます。

■コンテンツ部分

<div class="flipster1">
<ul>
<li><img src="img/img01.jpg" width="300" height="200" alt=""></li>
<li><img src="img/img02.jpg" width="300" height="200" alt=""></li>
<li><img src="img/img03.jpg" width="300" height="200" alt=""></li>
<li><img src="img/img01.jpg" width="300" height="200" alt=""></li>
<li><img src="img/img02.jpg" width="300" height="200" alt=""></li>
<li><img src="img/img03.jpg" width="300" height="200" alt=""></li>
</ul>	
</div>

javascript部分は</body>の上に記述してください。

先ほど与えたクラスまたはIDをここで指定します。

■javascript部分

$(function() {
	$('.flipster1').flipster({
		style: 'coverflow' //ここでレイアウトをかえる。(coverflow|carousel|flat|wheel)
	});
});

これだけで実装できちゃうんです。簡単ですね。

せっかくなので用意されているレイアウト4種類全てのDEMOを用意しました。

DEMOはこちら

ぺらぺら、くるくると気持ちよく操作できますね。

しかもこのプラグインはレスポンシブ対応で、スマホでも、タブレットでも同じ動きができます。

また、オプションも色々とあるので自分好みの設定にもできます。(Github参照)

気になる対応ブラウザは、

Chrome
Safari & iOS Safari
Firefox
IE 10+
IE 8-9 (一部サポート)
とのこと、念の為IE 8-9で確認してみましたがこれは対応していないようなものと考えた方がいいですね。

古いブラウザなんて知らない!とにかくサイトをカッコ良くしたい!!と言う人には色々と役立つ機会があるのではないでしょうか?

以上、今回の技術メモでした。

白黒画像をマウスオーバーでカラーに

$
0
0
こんにちは。ウェブラボ技術メモです。

画像のマウスオーバー時のエフェクトはこれまでもいくつか紹介してきましたが

フォトギャラリーなどにぴったりなエフェクトを今回はご紹介します。

まずは下記ページからファイルをダウンロードします

http://gianlucaguarini.github.io/jQuery.BlackAndWhite/

1.外部ファイル読み込み

head内にjqueryとjquery.BlackAndWhite.jsを読み込ませます。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/jquery.BlackAndWhite.js"></script>

2.コンテンツ部分

今回は画像のギャラリーのようにするため、htmlには下記のように画像のリストを作成します。
aタグにclass=”bwWrapper”を設置し、このclassに対してjsによる命令を書きます。
<ul id="wrap">
	<li><a href="#" class="bwWrapper"><img  src="img/Hydrangeas.jpg" width="300" height="225" /></a></li>
	<li><a href="#" class="bwWrapper"><img  src="img/Desert.jpg" width="300" height="225" /></a></li>
	<li class="last"><a href="#" class="bwWrapper"><img  src="img/Chrysanthemum.jpg" width="300" height="225" /></a></li>
	<li><a href="#" class="bwWrapper"><img  src="img/Jellyfish.jpg" width="300" height="225" /></a></li>
	<li><a href="#" class="bwWrapper"><img  src="img/Koala.jpg" width="300" height="225" /></a></li>
	<li class="last"><a href="#" class="bwWrapper"><img  src="img/Lighthouse.jpg" width="300" height="225" /></a></li>
	<li><a href="#" class="bwWrapper"><img  src="img/Penguins.jpg" width="300" height="225" /></a></li>
	<li class="last"><a href="#" class="bwWrapper"><img  src="img/Tulips.jpg" width="300" height="225" /></a></li>
</ul>

3.javascript部分

$(function(){
	$('.bwWrapper').BlackAndWhite({
        hoverEffect : true,
        webworkerPath : false,
        invertHoverEffect: false, //白黒→カラー(trueにするとカラー→白黒)
        intensity:1,
        speed: {
            fadeIn: 200, //フェードインのスピード
            fadeOut: 800 //フェードアウトのスピード
        },
        onImageReady:function(img) {
        }
    });
});

4.CSS部分

画像を並べるスタイル等が別途必要になりますが、これだけのCSSで最低限の動きは実現できます。
.bwWrapper {
    position:relative;
    display:block;
}

今回作成したデモページはこちらです。

白黒の画像が並ぶ中で、マウスを合わせた画像だけカラーになります。

カラーから白黒に変更することも可能ですが、
マウスオーバーしている画像がひと目でわかりますし、白黒の中のカラーはコントラストの高い画像であるほど美しく映えると思います。

モダンブラウザではもちろん、IEは9から対応しています。

レスポンシブ対応もされており、スマホではタップするとカラーが変更されるようです。
他とは少し違ったギャラリーにしたいという時、導入してみてはいかがでしょうか。

以上、技術メモでした。

Viewing all 87 articles
Browse latest View live