javascript - 如何突出显示 Flexslider 轮播中的事件幻灯片?

标签 javascript jquery html css flexslider

是否可以突出显示 Flexslider 轮播中的当前元素,以便我可以为事件元素添加一个类?

我使用 Flexslider 轮播的基本设置。现在我想要一个脚本,该脚本将在可见的视口(viewport)内的每张幻灯片中添加事件。

我使用的这个例子: http://flexslider.woothemes.com/basic-carousel.html

我现在如何在启动函数中获取 Flexslider 属性。当我为函数提供我可以请求的参数时 - ul 中的元素总数、它将移动多少元素以及将有多少分页。我不知道是否可以编写一个公式来计算给定变量中哪个是事件的,所以我可以突出显示它们。

$('.flexslider').flexslider({
        animation: "slide",
        animationLoop: false,
        slideshow: false,
        itemWidth: 460,
        itemMargin: 30,
        minItems: 2,
        maxItems: 6,
        controlNav: false,
        customDirectionNav: ".custom-direction li a",
        start: function(slider) {
            var pagingCount = slider.pagingCount;
            var move = slider.move;
            var visibleSlides = slider.visible;
            var totalSlides = slider.count;

            console.log(slider);
            console.log(slider.move);
            console.log(slider.update);


            if (totalSlides) {
                $('.slides li').addClass('active-slides');

            };
            // console.log(slider.count);
            // console.log(slider.currentSlide);
        }

    });

我已经开始了,但不知道 if 语句或 for 循环应该如何完成。

有什么想法吗? 提前致谢。

最佳答案

使用事件 start 和 'after' 来处理这个。请参阅下面的示例。

$('.flexslider').flexslider({
    animation: "slide",
    animationLoop: false,
    slideshow: false,
    itemWidth: 460,
    itemMargin: 30,
    minItems: 2,
    maxItems: 6,
    controlNav: false,
    customDirectionNav: ".custom-direction li a",
    start: function (slider) {
        window.addCurrentSlidesClass(slider);
    },
    after: function (slider) {
        window.addCurrentSlidesClass(slider);
    }
});

window.addCurrentSlidesClass = function (slider) {
    //debugger;
    $('.flexslider li').removeClass("active-slides");
    var startli = (slider.move * (slider.currentSlide));
    var endli = (slider.move * (slider.currentSlide + 1));
    for (i = startli + 1; i <= endli; i++) {
        $('.flexslider li:nth-child(' + i + ')').addClass('active-slides');
    }
}
<div class="flexslider carousel">
    <div class="flex-viewport" style="overflow: hidden; position: relative;">
        <ul class="slides" style="width: 2400%; transition-duration: 0.6s; transform: translate3d(0px, 0px, 0px);">
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_cheesecake_brownie.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_lemon.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_donut.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_caramel.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_cheesecake_brownie.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_lemon.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_donut.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_caramel.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_cheesecake_brownie.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_lemon.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_donut.jpg" draggable="false">
            </li>
            <li style="width: 210px; float: left; display: block;">
                <img src="images/kitchen_adventurer_caramel.jpg" draggable="false">
            </li>
        </ul>
    </div>
    <ol class="flex-control-nav flex-control-paging">
        <li><a class="flex-active">1</a>

        </li>
        <li><a class="">2</a>

        </li>
        <li><a class="">3</a>

        </li>
    </ol>
    <ul class="flex-direction-nav">
        <li class="flex-nav-prev"><a class="flex-prev flex-disabled" href="#" tabindex="-1">Previous</a>

        </li>
        <li class="flex-nav-next"><a class="flex-next" href="#" tabindex="-1">Next</a>

        </li>
    </ul>
    <div class="flex-pauseplay"><a class="flex-pause">Pause</a>

    </div>
</div>

DEMO

关于javascript - 如何突出显示 Flexslider 轮播中的事件幻灯片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320299/

相关文章:

jQuery 克隆问题

javascript - jQuery 弹出窗口 (bPopup) 无法加载 iFrame

javascript - 折叠菜单不适用于 anchor 链接

javascript - jquery 对话框高度如何降低顶部高度?

javascript - 通过 Javascript 动态生成的内容会伤害 SEO

javascript - window.location.href 不工作

javascript - 高度 : auto calculating incorrectly if element is hidden when dom loads, 然后稍后显示

html - 响应式图像 css 没有响应

javascript - 根据页面内容更改变量

javascript - 我的JSON文件格式正确吗?