【问题标题】:Play bxSlider on element hover在元素悬停时播放 bxSlider
【发布时间】:2014-04-25 20:56:45
【问题描述】:

我有一个 wordpress 循环将多个 bxslider 加载到一个页面上,我希望这些滑块单独启动并在父元素悬停时单独停止。我不知道该怎么做。

显然我需要使用一个

$('.item').each

但我不确定如何在悬停时停止和启动 bxslider。有人有解决办法吗?

这里是一些示例代码:

if ( have_posts() ) while ( have_posts() ) : the_post(); 
            ?>
                <div class="item">
                            <div class="thumbnail clearfix">
                                <ul>
                                    <li><?php if ( has_post_thumbnail()) : // Check if Thumbnail exists ?>
                                        <h1 title="<?php the_title(); ?>" >
                                            <a href="<?php the_field('website_url'); ?>"><?php the_post_thumbnail(); ?></a>
                                        </h1>
                                        <?php endif; ?>
                                    </li>
                                    <li>
                                        <div>
                                        <?php if (class_exists('MultiPostThumbnails')) : MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'secondary-image'); endif; ?>
                                        </div>
                                    </li>
                                    <li>
                                        <div>
                                        <?php if (class_exists('MultiPostThumbnails')) : MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'third-image'); endif; ?>
                                        </div>
                                    </li>
                                </ul>
                             </div>
                     </div> 
<?php endwhile; ?>

所以你可以看到我,拉出 3 个缩略图......在滑块中,这是在一个帖子中,所以页面上可能有 1 到 10 个之间的任何地方。

我的第一个想法是在悬停时启动 bxslider....

    $('.item').each(function(){
    $(this).hover({
        $(this).find('.thumbnail ul').bxSlider({
            auto: true
        });
    });
});

但这不起作用。我希望它如何,我希望它在每个滑块上构建滑块...然后当用户悬停时使滑块启动...并在鼠标关闭时停止。

提前致谢。

【问题讨论】:

  • 请在 jsfiddle 上提供示例代码或演示
  • 更新了更多我正在使用的代码。不确定我可以使用 fiddle 作为它在 wordpress 中的运行。

标签: javascript jquery css wordpress bxslider


【解决方案1】:

您应该查看 bxSlider API 方法here

解决方法是使用.startAuto();.stopAuto();

$('.bxSlider').each(function() {
    var _this = $(this).bxSlider({
        auto: false,
        speed: 200,
        pause: 500
    });
    _this.mouseenter(function() {   
         _this.startAuto();      
     }).mouseleave(function() {   
         _this.stopAuto();
    });
});

示例: http://jsfiddle.net/verber/KBfx9/28/

要将事件与滑块父级相关联,请使用这个:

     $('.yourParentParent').mouseenter(function() {   
         _this.startAuto();      
     }).mouseleave(function() {   
         _this.stopAuto();
     });

如果您不想启动页面上的所有滑块,请将 _this 更改为您的确切 bxSlider 选择器。

【讨论】:

  • 我对此进行了调查,但每次我尝试调用 .startAuto 时都会遇到控制台错误,不知道为什么。但是你给我的东西是非常感谢的。我将如何旨在触发父母父母的 startAuto?例如 2 up 而不是自身?
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2012-02-09
  • 1970-01-01
  • 2020-07-22
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多