• このエントリーをはてなブックマークに追加

以前、「jQueryでシンプルなカルーセルパネルスライドUIを作成する方法」と題して、
jQueryを使ってのシンプルなスクリプトでカルーセルUIを実装する方法を紹介しましたが
カルーセル動作での自動でスライドするパターンの実装方法のリクエストをいただき、
以前のものをカスタマイズして、試しに作ってみたので紹介してみます。

まずは動作のサンプルから。

jQuery SIMPLE CAROUSEL AUTO SLIDE【SAMPLE】

5秒ごとにカルーセルパネルが自動でスライドします。
スライドは左右の矢印をクリックすることで動作させることも可能です。

並べられたコンテンツ要素(画像)は一つずつスライドし、
要素全体はループして表示されます。

このカルーセルパネルUIの全体構成について、
まずはHTMLから。

◆HTML
<div id="carousel">
<ul>
<li><a href="#"><img src="img/photo01.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo02.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo03.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo04.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo05.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo06.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo07.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo08.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo09.jpg" width="100" height="100" alt="" /></a></li>
<li><a href="#"><img src="img/photo10.jpg" width="100" height="100" alt="" /></a></li>
</ul>
</div><!--/#carousel-->

HTMLは以前の記事のものと構成は全く変わっていません。

大枠を任意のIDで覆い(サンプルでは「#carousel」とします)、
その中に<ul>のリストを入れ込みます。
このリストの<li>が一つのコンテンツ要素となります。

コンテンツ要素を増やしたり減らしたりする際は、
HTML側で単純に<li>の数を変更すればいいだけになっています。

そしてこのHTMLソースに対してのCSSは以下の様に。

◆CSS
#carousel {
	margin: 0 auto;
	width: 500px;
	height: 100px;
	text-align: left;
	position: relative;
}

#carousel_prev,
#carousel_next {
	top: 0;
	width: 20px;
	height: 100px;
	background: #000;
	cursor: pointer;
	position: absolute;
}
#carousel_prev {
	left: -20px;
	background:transparent url(../img/prev.jpg) no-repeat top left;
}
#carousel_next {
	right: -20px;
	background:transparent url(../img/next.jpg) no-repeat top left;
}

#carousel ul li {
	width: 100px;
	float: left;
	display: inline;
}


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

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

CSSも以前の記事のものと構成は全く変わっていません。

全体を囲んでいる「#carousel」の値がカルーセルパネルの表示領域となり
それぞれの値は変更が可能になっています。

そして実際に動作を実行させるスクリプトは以下の様になります。

◆SCRIPT
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$('#carousel').each(function(){
		var slideTime = 500;
		var delayTime = 5000;

		var carouselWidth = $(this).width();
		var carouselHeight = $(this).height();
		$(this).append('<div id="carousel_prev"></div><div id="carousel_next"></div>');
		$(this).children('ul').wrapAll('<div id="carousel_wrap"><div id="carousel_move"></div></div>');

		$('#carousel_wrap').css({
			width: (carouselWidth),
			height: (carouselHeight),
			position: 'relative',
			overflow: 'hidden'
		});

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

		var ulWidth = (listWidth)*(listCount);

		$('#carousel_move').css({
			top: '0',
			left: -(ulWidth),
			width: ((ulWidth)*3),
			height: (carouselHeight),
			position: 'absolute'
		});

		$('#carousel_wrap ul').css({
			width: (ulWidth),
			float: 'left'
		});
		$('#carousel_wrap ul').each(function(){
			$(this).clone().prependTo('#carousel_move');
			$(this).clone().appendTo('#carousel_move');
		});

		carouselPosition();

		$('#carousel_prev').click(function(){
			clearInterval(setTimer);
			$('#carousel_move:not(:animated)').animate({left: '+=' + (listWidth)},slideTime,function(){
				carouselPosition();
			});
			timer();
		});

		$('#carousel_next').click(function(){
			clearInterval(setTimer);
			$('#carousel_move:not(:animated)').animate({left: '-=' + (listWidth)},slideTime,function(){
				carouselPosition();
			});
			timer();
		});

		function carouselPosition(){
			var ulLeft = parseInt($('#carousel_move').css('left'));
			var maskWidth = (carouselWidth) - ((listWidth)*(listCount));
			if(ulLeft == ((-(ulWidth))*2) || ulLeft == ((-(ulWidth))*2)+1) {
				$('#carousel_move').css({left:-(ulWidth)});
			} else if(ulLeft == 0) {
				$('#carousel_move').css({left:-(ulWidth)});
			};
		};

		timer();

		function timer() {
			setTimer = setInterval(function(){
				$('#carousel_next').click();
			},delayTime);
		};

	});
});
</script>

4行目の「#carousel」が実行させるID名になるので
全体を別のID名で構成した場合には、ここの名前も変更する必要があります。

5,6行目の
———————————-
var slideTime = 500;
var delayTime = 5000;
———————————-
は、「slideTime」がスライド動作のスピード
「delayTime」が自動でスライドする際の待機時間
となっているので自動でスライドするタイミング等を
ここの値を変更することで可能としてあります。

カルーセルパネルUIもいろいろなパターンがありますが
こういった自動で定期的にスライドさせる動作も
見せたい物が多い時などにも有効かと感じています。

オートスライド機能付きのカルーセルパネルUIが必要になった際に是非。。。

サンプルファイルをダウンロードしたい方はこちらから

  • このエントリーをはてなブックマークに追加

Related Posts

Trackback URL

Comments (56)

  • mori | 2012.01.11 13:35

    UPありがとうございます!

    感謝感激です!

  • BlackFlag | 2012.01.11 23:18

    >moriさん

    コメントありがとうございます!

    このカルーセルも参考にして頂けると幸いです。

  • shon | 2012.02.29 0:29

    参考になりました
    ありがとうございます!

  • BlackFlag | 2012.02.29 9:54

    >shonさん

    コメントありがとうございます!

    このスクリプトがご参考になったようで
    サイト制作に少しでもお役立ていただけると
    こちらとしても嬉しく思います。

  • sachi | 2012.03.04 17:46

    参考になりました、ありがとうございます!
    猫ちゃん達もかわいいです^^
    とても理想通りの動きをしており、
    ぜひ商用サイトでも参考にさせて頂きたいのですが、
    ソースを参考にさせて頂いてもよろしでしょうか?

  • BlackFlag | 2012.03.04 18:06

    >sachiさん

    コメントありがとうございます!

    このスクリプトをご活用いただいているようで
    こちらとしても大変嬉しく思っております。
    (猫写真も気に入っていただけたようでよかったです^^)

    こちらのスクリプトの使用に関しては
    個人・商用問わず、ご自由に使用していただいてかまいません。

    この記事に関わらず、当ブログで紹介しているスクリプトは
    特にライセンスなども設けていないので、
    ご自由に使用および改変して
    サイトに組み込んでいただいて問題ありませんので
    ご活用いただけると幸いです!

    よろしくお願いします!

  • yaman | 2012.04.11 18:08

    とってもいい動きのプラグインですね。
    是非使わせていただきたいと思い、
    触らせていただいています。
    が、少しつまずきまして、、、

    3ライン作ってそれぞれの#carouselの値を
    #carousel
    #carousel2
    #carousel3
    として、jsやcssも
    それぞれのIDごとに作ったのですが、
    うまく動作しませんでした。

    3ラインは無理でしょうか?
    ご教授いただければ幸いでございます。

  • BlackFlag | 2012.04.14 23:49

    >yamanさん

    コメントありがとうございます!
    返信が遅れてしまい申し訳ありませんでした。。

    この記事のカルーセルスクリプトをご活用いただいているようで
    嬉しく思っております。

    紹介しているカルーセルスクリプトは、ページ内に1つ設置の想定になっているので
    複数設置する場合には、強引にエリアの指定やスクリプト動作一つ一つに
    01~03といったナンバリングをつけて動作を個別に指定する必要があります。

    1ページ内に、このカルーセルをパネルを3つ設置した
    パターンのサンプルを用意しましたので必要であれば
    下記よりダウンロードして中身を確認してみてください。

    http://black-flag.net/devel/jQuerySimpleCarouselAutoSlide/jQuerySimpleCarouselAutoSlideDual.zip

    あまりキレイな方法とは言えないのですが
    3つ動作はしています。

    ご確認よろしくお願いします。

  • nico | 2012.04.19 14:58

    素敵なスクリプトのご紹介ありがとうございます!
    早速参考にさせていただき、更に用途に合わせて手入れしたもので試しているのですが、
    画像だけでなくテキストも含んだliをスライドするものを考えています。

    そこで、現在ぶち当たっている壁がどうしてもクリアできないので、
    分かりましたらお知恵をお借りできないかと・・・(汗)

    1:スライド幅について
    横幅にも変更を加えているのですが、スライドする幅がずれてしまい、
    スライドする毎にどんどんどんどんずれていってしまいます。
    この幅はどこかで指定できるのでしょうか?

    2:リピートについて
    幅を変えたことが原因かわからないのですが、リピートはするものの
    つなぎ目に余分な余白が空いて綺麗につながりません。
    どこを調整すればよいか教えていただけませんでしょうか?

    初歩的な質問になりますが、
    お時間有りましたらどうぞよろしくお願い致します。

  • minit | 2012.04.20 19:13

    シンプルでとても設置しやすいです!
    スクリプトも大変参考にさせていただいています。
    ありがとうございます。

    よろしければひとつ質問させていただきたいのですが、
    自動スライドで画像にマウスオーバー時に
    スライドを一時停止させることはできますでしょうか?
    (もし既に他の記事に出ていたらすみません。。)

    お時間のあるときに教えていただけると幸いです。
    よろしくお願いします。

  • yaman | 2012.04.20 20:52

    BlackFlagさま!
    さすがです。私が編集したスクリプトでは2行しか動かなかったのですが、
    アップされてたJavaScriptに入れ替えると…ばっちり動きました!ありがとうございます!!!!!!
    早く自分でも書けるように勉強続けていきます〜。

    >nicoさま
    私もテキスト込みのものを実装して、余白を均等につけたものをこちらのカルーセルで動かして、
    初めはずれたのですが、cssを直すと直りましたよー。
    もしかするとcssがわるさをしてるかもしれませんね。

  • BlackFlag | 2012.04.21 0:26

    >nicoさん

    コメントありがとうございました。

    このスクリプトをご活用いただいているようで
    嬉しく思っております。

    ご質問いただきました件についてですが
    LIの幅をスクリプト側で計算して移動距離を出しているのですが
    LIの幅にmarginやpaddingがついていると
    その計算がおかしくなることがあります。

    LIに対してはmarginやpaddingを付けずに(左右のみ)
    レイアウトできるようにCSSを調整してみていただけますでしょうか。

    ご確認の程、宜しくお願い致します。

  • BlackFlag | 2012.04.21 0:59

    >minitさん

    コメントありがとうございます!

    このカルーセルスクリプトを参考にしていただいているようで
    とても嬉しく思っております。

    ご質問いただきましたマウスオーバーでスライドを一時停止させるには
    「function timer()」のところでタイマーセットしているfunctionを
    マウスオーバー時に制御させることで可能になります。

    記述例としましては
    ——————————————
    $(‘#carousel’).hover(function(){
    clearInterval(setTimer);
    },function(){
    timer();
    });
    ——————————————
    をスクリプトに追加することで
    カルーセルエリアにマウスオーバーで
    動作ストップさせることができます。

    サンプルファイルも用意しましたので
    必要あれば下記URLよりダウンロードしてみてください。
    http://black-flag.net/devel/jQuerySimpleCarouselAutoSlide/jQuerySimpleCarouselAutoSlideHoverStop.zip

    ご確認、宜しくお願い致します。

  • BlackFlag | 2012.04.21 1:02

    >yamanさん

    ご返信ありがとうございました!

    ご希望の動作が実装できたようで安心致しました。
    少々強引なやり方ではありましたが
    無事に動いてよかったです。

    nicoさんへのアドバイスもありがとうございました。
    おそらく仰るとおりCSSの調整になるかと思います。

    また何かありましたら宜しくお願い致します。

  • minit | 2012.04.22 16:51

    ご丁寧にありがとうございます!
    無事に実装できました。

    これからもいろいろと参考にさせていただきます。
    よろしくお願いします。^ ^

  • nico | 2012.04.23 9:30

    >BlackFlag
    美味しがしい中、コメントへのご回答ありがとうございます。
    一度調整してみたいと思います!

    >yaman様

    アドバイスいただき有り難うございます!
    一度cssを再確認してみようと思います。

  • senshichi | 2012.06.22 10:53

    助かりました!!
    シンプルなコードで分かりやすくて、簡単にページに組み込めました。
    ありがとうございます(^^)

  • nana | 2012.06.22 14:56

    はじめまして、初心者の私でも動かすことができました–!!
    ありがとうございます。
    1つだけうまくいかなかったのですが、最後の画像まで来ると、最初の画像が表示されず空白でスライドし、最後の画像が消えると一気に最初の画像に戻ります。。
    CSSはコチラで提供していただいているものそのまま使っています。
    どうしたらいいのでしょうか?
    お忙しいのに申し訳ございません。。

  • BlackFlag | 2012.06.23 1:01

    >senshichiさん

    コメントありがとうございます!

    このスライドスクリプトをサイトに実装していただいたようで
    とても嬉しく思っております。

    他にもいろいろなUIを簡単に実装できるサンプルを紹介していますので
    お試しいただけると幸いです。

    今後ともよろしくお願いします。

  • BlackFlag | 2012.06.23 1:08

    >nanaさん

    コメントありがとうございます。
    このスライドスクリプトをご活用いただいているようで
    嬉しく思っています。

    ご質問いただきました件についてですが
    全体構成を確認してみないと何とも言えないのですが
    想定できることであれば、組み込んだ際にCSSのブラウザリセットが
    きちんとされていないのではないかと思われます。

    最低限のブラウザリセットである
    ———————————-
    *{
    margin: 0;
    padding: 0;
    }
    ———————————-
    がCSSの始めに設定されているか
    確認してみていただけますでしょうか。

    よろしくお願いします。

  • nana | 2012.06.25 11:11

    お忙しい中お返事ありがとうございます!!
    早速CSSに追加しましたところ、無事、余白が消えました!!
    感動です★ありがとうございました。
    これからもサイトで勉強させていただきます★

  • BlackFlag | 2012.06.25 21:11

    >nanaさん

    ご報告ありがとうございました!
    無事に余白が消えて理想の動作が実装できたようで安心しました。

    また何かあればご連絡くださいませ。
    よろしくお願いします。

  • あや | 2012.08.30 10:50

    すごく助かりました!ありがとうございました!

  • BlackFlag | 2012.09.02 18:22

    >あやさん

    コメントありがとうございます!
    このスライドショースクリプトがお役に立った様でよかったです!

  • りお | 2012.09.06 13:49

    いつも素敵なスクリプトをご提供いただきありがとうございます♪

    自動スクロールを無くして矢印をクリックした場合のみ1枚づつスクロールされるようにしたいのですが、
    現在は下記のように待機時間を長くして、自動スクロールしないようにごまかしているのですが……

    ——————————–
    var slideTime = 0;
    var delayTime = 100000;
    ——————————–

    これでも動作的に問題ないでしょうか?
    他にいい方法はありますか?

  • BlackFlag | 2012.09.07 0:37

    >りおさん

    コメントありがとうございます!

    このカルーセルパネルスクリプトをご活用いただいているようで
    嬉しく思っております。

    自動スクロールを無くす場合についてですが
    記事内で紹介しているスクリプトの下記の行を削除することで
    動作させないことができるかと思います。

    —————————————-
    07 var delayTime = 5000;
    46 clearInterval(setTimer);
    50 timer();
    54 clearInterval(setTimer);
    58 timer();
    71 timer();
    73 function timer() {
    74 setTimer = setInterval(function(){
    75 $(‘#carousel_next’).click();
    76 },delayTime);
    77 };
    —————————————-

    これらを削除することで「timer()」で動作させている
    自動スライド機能を削除することになります。

    「delayTime 」を長い時間にすることで
    強引にごまかす方法もナシではないかもしれませんが
    こちらの方が適切なやり方だと思いますので
    試してみてください。

    よろしくお願いします。

  • りお | 2012.09.10 11:02

    ご丁寧にありがとうございます。
    理想通りのスクリプトを設置することができました!
    こちらのサイトはとても丁寧に記載していただいているのですぐにサイトに設置できて助かっています♪
    またいろいろと利用させていただきますね。

  • BlackFlag | 2012.09.10 20:33

    >りおさん

    ご返信ありがとうございました。
    無事に理想通りの動作が実装できたようで安心しました。

    また何かありましたら
    ご連絡くださいませ。

    よろしくお願いします。

  • くるる | 2012.09.13 12:10

    はじめまして、
    jQueryのアニメーションを使って、
    スライドが滑らかに途切れることなく続いていくスクリプトを、
    探しておりましたので、とても助かりました。
    CSSがシンプルでカスタマイズしやすかったです。
    こちらで使用させて頂きます。
    jQueryの書き方もわかり易かったです。ありがとうございます。

  • BlackFlag | 2012.09.14 0:53

    >くるるさん

    コメントありがとうございます。

    このカルーセルスクリプトがご活用いただけたようで
    とても嬉しく思っております。

    他にもいろいろ紹介しておりますので
    あれこれ試していただけると幸いです。

    よろしくお願いします。

  • p | 2013.02.01 12:52

    はじめまして、このようなカルーセルを探していましたので発見出来てとても嬉しく思います。
    設置の際に疑問が出ましたので宜しければ教えていただけないでしょうか。
    スライドのスピードを変更して、ゆっくりとするする止まる事無く画像が流れるようにしたかったのですが、
    どうにも反応が鈍く、画像がかくかくしたり時々止まったりしてしまいます。

    var slideTime = 4000;
    var delayTime = 200;

    こんな感じにしてみたのですが、原因はこの設定にありますか?

  • BlackFlag | 2013.02.02 22:22

    >pさん

    コメントありがとうございます。

    このカルーセルスクリプトをご活用いただいているようで
    嬉しく思っております。

    ご質問いただいた件についてですが
    「slideTime」より「delayTime」の値を小さくすると
    スライドアニメーションが完了する前に
    次のアニメーションが次々と開始されることになってしまうので
    ———————————-
    var slideTime = 4000;
    var delayTime = 4200;
    ———————————-
    この様にすることで
    理想の時間が設定できるのではないかと思っております。

    お試しください。
    よろしくお願いします。

  • BlackFlagさんのファン | 2013.02.21 10:14

    jQueryのスライドするカルーセルパネルUI

    いつもお世話なっております。
    自分のサイトでも使わせてもらっているのですが
    トップページにアクセスすると
    横にスライドしている画像たちが一瞬だけバラつきます。
    すぐに元には戻るのですが、原因を教えてください。

    ブラウザはsafari、firefox、スマホなどでアクセスすると上記のような現象がおこります。

    よろしくお願いします。

  • BlackFlag | 2013.02.24 15:46

    >BlackFlagさんのファンさん

    コメントありがとうございます。
    このカルーセルスクリプトをご活用いただいている様で嬉しく思っております。

    ご質問いただいた件についてですが
    こちらの環境ではその様な現象が確認できないのですが
    この記事で紹介しているサンプルファイルをそのまま開いても
    同じ現象が起こるということでしょうか?

    全体に掛かるCSSが原因となる場合も考えられますが
    一度ご確認ください。

    よろしくお願いします。

  • 若林 茂夫 | 2013.03.11 13:05

    はじめまして
    素晴らしい、スライドアニメーションに出会い早速、使わせて頂こうと存じます。
    test中、1点、IE6でブラウジングすると、下に余白(多分画像の高さ分)が表示されます。
    cssでいろいろ設定してみましたがうまくいきません。
    ご教授賜りたくお願い申し上げます。~66歳 老人より

  • tkm | 2013.03.12 1:02

    ホームページ製作初心者です。
    何とか独学でページ製作をしており、新しいことをするたびにつまずいてしまうほどですが。。。

    このカルーセルを搭載したいのですが、記載されているとおりにすると見本と同じように動作するのですが、CSS,#carousel_prev(#carousel_next )の画像を差し替えるとliの画像に食い込んでしまいます。(liの画像がprevの画像の下に入ってしまう)のですがどこをどのように書き換えればよいでしょうか?

    いろいろ試してみましたが答えが見つかりませんでした。
    原因を教えてください。よろしくお願いいたします。

  • BlackFlag | 2013.03.17 1:11

    >若林様

    コメント有難う御座います。

    このカルーセルスクリプトをご活用いただいている様で
    嬉しく思っております。

    ご質問いただきました件についてですが、
    もうIE6はあまり想定内に入れていないのですが
    やるとなると、サンプル構成で言う「#carousel」の周りを
    任意のブロック要素(例えば「#carousel_cover」など)で囲い、
    それに対してCSSで幅(#carousel幅+左右のボタン幅)と高さを指定し
    「overflow:hidden;」指定を加えることで解消されるのではないかと思っております。

    お試しください。
    よろしくお願いします。

  • BlackFlag | 2013.03.17 1:17

    >tkmさん

    コメントありがとうございます。

    このカルーセルパネルスクリプトを
    ご活用いただいている様で嬉しく思っております。

    ご質問いただきました件についてですが、
    実際にどのように実装されているか
    画面などが確認できないことには何とも言えないのですが
    左右のボタンの幅をCSSで指定してあるので
    ボタンのCSS「width」「left」「right」の値を確認してみてください。

    よろしくお願いします。

  • cat | 2013.03.25 20:03

    はじめまして。
    1つづつ移動するカルーセルを探しておりましたので、
    イメージしていたものが見つかりとても助かりました。ありがとうございます。

    できれば画像の下へサムネイルテキストを数行追加したものを作成したく、
    liタグの中へdivタグを挿入して作成していたのですが、
    IE7でだけ、リピートした際に空白のulタグが2つできてしまい、
    2つ分回転するまで表示がされないような状態になっております。

    まだまだ初心者で申し訳ございませんがご教授いただけますでしょうか。
    恐れ入りますがよろしくお願いいたします。

  • cat | 2013.03.26 11:03

    度々のご連絡失礼いたします。
    解決できましたのでご連絡いたします。
    原因はcssの「:after」タグがIE7対象外だったためでした。
    「:after」タグを使用できるjsをいれることでIE7は対応することにいたしました。

    ご迷惑をおかけいたしました。
    ありがとうございました。

  • BlackFlag | 2013.03.27 23:16

    >catさん

    コメントありがとうございます。
    このカルーセルパネルスクリプトをご活用いただいている様で
    嬉しく思っております。

    IE7での問題も解消されたようでよかったです。

    また何かありましたらよろしくお願いします。

  • kesnon | 2013.06.16 17:59

    はじめまして
    kesnonと申します。

    BlackFlagさんのスクリプト、とても参考になります。仕事に流用させていただきました。
    ありがとうございます。

    ご質問させて頂きます。
    このカルーセルスクリプトですが、IE9での表示においてブラウザの表示倍率が100%以下(95%など)ですとループ3周目から表示されませんでした。(2周目は表示されます)100%以上ですと通常表示されます。

    これはどの様な理由が考えられますでしょうか?
    お時間がある時で結構ですのでご教授いただけると幸いです。

    これからも他のスクリプトも含めて参考にさせていただきます。
    ありがとうございました。

  • BlackFlag | 2013.06.19 1:23

    >kesnonさん
    コメントありがとうございます。
    このカルーセルスクリプトをご活用いただいているようで
    とても嬉しく思っております。

    ご質問いただきました件についてですが
    こちらでも検証してみたところ
    同様の現象を確認することができました。

    調査してみたところ、IEでブラウザの表示比率を変えることで
    比率の加減によって、移動距離に1pxの誤差が生じる現象が
    発生することが分かりました。

    解消方法としては
    当記事で紹介しているスクリプトの
    64行目
    —————————————
    if(ulLeft == ((-(ulWidth))*2)) {
    —————————————
    の記述を
    —————————————
    if(ulLeft == ((-(ulWidth))*2) || ulLeft == ((-(ulWidth))*2)+1) {
    —————————————
    この様に変更することで
    解消されるかと思います。

    記事内のスクリプトの記述と
    サンプル動作およびサンプルダウンロードファイル
    それぞれの記述も修正しておきましたので
    併せてご確認ください。

    不具合動作のご報告、誠に有難う御座いました。
    また何かお気づきの点等ありましたら
    ご連絡くださいませ。

    よろしくお願い致します。

  • kesnon | 2013.06.19 19:51

    >BlackFlagさん
    早速の調査、ご教授ありがとうございます。

    スクリプト内に新しい記述を追加しまして、IE9で動作確認しました。無事に動作いたしました。
    ありがとうございます。

    やはり、IE関連は難しいです。

    これからも良質のスクリプトを楽しみにしております。
    ありがとうございました。

  • BlackFlag | 2013.06.20 0:17

    >kesnonさん
    ご確認ありがとうございます。

    無事に問題も解消されたようで
    安心致しました。

    またIEでおかしな挙動など発生しましたら
    ご連絡ください。

    よろしくお願いします。

  • Akiyoshi | 2013.06.25 16:28

    はじめまして。
    とても有用なスクリプトをありがとうございます。
    設置しやすく確実に動作してくれてちょっと感動しました。

    早速ですが1つ質問があります。
    矢印をクリックした時にコンテンツ要素が4つぐらいいっぺんに動かすことは出来ますでしょうか?

    ご教授いただければ幸いです。
    よろしくお願い致します。

  • BlackFlag | 2013.06.28 0:08

    >Akiyoshiさん
    コメントありがとうございます。
    このカルーセルスクリプトを
    ご活用いただいているようで嬉しく思っております。

    ご質問いただきました件についてですが
    当記事で紹介しているスクリプトでは
    「4つ」というような規則性の持てないパターンでの
    スライドは少々厳しいかと思いますが
    当ブログ別記事の
    ——————————————————–
    ・jQueryでページ送り(ページネーション)付きのカルーセルパネルスライドUIを作成する方法
    http://black-flag.net/jquery/20110708-3310.html
    ——————————————————–
    にて紹介させていただいているパターンでは
    表示個数ごとにスライドさせる構成で実装するものになっておりますので
    こちらもご参考にしていただけると幸いです。

    よろしくお願いします。

  • Akiyoshi | 2013.06.28 11:10

    >BlackFlagさん
    回答ありがとうございます。
    教えていただいたスクリプトで目的は達成されそうです。
    google検索でこのページに来てその他のページは見ておりませんでしたが、役立ちそうなスクリプトがたくさんあり、こういうページを公開している人にはホント頭が下がります。
    これからも参考にさせていただきます。
    ありがとうございました。

  • papaiya | 2013.08.12 0:31

    はじめまして。
    公開よりだいぶ日数が経過してしまいましたが、まだ質問に答えていただくことは可能でしょうか。
    (皆さんが正常に動作しているようですので、知識の浅い私の構築に全ての原因があるのですが…)

    こちらのスライダーを試したところ、なぜか開始位置が画像半個分ズレてしまうようです。
    next,prevの画像が表示されていないため、
    恐らくは background:transparent url が正常に動作していないものと思われます…

    タグも記載せず大変恐縮ですが、どの様な原因と解決策が考えられるでしょうか。

  • BlackFlag | 2013.08.15 0:22

    >papaiyaさん
    コメントありがとうございます。
    このスライダースクリプトをいろいろお試しいただいている様で
    嬉しく思っております。

    ご質問いただいた件についてですが
    実際にソースがどのように組まれているか
    確認できないと何とも言えないのですが、
    考えられる事としましては
    CSSのブラウザリセットがされていないのではないかと
    思っております。

    ブラウザリセットをきちんと組み込むか
    ———————————-
    #carousel,
    #carousel * {
    margin: 0;
    padding: 0;
    }
    ———————————-
    この様にスライダー部分の
    「margin」「padding」の値をリセットすることで
    解消されるかもしれません。

    お試しください。
    よろしくお願いします。

  • papaiya | 2013.08.16 8:42

    >BlackFlag 様

    ご回答いただきありがとうございます。
    おかげ様でどちらの方法でも安定した動作を確認できました。

    また、別の要因もあったようで
    修正することで問題の解決を図ることができました。

    お忙しいところご回答をいただき本当にありがとうございました。

  • 蒋志旻 | 2013.09.12 15:45

    はじめまして、ジャンと申します。
    このようなjqueryを利用したカルーセルを探していましたので助かりました。
    ありがとうございました!

  • BlackFlag | 2013.09.12 23:48

    >ジャンさん
    コメントありがとうございます。
    このカルーセルスクリプトがお役に立ったようで
    嬉しく思っております。

    また何かありましたらよろしくお願いします。

  • Franchesco T | 2013.12.16 16:37

    BlackFlag様

    Franchesco Tと申します。
    初めてコメント書かせて頂きます。
    こちらのカルーセルサンプル大変素晴らしく、
    私が正に望んでいた動作でした。
    現在、商用、非商用サイトを作成しているのですが、
    BlackFlag様のscriptを参考にさせて頂くことは可能でしょうか?
    ライセンス記載が必要でしたら、BlackFlag様のライセンスも記載致しますので
    よろしくお願いします。

  • BlackFlag | 2013.12.16 19:25

    >Franchesco Tさん
    コメントありがとうございます。
    このカルーセルスクリプトをご活用いただいているようで
    とても嬉しく思っております。

    こちらのスクリプトの使用に関しては
    個人・商用問わず、ご自由に使用していただいて構いません。

    権利表記もリンクも特に必要ありません。
    (リンクを張っていただけると嬉しく思いますが、全く強制ではありません)

    この記事に関わらず、当ブログで紹介しているスクリプトは
    特にライセンスなども設けていないので、
    ご自由に使用および改変して
    サイトに組み込んでいただいて問題ありませんので
    ご活用いただけると幸いです。

    よろしくお願いします。

  • Francesco T | 2013.12.16 21:12

    BlackFlag様

    Francesco Tです。
    スクリプト利用のご承認ありがとうございます!
    参考スクリプトをいろいろ探しまわってロンダリングしていたので^^;
    本当に助かります!
    BlackFlag様のこちらのサイトはこのスクリプト以外も素晴らしいものがたくさんあり、
    これからも度々勉強のために利用させて頂ければと思っております。
    またよろしくお願い致します。







コメント内容

※コメントにHTMLタグを直接入力しないでください。
※HTMLタグを入力する際はタグ一つ一つの括弧「<」「>」を全角に変換して入力してください。
コメントは承認制になっているのですぐには反映されません。コメント頂いた内容については出来る限り早めの対応を心掛けていますが、時期によって返答が遅くなってしまうことがありますので、何卒ご了承ください。
» コメントについてのご注意  |  » ライセンスに関して