jquery - 滑动滑块按钮在到达最后一张幻灯片之前被禁用
问题描述
基本上我想要做的是有多个滑动滑块,当点击一个幻灯片时,整个滑块切换到全屏模式。我找到了一个可以做到这一点的codepen:https ://codepen.io/smcgrath/pen/aydBNx
只要每页只使用一个滑块,一切都会很好。我尝试调整代码以适用于多个实例,这样我就不必复制 id 和类,因为一个页面上最多有 8 个实例。
它有点工作,只剩下一个问题我不知道如何解决。在全屏模式下,当使用箭头导航时,它们会在到达滑块末尾之前随机禁用。例如,当有 10 张幻灯片时,似乎 swiper 认为只有 5 张幻灯片。
任何指针将不胜感激。
这是我当前的代码:
第 1 部分 - 多个 swiper 实例
jQuery(".hsProdSlider").each(function () {
var currentElem = jQuery(this);
jQuery(this)
.find(".hsSlider .fl-module-content")
.addClass("swiper-container");
jQuery(this).find(".hsSlider .fl-post-feed").addClass("swiper-wrapper");
var swiper = new Swiper(jQuery(this).find(".swiper-container"), {
navigation: {
nextEl: jQuery(currentElem).find(".swiperNav__next"),
prevEl: jQuery(currentElem).find(".swiperNav__prev"),
},
slidesPerView: 1,
paginationClickable: true,
spaceBetween: 10,
loop: false,
breakpoints: {
1200: {
slidesPerView: 4,
spaceBetween: 10,
},
},
});
第 2 部分 - 以全屏模式打开
jQuery(currentElem).find(".fl-post-feed-post").each(function(){
jQuery(this).on("click tap", function () {
var slideId = jQuery(this).parent().find(".fl-post-feed-post").index(this);
openFullscreenSwiper(slideId, currentElem);
});
});
第 3 部分 - 全屏功能
function openFullscreenSwiper(initialSlideNumber, currentElem) {
currentElem = jQuery(currentElem)[0];
var mainSwiperMarkup = jQuery(currentElem).find(".swiper-container").html();
var fullscreenswiperElem = jQuery(currentElem).find(".fullscreen-swiper");
var fullscreenswiperElemsa = jQuery(currentElem).find(".fullscreen-swiper")[0];
fullscreenswiperElem.append(
mainSwiperMarkup + "<div id='fullscreen-swiper-close' class='fullscreen-swiper-close'>X</div>"
).fadeIn();
var fullscreenSwiper = new Swiper(jQuery(fullscreenswiperElem), {
navigation: {
nextEl: jQuery(currentElem).find(".swiperNav__next"),
prevEl: jQuery(currentElem).find(".swiperNav__prev"),
},
slidesPerView: 1,
centeredSlides: true,
paginationClickable: true,
spaceBetween: 10,
loop: false,
initialSlide: initialSlideNumber,
});
jQuery(currentElem).find(".fullscreen-swiper-backdrop").fadeIn();
jQuery("body, html").addClass("no-scroll swiperFull");
}
jQuery("body").on("click", ".fullscreen-swiper-close", function () {
var closeelem = jQuery(this).parent().parent().find(".fullscreen-swiper-backdrop");
jQuery(this).parent().hide().empty();
closeelem.fadeOut();
jQuery("body, html").removeClass("no-scroll swiperFull");
});
});
解决方案
推荐阅读
- objective-c - 在 MacOS 上为 Qt 项目启用 ARC
- spring - org.apache.kafka.common.errors.RecordTooLargeException:请求包含的消息大于服务器将接受的最大消息大小
- python - 如何使用python从多个ul标签中获取id列表?
- python - Python - 迭代期间列表项丢失
- c# - 绑定控制取决于布尔
- debian - 从 filezilla 传输文件的权限问题在商店软件后端/前端中遇到登录问题
- php - TCPDF 破坏的 HTML(空白页)
- java - 我可以在不接触非十六进制代码的情况下将字符串从十六进制转换为 ascii
- javascript - 停止打字时如何触发呼叫
- angular - 重置动态添加的字段值