Flexslider 2如何在页面加载后重新启动

时间:2015-03-09 11:37:51

标签: flexslider woothemes

<div id="div_container_photos" class="cands_container" style="margin-top: 20px;min-height:300px">
    <div class="row" id="flexRow" style="margin:0px ;min-height:100%">
        <div id="flex_div_select" class="col-sm-4 col-xs-12" style="padding:0px ; padding-right: 15px">
        </div>
        <div id="flex_div_show" class="col-sm-8 col-xs-12"  style="padding:0px; height:100%">
        </div>
    </div>
</div>

我有2个flexsliders:第一个选择一个专辑; de second one显示了该专辑中的照片。我的问题是,当我在$(document).ready(function(){})中启动时,flexSlider只显示照片; 我尝试过使用addSlide但是也没用。 所以在$(文件).ready中,我发起了专辑Slider:

function maakFlexSliderAlbums()
{
console.log("[FLEXSLIDER]about to create flexslider for selecting albums; number of album inside s_php_arrayNonStripped: " + js_php_arrayNonStripped.length);
return $.Deferred(function () { // <-- see returning Deferred object
    var self = this;
    var flexSlider;
    flexSlider = '<div class="flexslider" style="margin:0px; background-color:#AAA" ><ul class="slides">';
    for (var i = 0; i < js_php_arrayNonStripped.length; i++)
    {
        console.log("[FLEXSLIDER]adding <li> " + js_php_arrayNonStripped[i] + " </li> to mapslider");
        flexSlider += '<li><div style="width: 50%; margin: 0 auto;"><h2>' + js_php_arrayNonStripped[i] + '</h2></div></li>';

    }

    flexSlider += '</ul></div>';
    $("#flex_div_select").append(flexSlider);

    console.log("[FLEXSLIDER]DOM is build...now initializing");
    $('.flexslider').flexslider({
        animation: "slide", //String: Select your animation type, "fade" or "slide"
        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
        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: js_php_arrayNonStripped.length - 1, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
        slideshow: false, //Boolean: Animate slider automatically
        slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
        animationSpeed: 1000, //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: false, //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: 3, //{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 (slider) {
            console.log("[FLEXSLIDER]map slider loaded; current slide=  " + slider.currentSlide + " ; so that would be " + js_php_arrayNonStripped[slider.currentSlide]);
            //when you click an album
            $('#flex_div_select .slides li').click(function (event) {
                event.preventDefault();
                //clicked album -> italic
                $('#flex_div_select .slides li h2').css('font-style', 'normal');
                $('#flex_div_select .slides .flex-active-slide h2').css('font-style', 'italic');
                var album = $('#flex_div_select .slides .flex-active-slide h2').html();

                console.log("clicked album slider: " + album);
                //get photos from server
              //  getPhotos(album);
              ///////////////////////////////////////////////////////////
                INITIATE #photoSlider HERE ??
              ///////////////////////////////////////////////////////////
                //slider.flexAnimate(slider.getTarget("next"));     
            });
            //return promise
            self.resolve();

        }, //Callback: function(slider) - Fires when the slider loads the first slide
        before: function () {

        }, //Callback: function(slider) - Fires asynchronously with each slider animation
        after: function (slider) {
            if (slider.currentSlide >= js_php_arrayNonStripped.length)
            {
                /*   newAlbumFolder = $("#txtNewFolder").val();
                 console.log("[FLEXSLIDER] slided to " + slider.currentSlide + " ; so that would be " + newAlbumFolder);
                 */   //console.log("new album detected: " + newAlbumFolder);   
            }
            else
            {
                newAlbumFolder = js_php_arrayNonStripped[slider.currentSlide];
                console.log("[FLEXSLIDER] slided to " + slider.currentSlide + " ; so that would be " + js_php_arrayNonStripped[slider.currentSlide]);

                //   console.log("excisting album detected: " + newAlbumFolder);
            }
            // console.log("newAlbumFolder: " + newAlbumFolder);

        }, //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) -*/
    });

    console.log("[FLEXSLIDER]flexslider initialised");
});

当我点击相应的相册时,我想发起#photoSlider。 #photoSlider填充的唯一方法是我使用时: var poging =这里引用了listsyntax;     initFlexSliderVoorPhotos(poging);在document.ready中 上面的函数做了类似的事情:

flexSlider = '<div class="flexslider" style="margin:0px; height:300px; background-color:#AAA" id="photoSlider" > <ul class="slides" style=""> ';
    //<div class="flex-viewport" style="overflow: hidden; position: relative;">


flexSlider += slides +'</ul></div>';
$("#flex_div_show").append(flexSlider);
$('#photoSlider').flexslider({....}) (this doesn't get executed!)

0 个答案:

没有答案