bxsliderで http://www.headspa-concierge.com/ こちらのサイトの「ヘッドスパの基本的な工程」のように、次へボタンが一番最後から始めに戻るとき巻き戻しになるようにできますでしょうか?
上の、step8まできてstep1を押すと巻き戻しになるのですが、次へボタンを押しても巻き戻しにできるようにしたいです。
テストで作ったサイトでは、このサイトのように巻き戻しになりません。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
ANo1、2です。
本体をカスタマイズせずに、実現する方法を考えてみました。
APIを利用しようと思ったのですが、infiniteLoop: false を指定していると、スライドが起こらない仕様なので、callbackも利用できないようです。
仕方がないので、ちょっとインチキですがnext、prevのクリックを直接取得するという方法にしてみました。
一度に画像一枚を表示する一般的なタイプであれば、以下のサンプルで動作すると思います。
※ infiniteLoop: falseにしておくと、本体は何もしないというのを利用しています。
※ infiniteLoop: trueの場合は、追加のスクリプトを削除しないと正しく動作しません。
一度に複数の画像を表示するタイプだと、公開されている属性などでは計算がうまくできないので直接値を指定するようにして対応する必要があります。(goToSlide()メソッドは、スライドの番号ではなくpagerの番号を指定しなければならないようですので)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<!-- jQuery読込み //-->
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery","1");</script>
<!-- bxSlider読込み //-->
<script type="text/javascript" src="../js/jquery.bxSlider/jquery.bxslider.js"></script>
<!-- スタイルシート読込み //-->
<link href="../js/jquery.bxSlider/jquery.bxslider.css" rel="stylesheet">
<script type="text/javascript">
$(document).ready(function(){
var slider = $('.bxslider').bxSlider({
slideWidth: 300,
infiniteLoop: false
});
$(".bx-controls-direction").on("click", function(e){
var elm = $(e.target);
var current = slider.getCurrentSlide(),;
var max = slider.getSlideCount() - 1;
if(elm.hasClass("bx-next") && current == max){
slider.goToSlide(0);
} else if(elm.hasClass("bx-prev") && current == 0){
slider.goToSlide(max)
}
});
});
</script>
</head>
<body>
<ul class="bxslider">
<li><img src="A.jpg" alt=""></li>
<li><img src="B.jpg" alt=""></li>
<li><img src="C.jpg" alt=""></li>
<li><img src="D.jpg" alt=""></li>
<li><img src="E.jpg" alt=""></li>
</ul>
</body>
</html>
ご返信が遅くなりすみません。ご丁寧にありがとうございます。
おかげ様で、希望通りの動きになりました。
本当に困っていたので助かりました!
No.4
- 回答日時:
ANo3です。
たびたびすみません。
ANo3のスクリプト中、カンマが余分なところがありました。
var current = slider.getCurrentSlide(),;
↓
var current = slider.getCurrentSlide();
最後のほうのカンマが不要です。
No.2
- 回答日時:
ANo1です。
>jqueryは全くの初心者なので調べてみましたがわかりませんでした。
というのであれば、あまりカスタマイズはお勧めしません。
行きがかり上、ANo1で記した内容を示しておくなら、以下のようなことではありますが・・・
if (!slider.settings.infiniteLoop && slider.active.last) {
var pagerIndex = 0;
el.goToSlide(pagerIndex, 'prev');
} else {
var pagerIndex = parseInt(slider.active.index) + 1;
el.goToSlide(pagerIndex, 'next');
}
No.1
- 回答日時:
こんにちは。
bxsliderはたいして知りませんが、オプションの説明を見てみると・・・
http://bxslider.com/options
「infiniteLoopを指定すると循環します」のような説明になっているようです。(←英語にがてなので…)
指定しないとどうなるのかは書いて無いようですが、コードをざっと眺めて見たところ、1210行あたりにNext/Prevボタンをクリックした時の処理があります。
ご質問の状態(=端部でボタンを押したとき)を条件判定して単にreturnしていますので、『ループの指定がない時で、端部画像の場合は無視する』という仕様で作成されていると思われます。
/**
* Transitions to the next slide in the show
*/
el.goToNextSlide = function(){
// if infiniteLoop is false and last page is showing, disregard call
if (!slider.settings.infiniteLoop && slider.active.last) return;
var pagerIndex = parseInt(slider.active.index) + 1;
el.goToSlide(pagerIndex, 'next');
}
一方でpager部分に関しては、クリック時の処理としては、そのまま指定の番号へ戻るようになっているようですね。(ループは考慮しない)
bxsliderには各種のイベントの取得や処理のメソッドがAPIとして用意されていますが、これらを利用してスライドさせることは可能ですが、その時に行おうとしていたスライド動作を中止するメソッドが無いようですので、元の動作でスライドし直してしまう可能性があります。(あるいは逆の順序で)(←確かめていませんので、そのままで処理できるのかもしれません)
確実そうなのは、上記部分で条件判定がきちんとなされていると思いますので、return部分を修正してpagerIndexを0にセットして'prev'でスライドさせるように変えてしまうのが簡単かと思います。(カスタマイズになりますが・・・)
すぐ次の部分に、逆方向の処理に関して同様の記述がされていますが、こちらについても同様ですね。
※ 他にも方法はあると思いますが、とりあえず思いついた方法です。(ご参考まで)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Android(アンドロイド) スマホ chromeの戻るボタンが機能しにくい スマホ(OPPO reno5A、Android12) 1 2022/09/11 20:39
- その他(開発・運用・管理) 巻取り長さを一定にする 2 2023/02/27 13:56
- 教えて!goo アンドロイド用の教えて!gooアプリの戻るボタンを押すと、勝手に自動で教えて!gooアプリが終了して 2 2022/09/24 07:47
- 物理学 電磁気学 次の文で、①②に入るのものはどう考えたらいいのか教えてほしいです。 インダクタンスLのソレ 2 2023/01/30 22:34
- Chrome(クローム) Chromeは何で進むボタンが無いの? 1 2023/05/14 20:24
- スピーカー・コンポ・ステレオ カセットデッキの修理についての質問です。 DENONのカセットデッキDRR-M31の早送りと巻き戻し 6 2022/05/27 20:57
- その他(趣味・アウトドア・車) バルナックライカの巻き戻しノブの根本にあるレバーは何でしょうか? 1 2022/05/05 14:20
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- その他(悩み相談・人生相談) テレビを見てたら、一番星は?水星と言ってたから、巻き戻して聞いたら金星と聞き違えました 難聴でしょう 1 2023/02/07 07:27
- Android(アンドロイド) 教えてgoo このアプリの戻るボタンを押すとアプリが落ちます。私だけでしょうか? 何度も何度もアプリ 3 2022/09/29 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ジャバスクリプトについて。
-
プログラムについて。
-
スマフォではボタンを表示させ...
-
①入力フォーム→②確認表示画面→③...
-
特定の文字列を複数抜き出した...
-
アップロードファイルの種類に...
-
階層別の組織図の自動作成について
-
セレクトボックスで配列を呼び...
-
Googleフォームで選択肢に応じ...
-
二次元配列の全要素の全要素を...
-
追加ボタンを押した際に ok ボ...
-
指定時間になったら、WEBサイト...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
-
var exports = exports || {}; ...
-
ローディングアニメーションの...
-
jQueryで同じクラス名のものを...
-
変数名をどのようにつけるのが...
-
2段階プルダウンで1段階目の選...
-
Q&A掲示板の入力フォームに文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bxsliderで画像毎に表示時間を...
-
jqueryでナビゲーションの現在...
-
bxsliderで巻き戻しにする方法
-
要素ごとにイベントが発生させたい
-
選択範囲のリンク URL の抽出
-
Selenium4でボタンをクリックで...
-
Javascriptを使ってQRコード読...
-
JavascriptからPHPへのAjax通信...
-
IndexedDB を使ってファイルア...
-
同一ページ移動時ハンバーガー...
-
JavaScriptでtabindexの変更っ...
-
jQueryを使いformでsubmitした...
-
SQLのmaxで求めた値を変数に代...
-
カンマ区切りのデータを配列に...
-
インラインフレームを自動更新...
-
階層別の組織図の自動作成について
-
ドラッグ & ドロップでのド...
-
jQuery toggle() 戻るで開いた...
-
AjaxでJSONを受信すると、文字...
-
jQueryのアコーディオン一番目...
おすすめ情報
教えて頂きました、bxsliderを直接書き換える件ですが、中を見てみましたが「return部分を修正してpagerIndexを0にセットして・・・」の修正をどうすればいいのかわかりませんでした。
jqueryは全くの初心者なので調べてみましたがわかりませんでした。