floatさせた要素をきれいに並べるjQueryプラグイン「 jQuery Masonry」
7 / 1 / 2009

以下のサイトからダウンロード
http://desandro.com/resources/jquery-masonry

<head></head>内に

<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js“></script>
<script type=”text/javascript” src=”/jquery.masonry.js“></script>
<script type=”text/javascript”>
$(function(){
$(‘.wrap’).masonry();
})
</script>

と書く。.wrapは好きな名前に変更出来ます。

<div class=”wrap”>
<div class=”box”>
hoge
</div>
<div class=”box”>
fuga
</div>
<div class=”box”>
piyo
</div>
</div>

のように書く。.boxにfloatを指定。

早速自分のtumblrに使ってみました。

http://kentymmt.tumblr.com/

JavascriptのドロップダウンメニューがFlashの下に隠れた場合の対処法
5 / 13 / 2009

JavascriptのドロップダウンメニューがFlashの下に隠れた場合はobjectタグに

<param name=”wmode” value=”opaque” />

と追加する。JavaScriptな場合は

’wmode’,’opaque’

と引数に追加する。

アンカーリンクタグをスムーズにスクロールさせるsmooth.pack.js
10 / 2 / 2008

ダウンロードはこちらから。

http://www.dezinerfolio.com/2007/08/08/df-javascript-smooth-scroll/

<head></head>内に

<script type=”text/javascript” src=”/パス/smooth.pack.js”></script>

とかく。

後は普通にアンカータグを書くだけです。とても簡単。

JavaScriptによる簡単な画像切り替え
6 / 21 / 2008

アニメーション等は使わずに、単純に画像を置き換えるやり方です。

<!–JavaScript側–>

<script type=”text/javascript”>
<!–
function showimg1(){
document.hogeimg.src = “画像1のURL”;
}

function showimg2(){
document.hogeimg.src = “画像2のURL”;
}

function showimg3(){
document.hogeimg.src = “画像3のURL”;
}
–>
</script>

<!–HTML側–>

<img src=”デフォルト画像のURL” name=”hogeimg”>

<input type=”button” onclick=”showimg1()” value=”画像1″>
<input type=”button” onclick=”showimg2()” value=”画像2″>
<input type=”button” onclick=”showimg3()” value=”画像3″>

簡単ですね。function showimg4(),function showimg5()と増やしていけばどんどん増やせます。僕はこれをDashboardWidgetのスキン変更とかに流用しました。

Dashcode楽しいぞ!

moo.fxで2段組みのタブ切り替えメニューを作る
4 / 15 / 2008

前回はmoo.fxを使った普通のタブ切り替えメニューを紹介しましたが、今回は2段組みタイプです。

http://www.nyokiglitter.com/tutorials/2columns.html

まずはここからダウンロード。中身を適当な場所に置き<head></head>内にリンクを記述します。CSSはHTMLの中に書かれているので、必要に応じて外部化してください。

<script type=”text/javascript” src=”scripts/prototype.lite.js”></script>
<script type=”text/javascript” src=”scripts/moo.fx.js”></script>
<script type=”text/javascript” src=”scripts/moo.fx.pack.js”></script>
<script type=”text/javascript”>
//the main function, call to the effect object
/*
function init(){
var stretchers = document.getElementsByClassName(’stretcher’); //div that stretches
var toggles = document.getElementsByClassName(‘tab’); //h3s where I click on
//accordion effect
var myAccordion = new fx.Accordion(
toggles, stretchers, {opacity: false, height: true, duration: 400, transition: fx.sineInOut}
);
//hash functions
var found = true; // if true, accordion starts closed on load else if false first one starts open on load
toggles.each(function(h3, i){
var div = Element.find(h3, ‘nextSibling’); //element.find is located in prototype.lite
if (window.location.href.indexOf(h3.title) > 0) {
myAccordion.showThisHideOpen(div);
found = true;
}
});
if (!found) myAccordion.showThisHideOpen(stretchers[0]);
}
*/
function init()
var stretchers = document.getElementsByClassName(’stretcher’); //div that stretches
var toggles = document.getElementsByClassName(‘tab’); //h3s where I click on
//accordion effect
var myAccordion = new fx.Accordion(
toggles, stretchers, {opacity: true, height: true, duration: 400}
);
//hash functions
var found = false;
toggles.each(function(h3, i){
var div = Element.find(h3, ‘nextSibling’); //element.find is located in prototype.lite
if (window.location.href.indexOf(h3.title) > 0) {
myAccordion.showThisHideOpen(div);
found = true;
}
});
if (!found) myAccordion.showThisHideOpen(stretchers[0]);
}
</script>

この/**/でコメントアウトされてる前半部分と、されてない後半部分があるんですが、違いがよく分からない…二つの設定からどちらかを選べるってことでしょう。コメントアウト部分は消してもよい。初期設定では

.tabの中にあるh3タグで囲まれている部分をクリックすると#contentの中の.stretcher部分が開く

って感じです。もちろん変更可能。

var stretchers = document.getElementsByClassName(’stretcher’); //div that stretches
var toggles = document.getElementsByClassName(‘tab’); //h3s where I click on

このへんと

if (window.location.href.indexOf(h3.title) > 0) {

このへんですね。

toggles, stretchers, {opacity: true, height: true, duration: 400}

opacityは切り替え時に透明の演出をするかどうか。durationは切り替えの速度です。

</body>の直前に

<script type=”text/javascript”>
Element.cleanWhitespace(‘content’);
init();
</script>

と書きます。HTMLは

<div id=”left”>
<div class=”tab”>
<h3 title=”first”><a href=”javascript:;”>first</a></h3>
</div>
<div class=”tab”>
<h3 title=”first”><a href=”javascript:;”>first</a></h3>
</div>
<div class=”tab”>
<h3 title=”first”><a href=”javascript:;”>first</a></h3>
</div><br />
</div>
<div id=”right”>
<div id=”content”>
<div class=”stretcher”>
<h3>First</h3>
</div>
<div class=”stretcher”>
<h3>Second</h3>
</div>
<div class=”stretcher”>
<h3>third</h3>
</div>
</div>
</div>

みたいになります。ここで謎な部分が一つ。なぜか<br />を消すと作動しなくなる。これで数時間悩んだ。なぜだろう。

moo.fxを使ってタブとか色々なメニューを作る
4 / 11 / 2008

moofx1

moo.fxというAjaxライブラリを使ってタブ切り替えとかアコーディオンとか色々なメニューを設置する手順とサンプルです。

http://www.nyokiglitter.com/tutorials/tabs.html

からダウンロードする。

ダウンロードしたファイルを適当な場所に置きましょう。<head></head>内に

<script type=”text/javascript” src=”パス/prototype.lite.js”></script>
<script type=”text/javascript” src=”パス/moo.fx.js”></script>
<script type=”text/javascript” src=”パス/moo.fx.pack.js”></script>

と書く。 CSSはサンプルで付いてくるtabbed.htmlの中に書かれているので、必要に応じて外部化するとか、なんとかしてください。それでもって、tabbed.htmlに書いてある

<script type=”text/javascript”>
function init(){
var stretchers = document.getElementsByClassName(‘box’);
var toggles = document.getElementsByClassName(‘tab’);
var myAccordion = new fx.Accordion(
toggles, stretchers, {opacity: false, height: true, duration: 600}
);
//hash functions
var found = false;
toggles.each(function(h3, i){
var div = Element.find(h3, ‘nextSibling’);
if (window.location.href.indexOf(h3.title) > 0) {
myAccordion.showThisHideOpen(div);
found = true;
}
});
if (!found) myAccordion.showThisHideOpen(stretchers[0]);
}
</script>

この部分 も外部化したければ出来るはず。ここに書いてある

var stretchers = document.getElementsByClassName(‘box’);
var toggles = document.getElementsByClassName(‘tab’);

このへんがCSSのClass名に対応する。

toggles, stretchers, {opacity: false, height: true, duration: 600}

このへんが動き方の設定になる。durationは値が大きいほど遅く動きます。

if (window.location.href.indexOf(h3.title) > 0) {

このへんがHTMLタグの設定になる。デフォルトはh3になってます。必要に応じて変更。HTMLは

<div id=”content”>
<h3 class=”tab”><div class=”tabtxt”><a href=”#”>1つ目</a></div></h3>
<h3 class=”tab”><div class=”tabtxt”><a href=”#”>2つ目</a></div></h3>
<h3 class=”tab”><div class=”tabtxt”><a href=”#”>3つ目</a></div></h3>
<div class=”boxholder”>
<div class=”box”><p>1つ目</p></div>
<div class=”box”><p>2つ目</p></div>
<div class=”box”><p>3つ目</p></div>
</div>
</div>

みたいな感じになる。(なんかtabbed.htmlのソースがややおかしいので、少し変えてあります)

開くコンテンツのクラス名はすべて<div class=”box”>なので、タブの順番と同じように書かないとダメっす。まぁあたりまえか。それで</body>の直前に

<script type=”text/javascript”>
Element.cleanWhitespace(‘content’);
init();
</script>

と書く。contentはid名。変更可能。

ちなみにlightbox JSと併用する場合はmoo.fx.jsのリンクををlightbox.jsより先に<head></head>内に記述しましょう。じゃないとlightboxが作動しなかった(少なくとも僕の環境では)

この他にも横にスライドするメニューと、2段組みのメニューがあります。個人的には 2段組みのメニューが気に入った!けど、謎な部分で設置に大変苦労したので、次回にでも書こうかな。

jQuery lightBox plugin – jQueryでLightBoxが使えるjavascript
3 / 27 / 2008

前回はCookie機能&アニメーション&スクロール追随付きアコーディオンメニューについて書きましたが、jQuery.jsはprototype.jsと共存出来ない事が判明。lightboxも使っていたので動かなくなってしまいました。が、調べてみるとjQuery.jsでlightboxが使えるプラグインがあったので紹介します。

1. ダウンロード

http://leandrovieira.com/projects/jquery/lightbox/

からzipをダウンロードします。(2008/03 最新バージョン 0.4) js, css, images内のファイルを適当な所に置きましょう。画像へのリンクはjquery.lightbox-0.4.jsの27行目あたりからの

// Configuration related to images
imageLoading: ‘images/lightbox/lightbox-ico-loading.gif’, // (string) Path and the name of the loading icon
imageBtnPrev: ‘images/lightbox/lightbox-btn-prev.gif’, // (string) Path and the name of the prev button image
imageBtnNext: ‘images/lightbox/lightbox-btn-next.gif’, // (string) Path and the name of the next button image
imageBtnClose: ‘images/lightbox/lightbox-btn-close.gif’, // (string) Path and the name of the close btn
imageBlank: ‘images/lightbox/lightbox-blank.gif’,

を書き換えればok です。

2. head内に記述

<script type=”text/javascript” src=”http://hoge/jquery.js“></script>
<script type=”text/javascript” src=”http://hoge/jquery.lightbox-0.4.js“></script>
<link rel=”stylesheet” type=”text/css” href=”http://hoge/jquery.lightbox-0.4.css” media=”screen”>
<script type=”text/javascript”>
$(function() {
$(‘#id名 a’).lightBox(); //(‘ ‘)内を変更することができます e.g.) a[@rel*=lightbox]、a.lightboxなど
});
</script>

と書きます。

<script type=”text/javascript”>
$(function() {
$(‘#id名 a’).lightBox(); //(‘ ‘)内を変更することができます e.g.) a[@rel*=lightbox]、a.lightboxなど
});
</script>

の部分は例えばsettings.jsとか作って外部化しても大丈夫です(短いけど)

3. HTMLを記述

<div id=”id名”>
<a href=”大きい画像” title=”hoge”>
<img src=”サムネイル画像” alt=”hoge”>
</a>
</div>

みたいに書きます。id名をlightboxとかにしておけば分かり易いですね。 prototype.jsは削除して大丈夫です。

スクロールアコーディオンメニュー(Cookie付き)
3 / 25 / 2008

アニメーション付きのアコーディオンメニューはprototype.jsを使った物なんかが有名だけれども、それにCookieで開閉状況を記憶させておくものがなかなか見つからなかった。Cookieは使えてもアニメーションが使えなかったり、併用出来そうでもCSSのIDとClassが指定されていてそれ以外使えなかったり。が、発見。

http://sawa-s.com/scroll-accordion-menu.html

上記ページのダウンロードをクリック。設置方法も書いてありますが、付け加えてもう少し詳しく書いて行きます。

まず、ダウンロードしたファイルの中の「ddaccordion.js」「wrapscroll.js」「jquery.js」 「style.css」を自分のサイトの適当な場所にコピー。headに以下を記述します。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ddaccordion.js">
/***********************************************
* Accordion Content script- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
* This notice must stay intact for legal use
***********************************************/
</script>
<script type="text/javascript" src="wrapscroll.js"></script>

コメントアウトになってる部分は消しちゃダメらしいです。そしてddaccordionメソッドの作成、wrapScrollオブジェクトの作成(動かす時のセッティングの内容みたいなもんです)をします。

<script type="text/javascript"><!--
ddaccordion.init({
headerclass: "expandable",
contentclass: "categoryitems",
collapseprev: true,
defaultexpanded: [0],
animatedefault: false,
persiststate: true,
toggleclass: ["", "openheader"],
togglehtml: ["suffix", "<img src='image/plus.gif' class='statusicon' />", "<img src='image/minus.gif' class='statusicon' />"],
animatespeed: "normal"
})
// wrapScroll
var mov = new wrapScroll('accordion_menu','container','header');
mov.marginTop = 5; //上からのマージンを指定(px)
//--></script>

これはHTMLに書く必要はないので(ブログだったらテンプレートに書けば済みますが、普通の静的なサイトだったら面倒ですし、長い)例えば「settings.js」というファイルを作って、上記内容をコピペして、head内にリンクするのが良いと思います。その場合は

ddaccordion.init({
headerclass: “expandable”,
contentclass: “categoryitems”,
collapseprev: true,
defaultexpanded: [0],
animatedefault: false,
persiststate: true,
toggleclass: ["", "openheader"],
togglehtml: ["suffix", "<img src='image/plus.gif' class='statusicon' />", "<img src='image/minus.gif' class='statusicon' />"],
animatespeed: “normal”
})
// wrapScroll
var mov = new wrapScroll(‘accordion_menu’,'container’,'header’);
mov.marginTop = 5; //上からのマージンを指定(px)

になります。それぞれの設定の内容はダウンロードしたサイトを参照して下さい。そしてHTMLに

<div id="accordion_menu">
<a href="http://sawa-s.com/"><div class="menuheader">HOME</div></a>
<div class="menuheader expandable">カテゴリー 1</div>
<div class="categoryitems">
<ul>
<li><a href="#">MENU 1-1</a></li>
<li><a href="#">MENU 1-2</a></li>
<li><a href="#">MENU 1-3</a></li>
<li><a href="#">MENU 1-4</a></li>
<li><a href="#">MENU 1-5</a></li>
<li><a href="#">MENU 1-6</a></li>
</ul>
</div>


のように記述します。べつに<li>を使わなくて<dl>とかでも大丈夫っす。それで「style.css」を適当に編集します。IDやClassを変える場合は必須。

メニューがスクロールについてくるのはいらないので、僕は使わないようにしました。「wrapScroll.js」のリンクをheadから削除して、「settings.js」の // wrapScroll以下を消せばokす。ちなみに wrapScroll.jsは法人利用などの場合はライセンスを取得する必要があるそうです。

追記

jquery.js はprototype.jsと共存出来ません。なのでlightboxなどを使っている人は動かなくなります。解決策を書いていますので、jQuery lightBox plugin – jQueryでLightBoxが使えるjavascriptを参照して下さい。

favicon2dots
9 / 25 / 2007

favicon2dots とは

favicon を dot’s ぽく立体的に表示したりするサービスです。

使い方

トップページから favicon の URL を直接、もしくは表示されている HTML ページの URL ( http://d.hatena.ne.jp/secondlife/ とか) を入力してください。またはてなのユーザアイコン表示ショートカットとして、id:secondlife など、はてな id を直接入力することも可能です。

その他、現在見ているページの favicon を表示したい場合、bookmarklet( favicon2dotsで表示 ) を使うと便利です。

これ面白いですねー。

You

are currently browsing the notizbloc blog archives for the tag Javascript