SQLの窓

2015年11月30日


tabIndent.js : テキストエリアでタブが使用できます。オリジナルを少し改造して、jQuery の名前空間に登録しました。

デモページ
 選択して
 TAB でインデント
 SHIFT+TAB で逆インデント

その他

● ESC でキャンセルされ、TAB で次のコントロールへ移動できるようになります。
● ENTER キーで改行を挿入すると、直前のインデントを引き継いだ位置になります。
● オプションで TAB のかわりに複数のスペースを使う事ができます

jQuery の内部に実装

オリジナルでは jQuery に依存しませんが、エレメントの指定が DOM になっていたので jQuery の名前空間に登録するように改造しました。

改造済みコード1(.min.js)
( オリジナルは圧縮されていないので、packer を使用しました ) 

改造済みコード2(.js)

メソッド

renderAll を使うとし、要素の class 属性に tabIndent を指定しているテキストエリアを対象とします。

remove と removeAll がありますが、remove の引数は エレメントのままです。jQuery で引き渡す場合は、$("#id")[0] か、$("#id").get(0) です。
<script>
// jQuery 初期処理
$(function() {

// ソースコードがスペースでインデントされている場合に使用する
//	$.tabIndent.config.tab = "    ";
	$.tabIndent.render("#text")

});
</script>





posted by lightbox at 2015-11-30 09:00 | IFRAME パッケージ | このブログの読者になる | 更新情報をチェックする

2015年11月26日


何もかも回転する、jQuery の簡単なプラグイン実装

デモページ




どういう場面で使うかは、なかなか難しいですが $(document.body).find("*") なんかは手軽で使い勝手が良いと思います。あと、$([parent.document.body,document.body,$("#target")[0],$("#tabs-1")[0]]) なんかは狙い撃ち用です

ソースコード
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
// jQuery 初期処理
$(function() {

	// プラグイン
	$.fn.extend({ 
		rotateAction: function(deg, duration, easing){
			var target = this;
			$({kakudo: 0}).animate(
				{kakudo: deg},
				{
					duration: duration,
					easing: easing,
					step: function(now) {
						target.css({
							transform: 'rotate(' + now + 'deg)'
						});
					}
				}
			);
		}  
	});

});
</script>

<input
	type="button"
	value="画像回転"
	onclick='$("#target").rotateAction(360,1000,"swing");'>

<input
	type="button"
	value="この IFRAME を回転"
	onclick='$(document.body).rotateAction(360,1500,"swing");'>

<input
	type="button"
	value="このタブのみ回転"
	onclick='$("#tabs-1").rotateAction(360,1500,"swing");'>

<input
	type="button"
	value="ウインドウ全体を回転"
	onclick='$(parent.document.body).rotateAction(360,1500,"swing");'>

<input
	type="button"
	value="全てを回転"
	onclick='$([parent.document.body,document.body,$("#target")[0],$("#tabs-1")[0]]).rotateAction(360,10000,"swing");'
	style="background-color:deeppink;color:white">

<input
	type="button"
	value="何もかも回転"
	onclick='$(document.body).find("*").rotateAction(360,10000,"swing");'
	style="background-color:deeppink;color:white">

<br><br><br>

<img
	id="target"
	src="https://lh5.googleusercontent.com/-kCYTSmTrJXs/URvMQy9ClqI/AAAAAAAARuw/5BTKTk2c_sw/s128/_img.png"
	style="border: solid 0px #000000">





posted by lightbox at 2015-11-26 13:46 | IFRAME パッケージ | このブログの読者になる | 更新情報をチェックする

2015年11月25日


jQuery UI の タブ と アコーディオンで、スキンのチェック

デモページ


snowstorm.js や SyntaxHighlighter も タブに埋め込んで、各タブを横にスライドするアニメーションで見栄えを比較できます。スキンを好きに変更して、それぞれの特徴を比較して下さい。







タグ:jQuery UI jquery
posted by lightbox at 2015-11-25 23:24 | IFRAME パッケージ | このブログの読者になる | 更新情報をチェックする

2015年11月24日


tableMagic で作成されたテーブルを fixedheadertable でヘッダと左端列を固定 / jQuery プラグイン

デモページ


プラグイン配布サイト

JSON からテーブル作成するのに、tableMagic を使用しています。そのテーブルに対して実行するのですが、その為に添付の CSS(defaultTheme.css) が必須なので注意して下さい。

IE でも実用になります

fixedTblHdrLftCol では IE で使い物になりませんでしたが、この fixedheadertable では軽快に動作します。ただ、列を固定できるのが左端の1列のみです。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>

<script src="tableMagic/js/jquery.tablemagic-min.js"></script>
<script src="fht/jquery.fixedheadertable.js"></script>
<link rel="stylesheet" href="fht/css/defaultTheme.css">



<link rel="stylesheet" href="css.php">
<style>
.trEven {
	background-color: #FFFFFF;
}
.trOdd {
	background-color: #F1F4F8;
}

#target table * {
	font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"MS Pゴシック",Verdana,Arial,Helvetica,sans-serif;
	font-size: 16px;
}
#target table {
	border-collapse: collapse;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: #FFFFFF;
}
#target table td {
	padding: 15px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	white-space: nowrap;
}
#target table th {
	padding: 15px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: silver;
	white-space: nowrap;
}
</style>
<script>
// jQuery 初期処理
$(function() {

	$.get("syain.php?cond=" , function(data){

		$('#target').tableMagic(
			data,
			{
				firstColTd2Th: false
			}
		);

		customTable();

		$('#target table').fixedHeaderTable(
			{ 
				width: '700',
				height: '400',
				fixedColumn: true
			}
		);


	});



});

function customTable() {

		$("table").find("th").eq(6).css("text-align", "right");
		$("table").find("th").eq(7).css("text-align", "right");

		$("table").find("tr").each( function(){
			$(this).find("td").eq(6).css("text-align", "right");
			$(this).find("td").eq(7).css("text-align", "right");

			var kyuyo = $(this).find("td").eq(6).text();
			kyuyo = parseInt(kyuyo,10);
			kyuyo = kyuyo.toLocaleString();
			$(this).find("td").eq(6).text(kyuyo);

			var teate = $(this).find("td").eq(7).text();
			if ( teate != "" ) {
				teate = parseInt(teate,10);
				teate = teate.toLocaleString();
			}
			$(this).find("td").eq(7).text(teate);

		} );
}


</script>
</head>
<body>


<div id="target"></div>

</body>
</html>




posted by lightbox at 2015-11-24 16:30 | IFRAME パッケージ | このブログの読者になる | 更新情報をチェックする

2015年11月20日


jQuery : Columns で作成されたテーブルを fixedTblHdrLftCol でヘッダと左列を固定( CSS カスタマイズ )

デモページ


せっかく Columns でスタイルはでき上がっているので、fixedTblHdrLftCol で使えるかどうか試してみました。

結果的に使えたのですが、IE11 ですとかなり重くて実用にはならないと思います。他のブラウザでは軽快に動作しますが、CSS でのチューニングは自動的にしてしまうのは無理のようです。

以下のサンプルコードは、Columns を主体としてチューニングしていますが、タイトルと列をうまく表示する為に、固定列の幅を個別に設定する必要がありました。また、どこでか解りませんが背景色に透過度を指定しているようなので、明示的に非透過にする必要がありました。

この手の処理は自分でも作った事がありますが、複雑なテーブルほど対応が難しくなると思います。
<style>
/* Columns のフッタを非表示 */
.ui-table-footer {
	display:none;
}

/* 崩れないようにタイトルに nowrap */
/* 透過しないように rgba の最後に 1 */
/* Columns の境界が表示されないように border: 0px; */
#columns .ui-table thead tr th,#columns2 .ui-table thead tr th {
	white-space: nowrap;
	background-color:rgba(220,220,220,1);
	border: 0px;
}
/* ヘッダと固定列の背景色 */
.fTHLC-outer-wrapper {
	background-color:rgb(220,220,220);
}


#columns .ui-table thead tr th:first-child,#columns2 .ui-table thead tr th:first-child {
	width: 91px;
	z-index: 1000;
}
#columns .ui-table tbody td:first-child,#columns2 .ui-table tbody td:first-child {
	width: 80px;
}

#columns2 .ui-table thead tr th:nth-child(2) {
	margin-left:-1px;
	width: 111px;
	z-index: 1000;
}
#columns2 .ui-table tbody td:nth-child(2) {
	width: 100px;
}



</style>
<script>
// jQuery 初期処理
$(function() {

	$.get("syain.php?cond=" , function(data){

		$('#columns,#columns2').columns({
			size: data.length,

			search: false,	// Columns の サーチ用ヘッダを非表示
			sortableFields: [],	// ソート列なし

			data: data, 
			templateFile: 'columns/templates/custom.mst'
		
		});

		customTable();

		// fixedTblHdrLftCol
		$('#columns .ui-table').fixedTblHdrLftCol({
			scroll: {
				height: '400px',
				width: '700px',
				leftCol: {
					fixedSpan: 1
				}
			}
		});
		$('#columns2 .ui-table').fixedTblHdrLftCol({
			scroll: {
				height: '400px',
				width: '700px',
				leftCol: {
					fixedSpan: 2
				}
			}
		});

	});


});

function customTable() {

		$("table").find("th").eq(6).css("text-align", "right");
		$("table").find("th").eq(7).css("text-align", "right");

		$("table").find("tr").each( function(){
			$(this).find("td").eq(6).css("text-align", "right");
			$(this).find("td").eq(7).css("text-align", "right");

			var kyuyo = $(this).find("td").eq(6).text();
			kyuyo = parseInt(kyuyo,10);
			kyuyo = kyuyo.toLocaleString();
			$(this).find("td").eq(6).text(kyuyo);

			var teate = $(this).find("td").eq(7).text();
			if ( teate != "" ) {
				teate = parseInt(teate,10);
				teate = teate.toLocaleString();
			}
			$(this).find("td").eq(7).text(teate);

		} );
}


</script>
</head>
<body>

<div id="columns"></div>

<br><br>

<div id="columns2"></div>

固定列が一つの場合は比較的簡単ではあります。th:first-child と td:first-child でサイズが約 11px 違う場合にこの場合はうまく動作しています。二つ以上の固定列にする場合、背景透過の影響で境界が透過されてしまうので、margin-left: -1px で強引に閉じる処理をしています

z-index は、背景非透過のうしろにスライドした内容を隠す為に、正しい重なりに変更する為に使用しています


関連する記事

jQuery プラグイン : Columns と PHP の連携と、ドキュメントには書かれていないカスタマイズ方法





posted by lightbox at 2015-11-20 18:28 | IFRAME パッケージ | このブログの読者になる | 更新情報をチェックする

2015年11月16日


クリスマスに備えて、『雪を降らす snowstorm.js』のカスタマイズ / ダウンロードも何も必要ありません。jQuery も必要ありません

ダウンロードも何も必要ありません。jQuery も必要ありません。ただ、cdnjs より URL をコピーして『ページに埋め込むだけです』

配布サイトのオプションの説明

デモページ


ただ、そのままではあまりにも工夫が無いので、少しオプションを設定しています。
<style>
body {
	background-color:#000000;
}

@-webkit-keyframes snow-rotate {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}
@-moz-keyframes snow-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@-o-keyframes snow-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes snow-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.mysnow {
	color:#e0e0e0!important;
	-webkit-animation: 1.85s snow-rotate steps(8) infinite;
	-moz-animation: 1.85s snow-rotate steps(8) infinite;
	-o-animation: 1.85s snow-rotate steps(8) infinite;
	animation: 1.85s snow-rotate steps(8) infinite;

}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Snowstorm/20131208/snowstorm-min.js"></script>
<img src="https://lh3.googleusercontent.com/-Chj58uY2pjs/Vht0XOX3l-I/AAAAAAAAcCs/ijZAwj3NNQY/s1000-Ic42/silver_a2.png">
<script>
snowStorm.excludeMobile = false;
snowStorm.animationInterval = 50;
snowStorm.flakesMax = 64;
snowStorm.className = "mysnow"
snowStorm.flakeWidth = 16;
snowStorm.flakeHeight = 16;
snowStorm.snowCharacter = '&#10052;';
</script>
二つの大きなカスタマイズ

もともとは、小さな点を使っで雪を降らしていますが、キャラクタを自由に変更できるので、もともとある雪の結晶のような "❄" を使用しています。キャラクタのサイズが倍になるので、幅と高さを変更しています。

さらに、CSS のアニメーションを使用して一つ一つの雪の結晶を回転させています。

モバイル対応

モバイルで動作させるには、以下の設定が必要です。厳密な違いは解りませんが、作者は『バッテリーに悪影響あり』とほのめかしておられます。
snowStorm.excludeMobile = false;

CPU にやさしく

以下の設定は不用意に CPU を使わないようになる事が期待できます

snowStorm.animationInterval = 50;
snowStorm.flakesMax = 64;


関連する記事

雪を降らす snowstorm.js の 特定 DIV 内での実装
【改造】雪を降らす snowstorm.js に 風向きを外部から設定できるオプションを追加しました




タグ:javascript cdnjs
posted by lightbox at 2015-11-16 20:40 | JavaScript ライブラリ | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり