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

写真をちりばめた感じのギャラリーを実装する

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

今回は、一味違ったギャラリーを実装できる「Photopile JS」を実装してみたいと思います。

まずはどんなものなのか作成したDEMOをご覧ください。

写真をちりばめたような変わったもので、ドラッグ&ドロップで見たい画像を探すような感じですね。

しかもリロードするたびにランダムで画像が配置されます。

一見すると導入が大変そうに思えますが、とっても簡単です。

では実装まで解説していきます。

下記URLからファイル一式をダウンロードしてきてください。

https://github.com/bigbhowell/Photopile-JS

まずはダウンロードしたCSSと、jquery、jquery-ui.jsをHTMLのhead内で読み込ませます。

■HTML head内

<link rel="stylesheet" href="css/photopile.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.js"></script>

次に</body>の上にダウンロードしたJS読み込ませます。

■HTML </body>の上

<script src="js/photopile.js"></script>

あとは以下のようにギャラリー部分を記述するだけです。

■HTML ギャラリー部分

<div class="photopile-wrapper">
	<ul class="photopile">
		<li>
			<a href="img/img01.jpg"><img src="img/img01.jpg" width="150" height="100" alt=""></a>
		</li>
				・
				・
		<!-- ここに自由に画像を追加 -->
				・
				・
	</ul>
</div>

たったこれだけで実装できてしまいます。

photopile.jsの中身を見てみると、コメントアウトで記述してあるPHOTOPILE SETTINGS内の値を変えてあげれば、ボーダーの太さや色、オートプレイの有無など他にも色々と自分好みにカスタマイズできるようになっています。非常に使いやすいですね。

確認した感じだと対応ブラウザはモダンブラウザはもちろんのこと、IEは9から大丈夫そうです。

一応レスポンシブ対応しているみたいですが、スマートフォンではドラッグ&ドロップができなく、下の方に埋もれている画像とかが見れないので、PCのみの利用にするか何かしらの対応を行わなければなりませんね。。。

いかがでしたでしょうか、スライドショーやただ画像を並べただけじゃ物足りない!他のサイトと違ったギャラリーを実装したい!!と言う人は導入してみてはいかがでしょうか?

以上、技術メモでした。


instagramの写真をサイトに埋め込む

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

みなさんはinstagramを利用した事はありますか?

instagramとは写真や動画を撮影、加工、共有できるサービスの事で、今もっとも人気のあるSNSといっても良いでしょう。
今回はいつもとは少し趣向を変えて、instagramで投稿した写真をページに埋め込む方法をやっていきたいと思います。

埋め込みにあたって、ここでは他のユーザーではなく自身の投稿を埋め込むことにします。

まずは、PCからinstagramにログインします。

tec1606_01

自分の投稿一覧画面から、埋め込みたい写真をクリックすると写真の詳細画面が出てくるので

右下の「…」となっている部分をクリックし、「埋め込み」を選択します。

tec1606_02

埋め込みコードが表示されるので、コードをコピーボタンをクリックし、htmlに貼り付けます。

これだけで埋め込みは完成!
下記のように表示されます。

tec1606_04

埋め込む際に、表示の大きさを変えたい場合は

埋め込みコード内に、「max-width:xxxpx;」という記述があるので、
ここの数値を埋め込みたいサイズに変更すれば、拡大や縮小もできます。
ただし、オリジナルの画像より大きいサイズを指定すると、ひきのばされた画像はぼやけて表示されてしまうので注意が必要です。

また、1枚の画像を埋め込むのではなく、投稿ごとに更新される写真一覧を埋め込みたい場合は

下記のようなサービスを使って埋め込むと良いでしょう。

https://snapwidget.com/

https://widgets.websta.me/

コードを公開共有できるサイト「CodePen」を活用してみる

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

今回は、HTML、CSS、Javascriptなどの様々なコードを公開共有できるサイト「CodePen」を活用してみたいと思います。

■CodePen

http://codepen.io/

このサイトの便利なところは公開されているコードをその場で編集できたり、webサイトに埋め込んだりすることができます。

アカウントを作れば、自分のコードを公開したり、クロスブラウザ機能などの他にも色々な機能が使えます。

公開されているコードのライセンスは以下のページで解説してあります。

http://blog.codepen.io/legal/licensing/

どうやら基本的にはMITライセンスになるみたいですね。

では、試しに検索してみましょう。右上の虫眼鏡のアイコンをクリックして出てきた入力欄に検索したい内容を入れるだけです。

普段Javascriptで実装しているスライダーやアコーディオン、タブなどをCSSのみで実装できる技術を検索してみましたので紹介したいと思います。

■スライダー

See the Pen Pure CSS3 slider by aladin ben sassi (@Eliteware) on CodePen.

■アコーディオン

See the Pen Accordion Css Only by Mahmoud Elnezamy (@NeZaMy) on CodePen.

■タブ

See the Pen Tabs CSS & HTML, no JS & Jquery by llgruff (@llgruff) on CodePen.

■背景色変化

See the Pen CSS Animated Background Landing Page by Tania (@taniarascia) on CodePen.

なんとCSSだけでここまで表現できてしまうんです。凄いですね。

IEのサポートも8まで終了し、今まで使えなかったこういった技術などが今後使う機会が増えていくかと思います。

他にも色々な技術が公開されており、見るだけでも非常に勉強になるので是非活用してみてはいかがでしょうか?

以上、技術メモでした。

Flexboxでコンテンツを入れ替える

$
0
0
こんにちは、8月ももうすぐ終わり、宿題を溜め込んだ子どもたちには憂鬱な時期ですね。
混雑しない9月にしたり顔で夏休みを取ろうと企てているコーダーがお送りします。
技術メモです。

今回はCSS3のFlexboxについて少し紹介したいと思います。

Flexboxとは、要素のサイズが不明なものでも変化するものでも、柔軟なレイアウトを実現できるCSS3の新しいレイアウトモジュールです。
複雑なレイアウトでも今までより少ないコードで、よりシンプルに実装することができます。
と、説明しても何のことだかいまひとつピンときませんよね。
沢山のプロパティが設定でき、様々なことができるFlexboxですが、その全てを紹介すると記事が恐ろしく長くなってしまいそうなので、今回は、コンテンツの並び替えをしてみたいと思います。

単純に並び替えが簡単になる他にも、例えばPCとスマホでコンテンツの並び順を替えたい時などにも使えるかと思います。

早速ですがデモをご覧ください。

上が何もスタイル指定しない通常のブロックコンテンツで

下がFlexboxを使って順番を入れ替えたものです。
2つともhtmlのソース上は下記のように同じ順番になっています。

■html

<div id="flex">
    <div class="blue">1つめのブロック</div>
    <div class="red">2つめのブロック</div>
    <div class="green">3つめのブロック</div>
</div>

これに対してcssでflexboxの指定を行います。

ベンダープレフィックスというブラウザごとの指定が必要になるので、少し冗長になりますが頑張って書きましょう。

■css

#flex {
    display:-webkit-box;/*--- Androidブラウザ用 ---*/
    display:-ms-flexbox;/*--- IE10 ---*/
    display:-webkit-flex;/*--- safari(PC)用 ---*/
    display:flex;

    -ms-flex-wrap:wrap;/*--- IE10用 ---*/
    -webkit-flex-wrap:wrap;/*--- safari(PC)用 ---*/
    flex-wrap:wrap;
}
#flex .blue {
    order: 3;
}
#flex .red {
    order: 1;
}
#flex .green {
    order: 2;
}

まずdisplay:flex;を指定しますが、flexboxの初期のコンセプトは、1行に複数のアイテムをコンテナにセットすることなので

これだけだと、レイアウトそのものが横並びに変わってしまいます。
そこで、その後にflex-wrap:wrap;というプロパティを指定しています。
これで横並びになっていたものが改行され、縦並びになります。

後はFlexboxの中のコンテンツそれぞれに振られたclassに対して

orderで順番を指定するだけでコンテンツの順番が簡単に替わりました。

CSS3の技術なので、IEは10からの対応になり、幅広いブラウザに対応しなければいけない場合は使用が難しいですが

スマホの時だけ順番を変えたいという時などはjavascript等を使うことなく変更ができますので、便利に使えるのではないかと思います。

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

jQueryで外部にあるHTMLを読み込む

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

今回は、jQueryで外部HTMLの指定した部分を読み込んでみたいと思います。

具代的には、外部にあるお知らせ一覧ページから、指定した件数だけ読み込んで表示するDEMOを作ります。

外部にあるお知らせ一覧ページは以下のようなものを作りました。

お知らせ一覧ページ|外部HTML

■外部ページの読み込みたい部分のHTML

<div id="demo_block">
<ul>
<li><span>2016/09/25</span>1つ目の記事1つ目の記事1つ目の記事1つ目の記事1つ目の記事1つ目の記事1つ目の記事1つ目の記事1つ目の記事</li>
<li><span>2016/09/24</span>2つ目の記事2つ目の記事2つ目の記事2つ目の記事2つ目の記事2つ目の記事2つ目の記事2つ目の記事2つ目の記事</li>
<li><span>2016/09/23</span>3つ目の記事3つ目の記事3つ目の記事3つ目の記事3つ目の記事3つ目の記事3つ目の記事3つ目の記事3つ目の記事</li>
											・
											・
											・
</ul>
</div>

さて、ここから5件だけ取り出して表示させます。

まずは外部HTMLを表示させたい領域を以下のように記述します。

■表示するHTML領域

<div id="info"><!-- ここに読み込んだHTMLを表示 --></div>

次にJavascript部分です。

必要なものはjQueryだけで、Ajaxで外部ページを読み込みます。

Ajaxとは、Asynchronous JavaScript + XML の略で、非同期通信を利用してデータを取得したり、動的にウェブページの内容を書き換える技術のことです。

Google Mapなどに利用されています。

■Javascript部分

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function() {
	$.ajax({
		url: 'demo.html', //読み込むファイルを指定
		cache: false, //キャッシュを保存するかの指定
		success: function(html){
			//データ取得後に実行する処理
			$(html).find('#demo_block').each(function(){ //読み込みたい部分の指定 ※今回は#demo_blockの中身のulから読み込まれる
				$('#info').html($(this).html()); //読み込んだ外部HTMLを表示する領域を指定
				return false;
			});
			$('ul li:gt(4)').remove(); //6件目以降の li を削除
		}
	});
});
</script>

Javascriptはたったこれだけです。successの中を変更することによって、他にも色々なことができますね。

出来上がったDEMOはこちらです。

DEMO

いかがでしたでしょうか?別ファイルを用意してPHPやiframeで読み込んだりするよりも楽ちんですね!!

かなり役立つ機会はあるのではないかと思います。最近私も使う機会が多いです。

注意事項としては、このままでは別ドメインにあるHTMLなどのファイルは読み込むことができません。

ですが、対応する方法はいくつかあるようですね。結構面倒そうな感じですが。。。

以上、技術メモでした。

JSとCSS3を使って画像にブラー効果をかける

$
0
0
こんにちは、すっかり秋めいてきましたが、気温なのか、花粉なのか、
おかげで鼻水が止まりません。ウェブラボ技術メモです。

さて、今回はCSSやJSを使用して作成されたエフェクトを共有、公開するサイト「codrops」で

公開されていたJSとCSS3を使ったホバーエフェクトをご紹介します。

これまでのようにJSを読み込ませるだけだったり、CSSを数行書けばできる!というものでは無いので

コードの紹介は省きますが、デモを作成したのでこちらをご覧ください。
※透明度を下げると動きとぼやけた感じで少し酔ってしまうので、最後の1つだけ透明度をさげたデモにしてあります。

デモはこちら

マウスで画像をグリグリと触ってみてもらうとわかると思いますが

マウスの位置に合わせて画像が傾くような効果が現れます。

画像ギャラリーなどに使っても面白いですし

大きく表示するような画像で使ってもインパクトがあって面白いと思います。

デモのように、オプションを変更する事で、また違った印象を与える事もできますので

下記URLを参考に、挑戦してみてはいかがでしょうか。

http://tympanus.net/codrops/2015/05/28/image-tilt-effect/

無限ループさせるスライダーを実装する

$
0
0
こんにちは、ウェブラボ技術メモです。
今回はコンテンツ要素を無限ループさせるスライダーを実装してみたいと思います。

まずはどのようなスライダーなのか、作成したDEMOをご覧ください。

横並びになっている5個の画像が自動でスライドしているのがわかりますね。

実装にあたってこちらの紹介ページを参考にさせていただきました。

http://black-flag.net/jquery/20110707-3305.html

それでは実装まで解説していきます。

まずはhead内でjquery本体と動作に必要なCSSを読み込ませ、

動作させるためのスクリプトを記述します。
■スクリプト
<link rel="stylesheet" href="../common/css/common.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(function(){
    $('#loopslider').each(function(){
        var loopsliderWidth = $(this).width();
        var loopsliderHeight = $(this).height();
        $(this).children('ul').wrapAll('<div id="loopslider_wrap"></div>');

        var listWidth = $('#loopslider_wrap').children('ul').children('li').width();
        var listCount = $('#loopslider_wrap').children('ul').children('li').length;

        var loopWidth = (listWidth)*(listCount);

        $('#loopslider_wrap').css({
            top: '0',
            left: '0',
            width: ((loopWidth) * 2),
            height: (loopsliderHeight),
            overflow: 'hidden',
            position: 'absolute'
        });

        $('#loopslider_wrap ul').css({
            width: (loopWidth)
        });
        loopsliderPosition();

        function loopsliderPosition(){
            $('#loopslider_wrap').css({left:'0'});
            $('#loopslider_wrap').stop().animate({left:'-' + (loopWidth) + 'px'},25000,'linear');
            setTimeout(function(){
                loopsliderPosition();
            },25000);
        };

        $('#loopslider_wrap ul').clone().appendTo('#loopslider_wrap');
    });
});
</script>

次にスライダーさせるコンテンツ要素をHTMLに記述します。

■HTML
<div id="loopslider01">
		<ul>
			<li><img src="img/1.jpg" width="320" height="213" alt="" /></li>
			<li><img src="img/2.jpg" width="320" height="213" alt="" /></li>
			<li><img src="img/3.jpg" width="320" height="213" alt="" /></li>
			<li><img src="img/4.jpg" width="320" height="213" alt="" /></li>
			<li><img src="img/5.jpg" width="320" height="213" alt="" /></li>
		</ul>
	</div>

最後にHTMLに対応したCSSを記述します。

■CSS
/* loopslider */
#loopslider {
    margin: 0 auto;
    width: 100%;
    height: 213px;
    text-align: left;
    position: relative;
    overflow: hidden;
}

#loopslider ul {
    height: 213px;
    float: left;
    display: inline;
    overflow: hidden;
}

#loopslider ul li {
    width: 320px;
    height: 213px;
    float: left;
    display: inline;
    overflow: hidden;
}

/* =======================================
    ClearFixElements
======================================= */
#loopslider ul:after {
    content: ".";
    height: 0;
    clear: both;
    display: block;
    visibility: hidden;
}

#loopslider ul {
    display: inline-block;
    overflow: hidden;
}

スライダーの速度設定は、「function loopsliderPosition()」の中にある

2つの「25000」の値を変更させることで調節できます。
この値は「<ul>」の要素全体が、「#loopslider」の端から端まで、何ミリ秒で移動するかを意味しています。
そのため、スライドさせるコンテンツ要素の横幅が大きいほど、早くスライドします。

今回は自動で一方向に流れる無限ループスライダーを紹介いたしましたが

スクリプト部分やCSS部分の記述を変更・追加することで、
以下のような動作を実装することができます。
  • コンテンツ要素にマウスオーバーするとスライダーがストップする
  • スライダーの左右に設置したボタンでスライドの向きを変化させる

これらの動作については、今回ご紹介させていただいたブログの下記ページにて紹介されています。

http://black-flag.net/jquery/20111214-3623.html

以上、技術メモでした。

要素を3D回転させられるプラグイン「TURNBOX.js」

$
0
0
こんにちは、最近どんどん寒くなってきました。

風邪など引かないよう気をつけて下さいね。

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

要素を3D回転させられるjqueryプラグイン「TURNBOX.js」を使用してみたいと思います。

まずは公式のDOWNLOADタブ内のDownloadボタンからファイルを落としてきてください。

TURNBOX.js公式

公式にもDEMOが沢山あり、どうやら色々と応用が利くみたいですね。

どうやらライセンスはMITとのことです。

今回は簡単なDEMOを3つほど作ってみました。

DEMOはこちら

では説明していきます。

まずはjquery本体と一緒にturnBox.jsを読み込ませてください。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/turnBox.js"></script>

次に3D回転させたい部分の設定を記述します。

<script>
$(function() {
	//例1 縦回転ver
	$(".rotateBox01").turnBox({
		width: 980, //ボックスの横幅
		height: 170, //ボックスの縦幅
		axis: "X", //回転軸の設定 "X"なら縦、"Y"なら横
		perspective: 800, //パースペクティブの強さ
		duration: 300, //アニメーションの時間
		delay: 0, //アニメーションを開始するまでの時間
		easing: "linear", //アニメーションの緩急
		direction: "positive", //回転方向の設定。"negative"で逆回転
		type: "real" //回転アニメーション "real","repeat","skip"
	});

	//例2 横回転ver
	$(".rotateBox02").turnBox({
		width: 980, //ボックスの横幅
		height: 170, //ボックスの縦幅
		axis: "Y", //回転軸の設定 "X"なら縦、"Y"なら横
		perspective: 800, //パースペクティブの強さ
		duration: 600, //アニメーションの時間
		delay: 0,  //アニメーションを開始するまでの時間
		easing: "ease", //アニメーションの緩急
		direction: "positive", //回転方向の設定。"negative"で逆回転
		type: "skip" //回転アニメーション "real","repeat","skip"
	});
	
	//例3 縦回転+偶数面の高さが違うver
	$(".rotateBox03").turnBox({
		width: 980, //ボックスの横幅
		height: 170, //ボックスの縦幅
		axis: "X", //回転軸の設定 "X"なら縦、"Y"なら横
		even: 300, //偶数面の長さ "X"なら縦幅、"Y"なら横幅、設定しない場合は等幅
		perspective: 8000, //パースペクティブの強さ
		duration: 400, //アニメーションの時間
		delay: 0,  //アニメーションを開始するまでの時間
		easing: "ease", //アニメーションの緩急
		direction: "positive", //回転方向の設定。"negative"で逆回転
		type: "skip" //回転アニメーション "real","repeat","skip"
	});
});
</script>

3D回転させたい場所のHTMLは以下の通りです。他の2つのDEMOもクラス名が違うだけで同じです。

<div class="rotateBox01"><!-- 回転させたい要素 -->
	<!-- 最低2、最大4つのブロックを指定 -->
	<div><p>ブロック1</p><p class="turnBoxButton">回転</p></div><!-- 1つめのブロック -->
	<div><p>ブロック2</p><p class="turnBoxButton">回転</p></div><!-- 2つめのブロック -->
	<div><p>ブロック3</p><p class="turnBoxButton">回転</p></div><!-- 3つめのブロック -->
	<div><p>ブロック4</p><p class="turnBoxButton">回転</p></div><!-- 4つめのブロック -->
</div>

CSSの指定も自由に行えます。今回は以下のように指定しました。

/* 回転させたい要素 */

.turnBoxFace {
	font-size: 18px;
	text-align: center;
}

/* 1つめのブロック */

.turnBoxFaceNum1 {
	background: #f9d0d1;
}

/* 2つめのブロック */

.turnBoxFaceNum2 {
	background: #94b3fa;
}

/* 3つめのブロック */

.turnBoxFaceNum3 {
	background: #baf9b7;
}

/* 4つめのブロック */

.turnBoxFaceNum4 {
	background: #fbfcbc;
}

/* 回転させたい要素内の設定 */

.turnBoxFace p {
	padding: 20px 0;
}

.turnBoxButton {
	width: 19%;
	margin: 0 auto;
	padding: 20px;
	background: #fff;
	cursor: pointer;
	border-radius: 5px;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
}

必要な記述はこれだけです、簡単ですね。オプションなどの詳しい説明は公式にあります。

公式にあるタブなどのDEMO、レスポンシブ対応はJavascriptを自分で追加で書かないといけないみたいなので知識がない人は難しいかもしれません。。。

時間があるときに私も試してみようかなと思います。

対応ブラウザは公式にもありますが以下の通りです。

Google Chrome

Firefox
Safari
Opera
Internet Explorer 10+

まあ予想通りですね。

試しにIE9以下で確認してみましたので参考までに…

IE9 : 3D回転がしなくなるだけでレイアウトが大きく崩れるとかはない。

IE8 : 若干のレイアウト崩れ。
IE7 : そもそもJavascriptが動かない

といった感じです。

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


波紋のエフェクトを実装する「jQuery Rippleria」

$
0
0
新年1回目のウェブラボ技術メモです。

正月休みはいかがお過ごしだったでしょうか。

今年は姪っ子へのお年玉のあげ方を悩みすぎたお正月でした。
悩んで悩んだ結果、結局いつもの宝探し形式です。

あけましておめでとうございます。

さて、今回はマテリアルデザインでよく見かける、波紋のエフェクトをjqueryプラグイン「jQuery Rippleria」を使用して実装してみたいと思います。

早速下記公式サイトからファイルを落とします。

公式サイト

必要なファイルは

jquery.rippleria.min.js
jquery.rippleria.css

この2つだけです。

まずはこれを読み込ませます。

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

続いて、下記のようにスクリプトを記述します。

注意したいのは、この記述はbodyの閉じタグ前に記述しないと正常に動きません。

<script>
    $('#rippleria').rippleria({
        duration: 750,
        easing: 'ease-in'
    });

    $('#rippleria').click(function(e) {
        e.preventDefault();

        var randInt = function (min, max) {
        var rand = min + Math.random() * (max - min)
        rand = Math.round(rand);
        return rand;
    };

    $(this).rippleria('changeColor',
            'rgba('+randInt(0,200)+','+randInt(0,200)+','+randInt(0,200)+',0.'+randInt(3,5));
    });
</script>

後はHTMLでボタンや画像を記述します。

今回は両方サンプルを用意しました。

<!-- ボタン -->
	<div class="block tac">
		<button data-rippleria class="btn btn-primary">Click me!</button>
	</div>

	<!-- 画像 -->
	<div class="block tac">
	    <a style="display: inline-block;" id="rippleria" href="#">
	        <img src="http://www.lovethispic.com/uploaded_images/15163-Pretty-Girl.jpg" alt="image">
	    </a>
	</div>

それでは出来上がったデモ画面をご覧ください。

デモ画面はこちら

対応ブラウザはFirefox, Chrome, IE10+, Opera, Safariとなっており

念のため、IE9以下でも確認しましたがビタイチ動きません。

ただ、表示が崩れたり、挙動がおかしくなるという事はありませんので

IE9以下は気にしないという事であれば普通に使って問題ありません。

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

マウスカーソルの隣に吹き出しを表示する

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

今回はマウスカーソルの座標を使って、マウスカーソルの隣に吹き出しを表示してみます。

DEMOはこちら

マウスカーソルの座標を取得する方法については、こちらのページを参考にさせていただきました。

http://hakuhin.jp/js/mouse.html

それでは実装まで解説していきます。

まずはhead内でjquery本体と動作に必要なCSSを読み込ませ、

動作させるためのスクリプトを記述します。

■スクリプト

<link rel="stylesheet" href="../common/css/common.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
//色領域にマウスカーソルがホバーしているなら吹き出しを表示する
$('.area_red').hover( function(){$("#popup_red").show();},function(){$("#popup_red").hide();});
$('.area_green').hover( function(){$("#popup_green").show();},function(){$("#popup_green").hide();});
$('.area_blue').hover( function(){$("#popup_blue").show();},function(){$("#popup_blue").hide();});

$(function(){
	 $('#area').hover(function(){	//色領域にマウスカーソルがホバーしているとき開始
		function MouseMoveFunc(e){	//マウスカーソルが移動するたびに実行する関数

			// マウスカーソルの座標を取得
			var mouse_x = e.clientX + 5;	//マウスカーソルのX座標 5px右へ調整
			var mouse_y = $(window).scrollTop() + e.clientY + 5;	//マウスカーソルのY座標 現在のスクロール位置+5px下へ調整

			// 吹き出しの位置座標を取得したマウスカーソルの座標に変換
			$("#popup").css({
				"position": "absolute",
		      		"left": mouse_x,
				"top": mouse_y
			});
		}

		if(document.addEventListener){
			document.addEventListener("mousemove" , MouseMoveFunc);
		}else if(document.attachEvent){
			document.attachEvent("onmousemove" , MouseMoveFunc);
		}
	});
});
</script>

e.clientX、e.clientYでマウスカーソルの座標を取得しています。

さらに数字を加算・減算することで、自由に位置を調整できます。

次に色領域と吹き出しをHTMLに記述します。

■HTML
<ul id="area" class="clearfix">
		<li class="area_red"></li>
		<li class="area_green"></li>
		<li class="area_blue"></li>
	</ul>

	<div id="popup">
		<p class="upblock" id="popup_red">これは<span>赤</span>です</p>
		<p class="upblock" id="popup_green">これは<span>緑</span>です</p>
		<p class="upblock" id="popup_blue">これは<span>青</span>です</p>
	</div>

最後にHTMLに対応したCSSを記述します。

■CSS
/* 色領域 */
#area{
    width: 300px;
    margin: 0 auto;
}

#area li{
    width: 100px;
    height: 100px;
    float: left;
}

.area_red{ background: #f9d0d1; }
.area_green{ background: #baf9b7; }
.area_blue{ background: #94b3fa; }


/* 吹き出し */

#popup{
    position: absolute;
    z-index: 50;
}

#popup span{
    padding: 0 4px;
}

#popup #popup_red span{ background: #f9d0d1; }
#popup #popup_green span{ background: #baf9b7; }
#popup #popup_blue span{ background: #94b3fa; }

#popup .upblock{
    display: none;
    background: #fff;
    border: 1px solid #333;
    padding: 10px;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-radius: 10px;
}

色領域と吹き出しは、自由にスタイルを指定できます。

今回はpositionの「absolute」を使って、吹き出しがマウスカーソルと一緒に動く動作を実装しましたが、「width」「height」で要素の拡大・縮小を行うことも可能なので、マウスカーソルの座標を利用できる幅は広いかもしれません。

対応ブラウザについて確認してみました。

◯ Google Chrome

◯ Firefox
◯ Safari
◯ Opera
◯ Internet Explorer 9、10+
△ Internet Explorer 7、8(動作はするが、吹き出しの表示が不安定)

基本的にどのブラウザでも正常に動作するでしょう。

ただし、要素の角を丸くする「border-radius」は、IE8以下に対応していないのでご注意ください。

以上、技術メモでした。

背景画像でスライドショーを実装する

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

今回は、背景画像でスライドショーを実装できるjQueryプラグイン「Vegas」を利用してみたいと思います。

このプラグインでは動画も背景に埋め込めるみたいですが、今回は画像だけで実装していきます。

まずは公式からファイル一式をダウンロードしましょう。右下辺りにDOWNLOADとあります。

「Vegas」公式

HTMLのhead内でCSS、jQuery本体と一緒にプラグインを読み込ませます。

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

次に必要なスクリプトを記述します。

$(function(){
  $('body').vegas({ //背景画像でスライドショーしたい場所の設定
    slides: [
     { src: 'img/img01.jpg' }, //スライドする画像を配列で設定
     { src: 'img/img02.jpg' },
     { src: 'img/img03.jpg' }
    ],
     delay: 5000, //スライドまでの時間ををミリ秒単位で設定
     timer: true, //タイマーバーの表示/非表示を切り替え
     overlay: 'img/01.png', //オーバーレイする画像の設定
     animation: 'random', //スライドのアニメーションを設定
     transition: 'blur', //スライド間のエフェクトを設定
     transitionDuration: 1000 //エフェクト時間をミリ秒単位で設定
  });
});

必要な記述は以上です。作成したDEMOは以下になります。

作成したDEMO

他にも様々なオプションがあるので気になる方は公式をご覧下さい。

オーバーレイ用の画像もダウンロードしてきたファイルの中に複数用意してあるのでお好みで設定してください。

しかも公式でプレビューもできます。なんて親切!

「Vegas」公式SETTINGSページ

アニメーションやエフェクトのプレビューもできます。以下のページから気に入ったものを設定しましょう。

「Vegas」公式TRANSITIONSページ

対応ブラウザは IE9 +、Safari、Firefox、Chrome とのことです。

いかがでしたでしょうか?

簡単に実装できてオプションも豊富、しかも公式でエフェクトなどのプレビューもできる!

ここまで親切なプラグインにお目にかかることはあまりないですね。

かなり自由度も高いので今後活躍する機会もありそうです。

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

IE9のサポートが終了して

$
0
0
こんにちは、技術メモです。
新年度が始まり、新人たちのキラキラした姿が眩しくて、
負けじとモチベーションを上げていきたいと思います。
この技術メモも次回からは少しリニューアルして、これまでの技術ブログと共に
デザイナーによるデザインのネタブログも始めたいと思います。
これからもよろしくお願いいたします。

さて、今回はこれまでのプラグインの紹介とは少し趣向を変えて

コーダーにとって最大の敵と言っても良い、Internet Explorer(IE)について書いていきたいと思います。

というのも、4月11日をもってIEのバージョン9(IE9)のサポートが終了したのです。

昨年の初めにも多くのOSでIE8〜10のサポートが終わっていましたが、
Windows Vistaの最新バージョンがIE9だったため、IE9のサポートは続いていました。
しかし、今回そのサポートが終了したのでサポート対象となるIEは11のみとなりました。

サポートが終了するとどうなるのでしょうか。

通常、ブラウザにセキュリティ等問題が起こると、Microsoftが修正プログラムを配布するなどしてきました。
しかしサポートが終了すると、何か問題が起こっても誰も修正することがありません。
なので、ウイルスや個人情報の漏えいといった危険にさらされることになります。

ブラウザのシェアを見ると、年々旧バージョンのIEシェアは下がっており、

日本でのIE8、9、10のシェアはそれぞれ1%にも満たない状況です。

1704_tech

http://gs.statcounter.com/

旧バージョンのIEはChromeなどのモダンブラウザと違い、コーディング上、別途対応が必要なケースが多々あります。

これはIE独自の機能やCSSなどの解釈の違いによるもので、多くのコーダーの悩みの種でもありました。
そのためこれまでも制作会社によっては、ブラウザチェック対象外としたり、旧バージョンには別途有償対応とするなどの対応を取ってきました。

そして今回のIE9のサポートが終了したことでその流れは加速していくでしょう。

まだIE8等のアクセスが見込まれるサイトもあるので、弊社ではケースによって対応していきますが、
よりモダンな、時代に合ったデザインにするためには古いIEへの対応をしないという事もこれから必要になるでしょう。

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

要素をブルブル震わせるプラグイン「CSShake」

$
0
0
こんにちは、ウェブラボ技術メモです。
今回はテキストや画像といったHTML要素をブルブル震わせるプラグイン「CSShake」を使用してみようと思います。

まず公式サイトの一番下までスクロールし、「Download」ボタンからCSSファイルをダウンロードします。

「CSShake」公式サイト

公式サイトでも紹介されているような動きを利用して、簡単なDEMOを作成しました。

DEMOはこちら

それでは実際に実装していきましょう

まずダウンロードしたCSSをHTMLのhead内に読み込みます。

■HTML
<link rel="stylesheet" type="text/css" href="css/csshake.css">

そしてブルブル震わせたい要素にclassを設定します。

■HTML
<p class="shake">テキスト</p>

これだけで実装できてしまうんです。簡単ですね!

震え方には下記のような種類があります。

<p class="shake">通常</p>
<p class="shake-slow">ゆっくり震える</p>
<p class="shake-little">小刻みに震える</p>
<p class="shake-hard">激しく震える</p>
<p class="shake-horizontal">水平方向に震える</p>
<p class="shake-vertical">垂直方向に震える</p>
<p class="shake-rotate">回転するように震える</p>
<p class="shake-opacity">透明度を変化させながら震える</p>
<p class="shake-crazy">とても激しく震える</p>
<p class="shake shake-constant">常に震える</p>
<p class="shake shake-chunk shake-constant">時々大きく震える</p>

対応ブラウザについて確認してみました。

◯ Google Chrome

◯ Firefox
× Safari
◯ Opera
◯ Internet Explorer 10+
× Internet Explorer 7~9

たくさん使うと画面がうるさくなってしまいますが、

テキストや画像を注目させたい場合に便利ですね!
残念ながらSafariに対応していないので、さりげなく使うのが良いかもしれません。

以上、技術メモでした。

グラデーションのアニメーションが簡単に作れるGranim.js

$
0
0

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

最近、アニメーションがついたメインビジュアルが流行っていますよね。

そこで今回はメインビジュアルに使えそうな、グラデーションのアニメーションが簡単にできるgranim.jsを実装してみたいと思います。

グラデーションも2017年webデザインのトレンドなので、ぜひお試しください!

まず、下記サイトの「DOWNLOAD」から最新版をダウンロードします。

「granim.js」公式サイト

※今回使用したのはバージョンv1.0.6です。

■実装の仕方

1. granim.jsを読み込ませます。

2. HTMLにcanvasタグを記述します。

3. 下記スクリプトを記述します。

//左右にグラデーション ============================================
    var granimInstance = new Granim({
        element: '#canvas-basic',//グラデーションを適用する要素
        direction: 'left-right', //グラデーションのタイプ(左右はleft-right、円形はradialなど…)
        elToSetClassOn: '.logo_wb', //明るさのクラスを追加したい場所の要素
        name: 'wb',//明るさのクラス名(☆☆-lite,☆☆-darkの☆☆部分)
        opacity: [1, 1], //三色の例→[.5, .3, 1]
        isPausedWhenNotInView: true,
        states: {
            "default-state": {
                gradients: [
                            ['#07539f', '#0e7ae6'],   //[始まりの色,終わりの色]ここに好きな色を追加できます。
                            ['#07969f', '#11888f'],  
                            ['#0d2d4c', '#001a34']
                        ],
                transitionSpeed: 10000  //グラデーションの移り変わる速さ
            }
        }
    });

出来上がりです!

今回は公式サイトのデモページと同じように作ってみました。

デモページはこちら

また、スクリプトの記述を変えることでアニメーションの細かい設定ができます。

■主な設定

  • element [グラデーションを適用する要素]
  • direction [グラデーションのタイプ]
    左右 left-right
    円形 radial
    上下 top-bottom
    対角線 diagonal
  • gradients [グラデーションのカラーコード ]
    二色以上にもできますが、opacityで透明度の指定も同じ数だけ記述する必要があります。
  • opacity [グラデーションの透明度]
  • transitionSpeed [グラデーションの色が変わる速さ]
    個人的にはゆっくり変わった方がおしゃれだと思います。
    したがってデフォルトの10000ぐらいがおすすめです。
  • loop [繰り返し]
    false ループをしない
    true ループする

■グラデーションの明るさを判定する設定

  • elToSetClassOn [クラス名の追加]
  • name [明るさのクラス名(”任意のname”-lite, ”任意のname”-darkの部分)]
    nameを指定しないとbodyに明るさ判定のクラスがついてしまうので注意してください。

もっと細かい設定をしたい場合は公式デモページやAPIをご確認ください。

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

波紋を作るjQueryプラグイン「jQuery Ripples」

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

今回はマウスに合わせて波紋を生み出すjQueryプラグイン「jQuery Ripples」を紹介したいと思います。

まずはDEMO用意致しましたのでご覧下さい。

DEMO

背景画像部分でマウスを動かしたり、クリックするとキレイな波紋が出ますね。

一見難しそうに見えますが簡単に実装することが可能です。

では解説していきます。以下からプラグインをダウンロードしてきてください。

github

まずはjquery本体と一緒にプラグインを読み込ませます。

■HTMLhead内

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/jquery.ripples-min.js"></script>

次にプラグインの設定を行います。

■HTMLhead内 スクリプト部分

<script>
	$(document).ready(function() {
		$('#wrapper').ripples({ //波紋をつけたい要素の指定
			resolution: 800, //波紋の広がりの速度(値が大きいほど遅くなる)
			dropRadius: 10, //波紋の大きさ(値が大きいほどでかくなる)
			perturbance: 0.01 //波紋による屈折量(値が大きいほどブレる)
		});
	});
</script>

あらかじめ波紋をつけたい要素に背景画像を指定しといてください。

■CSS 指定した要素部分

#wrapper {
	background: url(../img/img01.jpg) no-repeat center center;
	background-size: cover;
}

必要な設定は以上です。スクリプト部分の値を調整することによって自分好みの波紋にすることが可能です。

ですが値の調整が難しかったので試行錯誤することになるかもしれません。

DEMO

仕組みとしては、指定要素の後ろにcanvasタグを敷いてそこで波紋を描画しているようです。

対応ブラウザは、主要ブラウザはもちろんのことIEは11から動作しましたので最新のものである必要があります。

同一ページ内で複数個所に導入するとページがかなり重くなるので注意が必要です。

以上、技術メモでした。


カラフルなメッシュ画像を表示させる「Trianglify」

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

今回はカラフルなメッシュ画像を表示させる「Trianglify」を使用してみようと思います。

設定を比較するDEMOを作成しました。

DEMOはこちら

様々なパターンがありますが、短いコードで簡単に設定できてしまいます。

それでは実際に実装していきましょう。

以下からプラグインをダウンロードしてください。

github

まずはhead内でjquery本体とプラグインを読み込ませます。

■HTMLhead内

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/trianglify.min.js"></script>

次にプラグインのオプション設定を行います。

この他のオプションについては、githubにて公開されています。

■HTMLhead内 スクリプト部分

<script>
	var sample = Trianglify({
		width: 980, //横幅(px指定 デフォルトは600px)
		height: 400, //縦幅(px指定 デフォルトは400px)
		cell_size: 75 //メッシュサイズ(高いほど粗くなり、低いほど細かくなる デフォルトは75)
		variance: 0.75 //分散(0~1の小数点以下の値 デフォルトは0.75)
		x_colors: 'random', //x軸方向のグラデーション(カラーコードの配列で指定 デフォルトはランダム生成を行う「random」)
		y_colors: ['#000', '#07539F', '#FFF'] //y軸方向のグラデーション(カラーコードの配列で指定 デフォルトはx_colorsの設定を引き継ぐ「match_x」)
	});
	document.getElementById("result").appendChild(sample.canvas())//要素のidを指定
</script>

最後にスクリプト内で指定した要素とidをHTMLのbody内に記述するだけです。

この記述した箇所に、設定したサイズのメッシュ画像がcanvasタグで表示されます。

■HTML body内

<div id="result"></div>

対応ブラウザについて確認してみました。

◯ Google Chrome
◯ Firefox
◯ Safari
◯ Opera
◯ Internet Explorer 9、10+
× Internet Explorer 7、8
古いIEを除いて全てのブラウザで動作しました。

以上、技術メモでした。

キャッシュの解決方法

$
0
0

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

先日、GIFアニメをJSで表示させたところ、
キャッシュでうまくループされませんでした…(´;ω;`)

今回は、更新時の厄介者、キャッシュの解決方法についてまとめてみました。

1. キャッシュを削除するタグを入れる

HTMLに入れるだけで簡単にキャッシュが残らなくなるそうです。


    
    

2. タイムスタンプなど日時を入れる

私が実際に試した方法です。

metaタグだけではキャッシュを消せなかった方にオススメです。

ファイル名の末尾にタイムスタンプをつけるだけで解決します!
ファイル名が変わるので間違いなくキャッシュが消えますよ!

$('#id').html('');

デモページはこちら

キャッシュが残りやすい、JSやGIFアニメを使う時にぜひ試してみてください☆

■参考サイト

フォームのメールアドレス入力欄に補完機能をつける

$
0
0
こんにちは、ウェブラボクリエイターズメモです。

10月に入ってから急に寒くなってきましたね、体調管理には気をつけていきましょう。

さて今回はフォームのメールアドレス入力欄に補完機能をつけるjQueryプラグイン「email-autocomplete」を紹介したいと思います。

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

まずは以下からプラグインをダウンロードしましょう。

github

HTML内に以下のようにスクリプト部分を記述します。

■スクリプト部分

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/jquery.email-autocomplete.js"></script>
<script>
$(document).ready(function(){
	$(".email").emailautocomplete({ //補完機能をつけたい箇所を指定
		domains: ["abc.com", "def.com"] //補完機能に追加したいドメインを記述
	});
});
</script>

■HTMLフォーム部分

<input class="email" name="email" type="email">

必要な記述はこれだけです。

作成したDEMOはこちら

試しに「@a」まで入力してみると「@abc.com」が出てきますね。

配布元にその他のオプションや、デフォルトで用意されている補完機能のドメインが記載されていますので足りないものはこちらで用意してあげましょう。

これだけでもメールアドレスの入力がかなり楽になりますね。

ドメインを細かく覚えてない人も多いと思うので是非導入してみてはいかがでしょうか。

以上、クリエイターズメモでした。

SVGでグラフを描写できるChartist.js

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

今回はSVGでグラフを描写できる「Chartist.js」を紹介いたします。

DEMOはこちら

よく見かける円グラフなどが、簡単に設定できてしまいます。
ちょっと数値を変更したいといった修正作業もお手軽なので魅力的ですね。

それでは実際に実装していきましょう。

以下からプラグインをダウンロードしてください。

github

まずはhead内でjquery本体とプラグインを読み込ませます。

■HTMLhead内

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="js/chartist.js"></script>

次にプラグインのオプション設定を行います。

今回は円グラフの例を紹介いたします。

■HTMLhead内 スクリプト部分

<script>
	let chart = new Chartist.Pie('.circle_chart', {
		series: [50, 30, 20],	//円グラフの数値を入力します。数を増やすときは「,」を追加します。
		labels: ['赤 50%','青 30%','緑 20%']	//円グラフのラベルを入力します。
	});
</script>

次にスクリプト内で指定した要素とidをHTMLのbody内に記述します。

■HTML body内

<div class="circle_chart"></div>

このままですと真っ黒な円グラフが表示されてしまいますので、

最後にCSSで装飾を行います。

■HTMLhead内 CSS部分

.circle_chart{	//グラフのサイズと表示位置を決めます
  width: 300px;
  height: 300px;
  margin: 0 auto;
}

.circle_chart .ct-series-a .ct-slice-pie{  //1つ目の数値の背景色を決めます。カラーコード使用可。
	stroke: red;
	fill: red;
}

.circle_chart .ct-series-b .ct-slice-pie{  //2つ目の数値の背景色を決めます。
	stroke: blue;
	fill: blue;
}

.circle_chart .ct-series-c .ct-slice-pie{  //3つ目の数値の背景色を決めます。
	stroke: green;
	fill: green;
}

.circle_chart .ct-label{  //ラベルの文字色を変更します。
	fill: #fff;
}

数値の種類が増えるたびに「.ct-series-X」のX部分が「a」「b」「c」「d」…と続いていきます。
好みにカスタマイズしてみましょう。

ブラウザ互換性については「Chartist.js」に記載されております。

以上、技術メモでした。

スクロール時にアニメーションを実装できるScrollTrigger.js

$
0
0
02

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

今回は、画面スクロール時のアニメーション「ScrollTrigger.js」を紹介します。

まずデモページはこちら

■概要

スクロール時にアニメーションさせたい要素が表示範囲に入っているか、いないかを判定しクラスの付け替えをしてくれるプラグインです。

■実装方法

1. まずプラグインをダウンロードします。(ScrollTrigger.min.js)

2. 以下を記述(読み込みの記述とリセット)

<script src="js/ScrollTrigger.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function(){
	var trigger = new ScrollTrigger();
});
</script>

3. HTMLでアニメーションさせたい要素に「data-scroll」を記述します。

<p data-scroll>アニメーションさせたい要素</p>

4. cssでアニメーションを作成し完成!

HTMLにdata-scrollのみ記述した場合、デフォルトでは.invisibleと.visibleクラスが付与されます。

任意のクラスにする場合は以下のように記述します

<p data-scroll="toggle(任意のクラス名, 任意のクラス名(アニメ))" >アニメーションさせたい要素</p>

上記以外にも様々なオプションがあります!詳しくはこちらをみてくださいね!

以上、クリエイターズメモでした。

Viewing all 87 articles
Browse latest View live