画像スライダーの間隔(秒数)を変更したいのですが設定箇所を教えて下さい。数ページにて「duration」記述を探したのですが見つかりませんでした。
スライダーの部分には、jCarousel というライブラリが使われているようです。
http://themes.svn.wordpress.org/parallax/1.0.35/cyberchimps/lib/js/jquery.jcarousel.js
本家のサイトがこちら。
http://sorgalla.com/jcarousel/
このライブラリのプラグインにAutoscroll Pluginというのがあって、interval というオプションで時間間隔を変更できそうです。
http://sorgalla.com/jcarousel/docs/plugins/autoscroll/reference/configuration.html
jCarousel の初期化をやっているのは elements/slider-lite.php の末尾の方です。
<script type="text/javascript"> jQuery(document).ready(function () { // Initialize the slider. jQuery('.carousel').carousel(); }); </script> <?php } ?>
ここを、以下のように書き換えてあげれば良いんじゃないかと思います。
<script type="text/javascript"> jQuery(document).ready(function () { // Initialize the slider. jQuery('.carousel').carousel({ interval: 10000 /* 10秒間隔 */ }); }); </script> <?php } ?>
<div class="row-fluid"> <div id="slider_lite" class="carousel slide"> <div class="carousel-inner"> <?php foreach ($slides as $slide): ?> <?php if ($slide['img'] != ''): ?>
の部分を
<div class="row-fluid"> <div id="slider_lite" class="carousel slide" data-interval="10000"> <div class="carousel-inner"> <?php foreach ($slides as $slide): ?> <?php if ($slide['img'] != ''): ?>
としてみたら、どうなりますか?
ちなみに、elements/slider-lite.php を修正した後に、ブラウザで表示して、ブラウザの機能でページのソースを表示したときに、その修正は反映されているんでしょうか?
「jquery.jcarousel.min.js」と「bootstrap.min.js」内の「bootstrap-carousel.js」の記述がバッティングしているのが原因のようです。(※先に読み込まれる「jquery.jcarousel.min.js」が呼ばれていて、「bootstrap-carousel.js」が正常に動作しない?設定変更は反映されないのに、初期状態で動作しているのが不思議です・・・)
対策:
「wp-content/themes/parallax/cyberchimps/functions.php」の59行目を次のようにコメントアウトして無効にします。
// Load library for jcarousel
//wp_enqueue_script( 'jcarousel', $js_path . 'jquery.jcarousel.min.js', array( 'jquery' ), '1.0' );
上記の対策によって、a-kuma3さんの回答にあるどちらの方法(※「carousel()」へのオプション指定 or HTMLへの「data-interval」のようなdata attributes追加)でも設定変更が可能になると思います。
※2系でもdata attributesによるオプション指定は可能なようです。(以下はv2.3.2のドキュメントですが、v2.2.2同梱ドキュメントにも同じ記述がありました。)
・Javascript · Bootstrap
http://getbootstrap.com/2.3.2/javascript.html#carousel
※リリースノートにはv1.4.0で追加とありますが、ここで追加?
・Releases · twbs/bootstrap · GitHub
https://github.com/twbs/bootstrap/releases
------------------------------------------------------
v1.4.0
...
・Added more data attribute controls to our plugins
------------------------------------------------------
ちなみにテーマは公式からのダウンロードです。
・Parallax
https://wordpress.org/themes/parallax
cyberchimps/lib/bootstrap/js/bootstrap.js に、data-interval を読んでるらしきコードが無いんですよね。
手元に Bootstrap 3.0.2 があるんですが、そこにも data-interval を読んでるらしきコードが無い。
うーん...
Parallax テーマに含まれているものは、jQuery v1.11.1 + Bootstrap v2.2.2 のようです。
この組み合わせだと、Carousel の簡単なサンプルすら data-interval 属性が効きません。
同じコードを jQuery v1.11.1 + Bootstrap v3.0.3 だと、data-interval 属性の指定が効きます。
jquery-migrate.js に期待してるんでしょうが、それがきちんと動いていないのかな。
Bootstrap v2.2.2 のデモページを見ると、jQuery v1.8.1 を使っているのですが、その組み合わせでも data-interval 属性が効きません。
http://bootstrapdocs.com/v2.2.2/docs/examples/carousel.html
data-interval を読み込むところが明示的に書かれていないのは、jQuery の .data() メソッドが data- で始まる属性を取り込んでくれるからなんですね(知らんかった)。
http://api.jquery.com/data/#data
組み合わせじゃなくて、Bootstrap のバージョンだ。
Bootstrap v2.2.2
>>
/* CAROUSEL PLUGIN DEFINITION
* ========================== */
var old = $.fn.carousel
$.fn.carousel = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('carousel')
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
, action = typeof option == 'string' ? option : options.slide
<<
Bootstrap v3.0.3
>>
// CAROUSEL PLUGIN DEFINITION
// ==========================
var old = $.fn.carousel
$.fn.carousel = function (option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.carousel')
var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
var action = typeof option == 'string' ? option : options.slide
<<
v2.2.2 では、デフォルトと carousel メソッドのパラメータで jQuery.extends() してるだけ。
v3.0.3 では、$(this).data() も jQuery.extends() の中に入ってる。
だから、data-interval が有効になる。
あー、すっきり :-)
v2.2.2とv2.3.2のみ確認しましたが、「$this.data()」をv3.0.3のように「options」にそのまま入れてみたら無事に動作しました。
おかげ様で私もすっきりです。(コードの理解はまだまだです・・・)