jquery Pluginでシンプルなローディング機能を作ってみた。(jquery.simpleProgress)

jquery Pluginでシンプルなローディング機能を作ってみた。(jquery.simpleProgress)

jquery Pluginでシンプルなローディング機能を作ってみた。(jquery.simpleProgress)

jquery Pluginでシンプルなローディング機能を作ってみた。(jquery.simpleProgress) へのコメントはまだありません

Ajaxでそれなりに時間がかかる非同期処理実行中に、ユーザーに処理が進行中ですよと理解してもらうためのちょっとしたプラグインを作りました。良かったら使ってみてください。ページ最下部からダウンロードできます。

動作イメージ

プラグイン名

jquery.simpleProgress

必要なファイル

jquery.simpleProgress.js
ani.png

使い方

HTML

非表示のDIVを作ります。

[html mark=”3,7″]
<html>
<head>
<script type=”text/javascript” src=”jquery.simpleProgress.js”></script>
</head>

<body>
<div id=”spProgress” style=”display:none”></div>
</body>
</html>
[/html]

JavaScript

非同期処理を行うイベントの先頭で、プラグインを起動。非同期処理終了時にセレクターを非表示に。
[js mark=”2,7″]
function 非同期処理イベント(){
$(“#spProgress”).simpleProgress();

$.ajax({
url: “/xxxx/xxxx”,
success: function(json, dataType){
$(“#spProgress”).css(“display”,”none”);
});
}

[/js]

オプション

[js]
//表示座標指定
$(“#spProgress”).simpleProgress({top:100,left:100});

//画像ファイルの相対位置指定
$(“#spProgress”).simpleProgress({relpath:”../../”});

//表示文字列指定
$(“#spProgress”).simpleProgress({message:”処理実行中”});

//タイマー処理感覚指定
$(“#spProgress”).simpleProgress({interval:500});

[/js]

ソース全文

[js]

/*
usage
//html

//start progress
$(“#spProgress”).simpleProgress();

//stop progress
$(“#spProgress”).css(“display”,”none”);

//options
$(“#spProgress”).simpleProgress({message:”updating”,interval:200,top:100,left:100,relpath:”../../”});

*/

(function($){

$.fn.simpleProgress = function(options){
var target = this;

var defaults = {
interval : 100,
message : “Progress”,
top: (screen.height /2),
left: (screen.width /2) ,
relpath: “../”
};
var settings = $.extend(defaults, options);;
var timer = null;

var elementFunc = function(elem){
//init

var cnt = 0;

var init = function (){
$(elem).empty();
$(elem).append(““);

$(elem).css(“display”,”block”);
$(elem).css(“position”,”absolute”);
$(elem).css(“top”,settings.top);
$(elem).css(“left”,settings.left);
$(elem).css(“z-index”,100);
$(elem).append(“” + settings.message + ““);
$(elem).children(“.pg-message”).css(“display”,”block”);
$(elem).children(“.pg-message”).css(“float”,”left”);
$(elem).children(“.pg-message”).css(“padding”,10);

timer = setInterval(function(){
var wk = “”;
for (var i = 0 ; i < cnt ;i++){ wk += "."; } $(elem).children(".pg-message").text(settings.message + wk); var trf = "transform: rotate(@@@deg);-ms-transform: rotate(@@@deg);-moz-transform: rotate(@@@deg);-webkit-transform: rotate(@@@deg);" trf = trf.replace(/@@@/g,cnt*45); $(elem).children("img").attr("style","float:left;" + trf); cnt++; if ($(elem).css("display") == "none"){ clearInterval(timer); } if (cnt == 8){ cnt = 0; } } ,settings.interval); $(elem).click(function(){ cnt = 0; }); }; init(); }; var ret = $(this).each(function(){ elementFunc(this); }); return ret; } })(jQuery); [/js]

ダウンロード

jquery.simpleProgress size:2kb

About the author:

Related Posts

Leave a comment

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Back to Top