我一直在做一些客戶端網站,聽起來非常類似於你試圖實現的效果。我開始採用與外部控制方法相同的方法,但這並沒有給我足夠的靈活性。
我的解決辦法是做到以下幾點(對不起 - 將已付出你的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