我知道有可能通过当前位置编号跳到猫头鹰旋转木马的某个位置。像:
$('.jumpTo').click(function(){
carousel.trigger('owl.jumpTo', 3)
});
是否可以跳转到匹配的ID?让我们假设我有一个带缩略图的网站,其中一个点击其中一个打开一个模态,猫头鹰轮播在正确/匹配位置。类似的东西:
var myattr = $(this).attr('subcategory');
$('.jumpTo').click(function(){
carousel.trigger('owl.jumpTo', '[subcategory="' + myattr + '"]')
});
提前致谢!
编辑:
hash-URL解决方案也很棒,但是:猫头鹰旋转木马在fancybox中打开......
第二次编辑:
抱歉,规格已经改变,而且变得更加困难。猫头鹰滑块在fancybox模式中的iframe中打开。有任何想法如何将数据传达给它?!
第三次编辑:
来自网站的代码:
<div id="theid" class="joinlight breit-quarter" subcategory="test">
<div class="breit-quarter-inside">
<a id="content_1_phcontent_1_rptPictures_ctl00_lnkImage" class="quarterthumb fancybox fancybox.iframe " href="extern1.html"></a>
<p>Quartier Reiterstaffel: Dies ist ein Testtext</p>
<p> </p>
<p><a id="content_1_phcontent_1_rptPictures_ctl00_lnkDownloadJPG" class="jobTitle" href="http://placehold.it/400x300">Download JPG</a></p>
<p></p>
</div>
</div>
iframe中的代码:
<div id="wrap">
<div id="wrap_small">
<div id="sync2" class="owl-retro-carousel">
<div class="item"><img src="http://placehold.it/80x60" /></div>
<div class="item"><img src="http://placehold.it/80x60" /></div>
<div class="item"><img src="http://placehold.it/80x60" /></div>
</div>
</div>
<div id="wrap_big">
<div id="sync1" class="owl-retro-carousel">
<div class="item"><img src="http://placehold.it/500x500" /><p>Room shot at the Delta Bow Valley during the speaker presentations</p></div>
<div class="item"><img src="http://placehold.it/500x500" /><p>Derrick Rozdeba, Bayer CropScience, presenting to delegate teams on how to present their ideas</p></div>
<div class="item" subcategory="test"><img src="http://placehold.it/500x500" /><p>Team presentations on Friday</p></div>
</div>
</div>
</div>
所以,如果我点击网站上的href,猫头鹰轮播应跳转到第三个(匹配)项目。
答案 0 :(得分:1)
您可以按子类别获取元素,然后使用索引使其与owl兼容,如下所示:
var myattr = $(this).attr('subcategory');
$('.jumpTo').click(function(){
var owlNumber = $('.owl').find('[subcategory="' + myattr + '"]').index();
carousel.trigger('owl.jumpTo', owlNumber)
});
修改您可以使用fancybox callback API来实现这样的目标:
$('fancybox.iframe').click(function (event) {
event.preventDefault();
var category = $(this).attr('subcategory');
$('fancybox.iframe').fancybox({
afterLoad: function() {
$('.owl-retro-carousel').owlCarousel();
if(category !== undefined) {
var owlNumber = $('.owl').find('[subcategory="' + myattr + '"]').index();
carousel.trigger('owl.jumpTo', owlNumber);
}
}
}).trigger('click');
});
此代码应该适用于您的特定情况,但您可以考虑将fancybox.iframe注入链接而不是防止默认。
答案 1 :(得分:0)
刚遇到同样的问题,所以我必须解决它。它可能对某人有用
/**
* Get owl carousel slider number for an image with specific class
*
* @param cls
* @returns {*}
*/
function findOwlNumberForSlideByClass(cls) {
const slides = $('#slider-card').find('.owl-item:not(.cloned)');
let index;
(slides).each((i, slide) => {
if ($(slide).find(cls).length) {
index = i;
}
});
return index;
}