我有一个wordpress循环将多个bxsliders加载到一个页面上,我希望这些滑块单独启动并在父元素悬停时单独停止。我无法弄清楚如何做到这一点。
显然我需要使用
$('.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
});
});
});
但这不起作用。我想要它,我希望它在每一个上构建滑块...然后当用户盘旋使滑块开始...并在鼠标关闭停止。
先谢谢。
答案 0 :(得分:3)
您应该查看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选择器。