ショボ短歌会

jqueryのプラグインflexsliderについて質問です。
当方はjqueryのプラグインを使用するくらいで、jsについては初心者です。

まずFlexSlider2.6.0を設置し、htmlへスライダーとサムネイルとオプションの記述をしました

サムネイルをクリックではなくマウスオーバーでスライダーが動くようにしたかったため、22行目のeventTypeの下に以下を追記しました。
-------------------------------------
eventType2 = "mouseover touchend MSPointerUp keyup",
-------------------------------------
その上で、164行目のeventTypeをeventType2へ変更したところ、サムネイルをマウスオーバーでスライダーが動くようになりました。
しかし、サムネイルからマウスを離してもスライダーの自動再生が始まらず止まったままです。
マウスを離した後もスライダーを自動再生させたい場合、どこをどのように修正すれば、もしくはどのような追記をすればよいのでしょうか。
ちなみに、スライダー側の左右のprev・nextボタンで操作した後は問題なく自動再生が始まります。

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

-------------------------------------
■FlexSlider v2.6.0
https://github.com/cdnjs/cdnjs/blob/master/ajax/ …

■スライダー・サムネイルの記述
<div id="slider" class="flexslider">
<ul class="slides">
<li><a href=""><li><img src="slider01.png"></li></a></li>
<li><a href=""><li><img src="slider02.png"></li></a></li>
<li><a href=""><li><img src="slider03.png"></li></a></li>
</ul>
</div>
<div id="thumbnail" class="flexslider">
<ul class="slides">
<li><img src="thumb01.png"></li>
<li><img src="thumb02.png"></li>
<li><img src="thumb03.png"></li>
</ul>
</div>

■オプションの記述
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#slider').flexslider({
animation:"slide",
slideshowSpeed: 3000,
animationSpeed: 450,
pauseOnHover: true,
animationLoop: true,
controlNav: false
});
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
pauseOnHover: false,
itemWidth: 210,
itemMargin: 5,
asNavFor: '#slider'
});
});
</script>
-------------------------------------

A 回答 (2件)

こんにちは


回答がつかないみたいなので・・・

なさりたいことがよくわかりませんが、
>マウスオーバーでスライダーが動くようにしたかった
>pauseOnHover: true,
が、そもそも矛盾しているので、実際にどのような動作を期待しているのかまったくわかりません。

一般に、多くのライブラリでは、メソッドやAPIがユーザ用に公開されていたりするのですが、ご指定のflexsliderではイベントのフックしか公開されていないようですね。
https://github.com/woocommerce/FlexSlider/wiki/F …

それでなのか、スクリプト本体を改変なさっているようですが、改変するときは内容を理解したうえで改変するのが原則と思います。
ここで質問なさっても、あまたあるスライダーライブラリの中で、特にこれについて内容を解析したという人はそう多くはいないのではないでしょうか。
確かな回答を求めるのであれば、(内容を理解している)作者さんにお尋ねになるのが一番確実かと思います。

とは言え、ご提示のスクリプトの1164行あたりを眺めると、外部からアクセス可能なメソッドが定義されているように思えます。
(これに関しては、ドキュメントには全然記されていないようですが・・・)
ざっと見てみると、play、pause、stop、next、previous、あるいは番号指定でそのスライドに移動などは可能なようですので、これらで足りる範囲であれば、ライブラリを改変することなく対応可能と思われます。
簡単に試してみたところ、これらのメソッドはやはり外部から使用することが可能でした。


>マウスを離した後もスライダーを自動再生させたい場合
全体の仕様ががまったくわからないので、その言葉だけをとらえたものになりますが、jQueryのmouseliaveイベントで上記メソッドのplayを実行するようにしておけば、少なくとも『マウスアウトで再生』するようにはなるはずと思います。
    • good
    • 0

Firebugを入れた方がいいです

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!