拖了好久的筆記 FlexSlider 是上次重寫首頁時使用的 jQuery 插件,他們其實很貼心有一個教學網站,英文不好的我當時可是雙開中、英視窗比對在操作(眼花撩亂),這個插件我很喜歡索性就自己寫個筆記紀錄一下,下一次使用時也方便。

STEP 1>> 連結檔案

將下面的程式碼放置於網頁 標籤之中,目的是將 jQuery、FlexSlider 的 CSS 和 JS 檔案與網站連結。

[sourcecode language=”plain”]
<!– Place somewhere in the <head> of your document –>
<link rel="stylesheet" href="flexslider.css" type="text/css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="jquery.flexslider.js"></script>
[/sourcecode]

STEP 2>> Add markup

(對不起我不太會解釋這個意思,又怕翻譯惹出笑話,只好原文貼上)

將下面的程式碼放置於網頁 中,並更改欲使用的圖片連結(程式碼中 slide1.jpg 的位置)。

[sourcecode language=”plain”]
<!– Place somewhere in the <body> of your page –>
<div class="flexslider">
<ul class="slides">
<li>
<img src="slide1.jpg" />
</li>
<li>
<img src="slide2.jpg" />
</li>
<li>
<img src="slide3.jpg" />
</li>
</ul>
</div>
[/sourcecode]

STEP 3>> Hook up the slider

這個步驟同步驟一,一樣將下面的程式碼放置於網頁 標籤之中,切記要將程式碼放於步驟一的程式碼之後,以確保插件能正常啟動。

[sourcecode language=”plain”]
<!– Place in the <head>, after the three links –>
<script type="text/javascript" charset="utf-8">
$(window).load(function() {
$(‘.flexslider’).flexslider();
});
</script>
[/sourcecode]

STEP 4>> 修改屬性

透過下方程式碼,您可以修改一些數值來改變這個插件,像是幻燈片滾動的速度等等,這部分是屬於個人需求和喜好的部分就不多贅述,FlexSlider 主要程式碼的部分已經在步驟一到三的地方完成了。

[sourcecode language=”plain”]
namespace: "flex-",             //{NEW} String: Prefix string attached to the class of every element generated by the plugin
selector: ".slides > li",       //{NEW} Selector: Must match a simple pattern. ‘{container} > {slide}’ — Ignore pattern at your own peril
animation: "fade",              //String: Select your animation type, "fade" or "slide"
easing: "swing",               //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
direction: "horizontal",        //String: Select the sliding direction, "horizontal" or "vertical"
reverse: false,                 //{NEW} Boolean: Reverse the animation direction
animationLoop: true,             //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
smoothHeight: false,            //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode 
startAt: 0,                     //Integer: The slide that the slider should start on. Array notation (0 = first slide)
slideshow: true,                //Boolean: Animate slider automatically
slideshowSpeed: 7000,           //Integer: Set the speed of the slideshow cycling, in milliseconds
animationSpeed: 600,            //Integer: Set the speed of animations, in milliseconds
initDelay: 0,                   //{NEW} Integer: Set an initialization delay, in milliseconds
randomize: false,               //Boolean: Randomize slide order
 
// Usability features
pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
pauseOnHover: false,            //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
useCSS: true,                   //{NEW} Boolean: Slider will use CSS3 transitions if available
touch: true,                    //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
video: false,                   //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
 
// Primary Controls
controlNav: true,               //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
directionNav: true,             //Boolean: Create navigation for previous/next navigation? (true/false)
prevText: "Previous",           //String: Set the text for the "previous" directionNav item
nextText: "Next",               //String: Set the text for the "next" directionNav item
 
// Secondary Navigation
keyboard: true,                 //Boolean: Allow slider navigating via keyboard left/right keys
multipleKeyboard: false,        //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
mousewheel: false,              //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) – Allows slider navigating via mousewheel
pausePlay: false,               //Boolean: Create pause/play dynamic element
pauseText: ‘Pause’,             //String: Set the text for the "pause" pausePlay item
playText: ‘Play’,               //String: Set the text for the "play" pausePlay item
 
// Special properties
controlsContainer: "",          //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be ".flexslider-container". Property is ignored if given element is not found.
manualControls: "",             //Selector: Declare custom control navigation. Examples would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
sync: "",                       //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
asNavFor: "",                   //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
 
// Carousel Options
itemWidth: 0,                   //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
itemMargin: 0,                  //{NEW} Integer: Margin between carousel items.
minItems: 0,                    //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
maxItems: 0,                    //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
move: 0,                        //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
                                 
// Callback API
start: function(){},            //Callback: function(slider) – Fires when the slider loads the first slide
before: function(){},           //Callback: function(slider) – Fires asynchronously with each slider animation
after: function(){},            //Callback: function(slider) – Fires after each slider animation completes
end: function(){},              //Callback: function(slider) – Fires when the slider reaches the last slide (asynchronous)
added: function(){},            //{NEW} Callback: function(slider) – Fires after a slide is added
removed: function(){}           //{NEW} Callback: function(slider) – Fires after a slide is removed
[/sourcecode]

FlexSlider 的樣式不只是大張圖左右滾動,你們可以至 FlexSlider 2 的網站中下載您喜歡的樣式,另外,剛剛忘記說到步驟一時連結了兩個檔案(flexslider.css and jquery.flexslider.js),您必須在網頁中將檔案下載後上傳至您網站的空間,路徑的地方也要因擺放位置的不同做修改,這樣程式在讀取時才能順利讀取到檔案喔,這樣就簡單的完成啦,其實真的沒有難度。

One thought on “jQuery 滾動插件─FlexSlider 筆記教學

Comments are closed.