我一直在做一些客户端网站,听起来非常类似于你试图实现的效果。我开始采用与外部控制方法相同的方法,但这并没有给我足够的灵活性。
我的解决办法是做到以下几点(对不起 - 将已付出你的jsfiddle但想通这将是更快,更清洁
首先设置标记:
<a rel="0" class="slide_thumb" href="#">slide link 1</a>
<a rel="1" class="slide_thumb" href="#">slide link 2</a>
<a rel="2" class="slide_thumb" href="#">slide link 3</a>
<div class="flexslider">
<ul class="slides">
<li>
<img src="demo-stuff/inacup_samoa.jpg" />
<p class="flex-caption">Captions and cupcakes. Winning combination.</p>
</li>
<li>
<a href="http://flex.madebymufffin.com"><img src="demo-stuff/inacup_pumpkin.jpg" /></a>
<p class="flex-caption">This image is wrapped in a link!</p>
</li>
<li>
<img src="demo-stuff/inacup_donut.jpg" />
</li>
<li>
<img src="demo-stuff/inacup_vanilla.jpg" />
</li>
<li>
<img src="demo-stuff/inacup_vanilla.jpg" />
</li>
</ul>
</div>
注意的rel属性。链接 - 我们将在下面使用它们还要注意,值从0开始 - 这与幻灯片的值相匹配(例如,第一张幻灯片是0,第二张是1等)
您应该将可见性设置为没有关于你的css中的flexslider div(更多acc这样做的有效方法是使用绝对定位将滑块隐藏在屏幕外,并根据请求将其重新放入视图中,但为了保持简单,我将坚持显示/隐藏)
接下来设置您的呼叫到flexslider插件:
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function($) {
$('.flexslider').flexslider({
animation: "slide",
slideshow: false,
animationLoop: false,
directionNav: true,
slideToStart: 0,
start: function(slider) {
$('a.slide_thumb').click(function() {
$('.flexslider').show();
var slideTo = $(this).attr("rel")//Grab rel value from link;
var slideToInt = parseInt(slideTo)//Make sure that this value is an integer;
if (slider.currentSlide != slideToInt) {
slider.flexAnimate(slideToInt)//move the slider to the correct slide (Unless the slider is also already showing the slide we want);
}
});
}
});
});
</script>
这应该显示您的幻灯片,当用户点击您的链接之一,并将滑块移动到正确的位置。这只是一个起点,我应该指出这是我正在使用的代码的一个非常简化的版本,所以这基本上是未经测试的。应该给你一个体面的工作平台。如果你遇到问题,大声呼喊
你钉了它!这是太棒了。我希望我早点检查一下,在完成了一段时间后,这个项目没有成功,项目被加载到一个仍然无法获得它的外部员工,所以我被重新分配完成了我开始的任务;正好及时地找到了答案。非常感谢你的帮助!我欠你一杯啤酒。 =) – danzooka 2012-04-09 18:39:00
不用担心 - 很高兴有帮助! – FourStacks 2012-04-10 12:02:03