【发布时间】:2014-05-30 18:18:11
【问题描述】:
我正在尝试在http://residentialbylandsecurities.com/ 上复制效果 在他们的滑块上,如果您将鼠标悬停在箭头上,它会显示下一张幻灯片的缩略图。我安装了相同的滑块 (FlexSlider),但这是自定义的。我的示例网站是here(未完成)。
他们的脚本在this file 中运行,但它是如此之长且庞大,并且做的比我需要的要多得多,我只想编写自己的函数。
我的伪代码: 1. Mainpulate next/prev 控件添加 div.thumbnail 到每个 2.找到当前活动幻灯片前后的幻灯片,并保存在变量中(prevSlide,nextSlide) 3. 从这些幻灯片 img 元素中获取 data-thumb 属性,并将每个属性保存在变量中(prevThumbData 和 nextThumbData) 4. 找到 .next div.thumbnail 和 .prev div.thumbnail 5. 将 prevThumbData 和 nextThumbData 作为 CSS 背景图像应用到它们各自的元素。 6. CSS:当鼠标悬停在箭头元素上时,在 div.thumbnail 中滑动
我根本不需要使用其他网站的功能,除非它更简单,我只需要完成以上。我已经将我的 IMG 元素设置为具有 data-thumb 属性,但还没有弄清楚如何修改滑块以包含 div.thumbnail。
编辑:我想我想出了程序中的第二步和第三步:
2。找到当前活动幻灯片之前和之后的幻灯片,并将它们保存在变量中(prevSlide,nextSlide)
function flexThumbs() {
var slider = $('.flexSlider div ul')
var slides = new Array(slider.children());
var images = slide.find('img');
var currentSlide = $("li.flex-active-slide");
// find next and previous slides
var totalSlides = slider.slides.length;
var nextSlide = slider.currentSlide + 1;
if (nextSlide >= totalSlides)
nextSlide = 0;
var prevSlide = slider.currentSlide - 1;
if (prevSlide < 0)
prevSlide = totalSlides - 1;
3.从这些幻灯片 img 元素中获取 data-thumb 属性,并将每个属性保存在变量中(prevThumbData 和 nextThumbData)
var prevThumbData = $(prevSlide > "img").attr("data-thumb");
var nextThumbData = $(nextSlide > "img").attr("data-thumb");
}
【问题讨论】:
-
他们实际上只是通过 css hover 将背景图像从
right:88px移动到right:0。不需要javascript -
这不是棘手的部分。棘手的部分是他们如何在那里获得背景图像。当您滑过时,会显示下一张幻灯片的缩略图。该缩略图是通过 JS 动态加载的,因为上一张/下一张幻灯片总是在变化。我的滑块有滑入和滑出,你可以看到,但我不知道如何添加这些缩略图。
-
你的权利。我只是在考虑是什么让图像显示出来。图像本身正在为每张幻灯片动态加载。
-
我是否在上面的代码示例中正确检索了该信息?完成后,如何将其应用于缩略图箭头?
-
实际上,我什至还没有弄清楚如何操作 flexSlider 的默认箭头。脚本动态注入它们,我不知道如何修改该输出以添加元素(用于缩略图预览)
标签: jquery flexslider