0

解決方法がわからない、本当に奇妙な問題が発生しています。基本的に、私はanythingSliderを使用しており、すべてが正常に機能しています。すべてのスライドには5つの画像があり、ユーザーがそれらの上にカーソルを合わせると小さな画像のキャプションが表示され、ユーザーが画像の外に移動するとキャプションが消えます。これらの画像を含むスライドが3つあるので、合計15枚の画像が作成されます。現在、この機能は最初の2つのスライドでは正常に機能しますが、最後のスライド(つまり、10〜15の画像を含むスライド)では機能しません。理由を知っている人はいますか?これは、キャプションを表示するために使用しているコードです。

<script type="text/javascript">

function is_child_of(parent, child) {
            if( child != null ) {           
                while( child.parentNode ) {
                    if( (child = child.parentNode) == parent ) {
                        return true;
                    }
                }
            }
            return false;
        }
function hide_thumb_caption(element, event, id) {
            var current_mouse_target = null;
            if( event.toElement ) {             
                current_mouse_target             = event.toElement;
            } else if( event.relatedTarget ) {              
                current_mouse_target             = event.relatedTarget;
            }
            if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
                $('#slider_thumb_'+id).slideUp('fast');
            }
        }

function show_thumb_caption(id) 
{
            $('#slider_thumb_'+id).slideDown('fast');
}
</script>

...スライド内では、このコードを使用してこれらのメソッドを呼び出しています。

<div class="top_slider_thumbs" onmouseover="show_thumb_caption(<?php the_ID(); ?>);" onmouseout="hide_thumb_caption(this, event, <?php the_ID(); ?>);">

キャプションdivの構造は次のとおりです。

<div class="top_slider_cap" id="slider_thumb_<?php the_ID(); ?>"><?php the_title();?></div>
4

1 に答える 1

1

主な問題は、AnythingSliderが最初と最後のパネルのクローンを作成することです。最初のパネルのクローンを最後に配置し、最後のパネルのクローンを最初に配置します。主な理由は、最後のパネルで[次へ]をクリックするとき、または最初のパネルをクリックして戻るときに、最初のスライドがスムーズに表示されるようにすることです。

キャプションスライドにはIDが含まれているため、スクリプトは、意図したパネルではなく、最初の(複製された)パネルに含まれているIDを検索します。

AnythingSliderの最新バージョン(1.5.7+)は、次の2つのことを行います。

  1. 複製されたパネルのすべてのIDが完全に削除されるようになりました
  2. infiniteSlides新しいオプションをfalseに設定すると、パネルのクローンは作成されません。falseの場合、最後のパネルで[次へ]をクリックすると、コンテンツが「巻き戻され」ます。また、最初のパネルで[前へ]をクリックすると、スライドが最後まで早送りされます。
于 2011-03-01T02:45:31.970 に答える