在同一页面上使用两次图像滑块

时间:2016-10-04 作者:Unkdev

我想使用jQuery/JavaScript创建一个图像滑块。我正在从后端捕获图像,在那里我以自己的帖子类型创建了图库。

The problem: 我想在同一个站点上多次使用此滑块。如果我使用它两次,它将使用相同的导航按钮在第一个库和下一个(第二个)库中运行。每个滑块只能使用自己的导航按钮。

我的模板如下所示:

echo \'<section class="slider"><div class="cont">\';

$galleryImages = get_post_gallery_images();
$gallaryLength = count( $galleryImages );

for( $i = 0; $i < $gallaryLength; $i++ ) {
    echo "<div>";
    echo "<img src=\'" . $galleryImages[ $i ] . "\'>";
    echo "</div>";
}

echo \'</div></section>\';
我正在捕捉画廊图像中的一个阵列,并在前端用回声显示它们。底部有我的滑块导航按钮。

以下是我的滑块CSS:

.cont {
    float: right;
    position: relative;
    text-align: center;
    max-width: 200px;
    background-color: black;
}

.cont div {
    display: none;
    width: 100%;
    background-color: white;
}

.cont img {
    width: 100%;
    height: auto;
}
以下是我的jQuery/JavaScript文件:

$( document ).ready( function() {

    var currentIndex = 0;
    var items        = $( \'.cont div\' );
    var itemAmt      = items.length;

    function slideItems() {
        var item = items.eq( currentIndex );
        items.hide();
        item.css( \'display\', \'inline-block\' );
    }

    $( \'.next\' ).click( function() {
        currentIndex += 1;

        if( currentIndex > itemAmt - 1 ) {
            currentIndex = 0;
        }

        for( var k = 0; k < items.length; k++ ) {
            slideItems();
        }
    } );

    $( \'.prev\' ).click( function () {
        currentIndex -= 1;

        if( currentIndex < 0 ) {
            currentIndex = itemAmt - 1;
        }

        for( var x = 0; x < items.length; x++ ) {
            slideItems();
        }
    } );
} );

1 个回复
SO网友:ClemC

我的方法(照此理解)只是生成一个唯一的ID,它将区分每个滑块
当同一功能可能在同一页面上多次显示时,这是一种很好的做法。

首先,找到一种生成增量$id 在模板中使用。可能是实例ID。。。这实际上取决于您实现解决方案的方式,我无法从提供的信息中说得更多。

然后,在你的template, 添加节的id 属性:

echo \'<section id="slider_\' . $id . \'" class="slider">\';
然后,在你的JS script:

获取父级<section>\'sid 悬停按钮的属性,让我们调用它$section_id.

然后将选择器更改为:

$("#$section_id .next").click(function () {});

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果