Archives by date

You are browsing the site archives by date.

レスポンシブ対応のjQueryスライダーを実装する。

その名も「bxslider」。
シンプルかつ動作もぬるぬるで、レスポンシブ対応の自分的最強プラグイン。

まずは下記の公式サイトから本体をダウンロード。
http://bxslider.com/

落としたら下記のように必要なファイルを読み込む。

<link rel="stylesheet" type="text/css" href="/css/jquery.bxslider.css" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="/js/jquery.bxslider.min.js"></script>

スライダーにしたい画像を用意し、下記のようにdiv要素、もしくはul要素を使いマークアップする。

<ul class="slider">
    <li><img src="/images/img1.jpg" /></li>
    <li><img src="/images/img2.jpg" /></li>
    <li><img src="/images/img3.jpg" /></li>
</ul>

<div class="slider">
    <div><img src="/images/img1.jpg" /></div>
    <div><img src="/images/img1.jpg" /></div>
    <div><img src="/images/img1.jpg" /></div>
</div>

最後にプラグインを実行する。

$(function(){
	$('.slider').bxSlider({
		auto: true,
		speed: 1000,
		pause: 5000,
		captions: true,
	});
});

bxSlider()に渡せる引数は他にもたくさんあるので、詳細は公式サイトを参照されたし。

PHPのfile_get_contents()とreadfile()の違い。

前も調べた気するけど忘れないように一応メモ。

■file_get_contents()

一度変数にぶち込むのでメモリを喰う。
数万?数十万行とかあるファイルを読ませるとmemory_limitにぶち当たる。

■readfile()

読み込むと同時に標準出力するのでメモリを気にしなくていい。
「out of memory」エラーが出る場合は、ob_get_level()で出力バッファリングを無効にすればよい
※公式より

jQueryでHTML5のdata属性を扱う方法。

jQueryで要素を指定する際、IDやクラス以外で選択したい場合に便利。

data属性は下記の通り、ハイフン以降に任意の文字列を設定することで利用できる。

<div data-hoge="huga">piyo</div>

例えば上記の「data-hoge」属性にアクセスしたい場合は下記の記述でアクセスが可能。

$('div').data('hoge');

また以下のように、data属性に対しオブジェクトを代入することで複数の値を一度に管理できる。

<div data-info='{"my":"banana","favorite":"apple","fruit":"orange"}'>自己紹介</div>

アクセスする際は下記の通り。

$('div').data('info').my;
$('div').data('info').favorite;
$('div').data('info').fruit;

そして最後にjQuery側からdata属性を設定する方法。
これは普通にattr()関数を用いて設定すればよい。

$('div').attr({
    'data-hoge': 'huga',
    'data-info': '{"my":"banana","favorite":"apple","fruit":"orange"}'
});

Javascriptにて無名関数を即座に実行する方法。

自分用メモ。

極めて文法的なお話。

まず無名関数の基本。

var func = function(){
    // 処理
};

上記は無名関数を変数funcに代入した際の例。
実行する際は以下のように記述する。

func();

ところで、この例のように無名関数はいったん変数に詰め込んでやらないと実行できないのだろうか。
答えは否である。但し文法に注意する必要がある。

まずは普通にfuncの部分をまんま無名関数に置き換えてみる。

function(){...}();

が、これは文法的にNGとされる。ではどうすればよいか。
答えは下記の通り。

(function(){...})();

これで望みどおりの挙動を実現する事が出来る。
「function(){}」自体をもう一度括弧「()」で囲うのがポイント。
引数を渡す際も通常通り、最後の括弧に変数を入れてやればよい。

例)

(function(){...})(this);

この書き方を上手に応用すると、Ajax処理のコールバックに、オブジェクト内の関数を指定することが出来たりする(いわゆるクロージャ?)。
Javascriptは本当に奥が深い。

jQueryにて変数の型を判定する。

メモ。

$.type()関数を用いる。

var obj = {};
var res = $.type(obj);
console.log(res);
↓
// object

今回はオブジェクトの型判別に利用したが、他にもstring、number、boolean、arrayといった型の判別が可能。