具有固定高度缩略图的响应式jssor

时间:2015-10-28 08:42:38

标签: jssor

我试图用缩略图创建一个响应式jssor滑块,但缩略图总是应该具有相同的高度。我已将ThumbnailNavigatorOptions.$Scale设置为false并将缩略图导航器放入包装器(如建议的here),但它不起作用。缩略图导航器正在缩放。如果我取下包装纸,它不会缩放,但布局被搞砸了。缩略图也应始终水平居中。

这是我尝试过的(如果你将这个html放入jssor的demos-jquery文件夹中,它会加载):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Image Gallery Theme - Jssor Slider, Carousel, Slideshow with Javascript Source Code</title>
</head>
<body style="padding: 0; margin: 0; font-family:Arial, Verdana;background-color:#fff;">
    <!-- it works the same with all jquery version from 1.x to 2.x -->
    <script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="../js/jssor.js"></script>
    <script type="text/javascript" src="../js/jssor.slider.js"></script>

    <script>

        jQuery(document).ready(function ($) {

            var _SlideshowTransitions = [
                    {$Duration: 1200, x: 0.3, $During: { $Left: [0.3, 0.7] }, $Easing: { $Left: $JssorEasing$.$EaseInCubic, $Opacity: $JssorEasing$.$EaseLinear }, $Opacity: 2 }
                ];

            var options = {
                $AutoPlay: true,                                    //[Optional] Whether to auto play, to enable slideshow, this option must be set to true, default value is false
                $AutoPlayInterval: 1500,                            //[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000
                $PauseOnHover: 1,                                //[Optional] Whether to pause when mouse over if a slider is auto playing, 0 no pause, 1 pause for desktop, 2 pause for touch device, 3 pause for desktop and touch device, 4 freeze for desktop, 8 freeze for touch device, 12 freeze for desktop and touch device, default value is 1

                $DragOrientation: 3,                                //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0)
                $ArrowKeyNavigation: true,                          //[Optional] Allows keyboard (arrow key) navigation or not, default value is false
                $SlideDuration: 800,                                //Specifies default duration (swipe) for slide in milliseconds

                $SlideshowOptions: {                                //[Optional] Options to specify and enable slideshow or not
                    $Class: $JssorSlideshowRunner$,                 //[Required] Class to create instance of slideshow
                    $Transitions: _SlideshowTransitions,            //[Required] An array of slideshow transitions to play slideshow
                    $TransitionsOrder: 1,                           //[Optional] The way to choose transition to play slide, 1 Sequence, 0 Random
                    $ShowLink: true                                    //[Optional] Whether to bring slide link on top of the slider when slideshow is running, default value is false
                },

                $ArrowNavigatorOptions: {                       //[Optional] Options to specify and enable arrow navigator or not
                    $Class: $JssorArrowNavigator$,              //[Requried] Class to create arrow navigator instance
                    $ChanceToShow: 1                               //[Required] 0 Never, 1 Mouse Over, 2 Always
                },

                $ThumbnailNavigatorOptions: {                       //[Optional] Options to specify and enable thumbnail navigator or not
                    $Class: $JssorThumbnailNavigator$,              //[Required] Class to create thumbnail navigator instance
                    $ChanceToShow: 2,                               //[Required] 0 Never, 1 Mouse Over, 2 Always
                    $AutoCenter: 1,
                    $Scale: false,                                  //Scales thumbnail navigator or not while slider scale
                    $ActionMode: 1,                                 //[Optional] 0 None, 1 act by click, 2 act by mouse hover, 3 both, default value is 1
                    $SpacingX: 8,                                   //[Optional] Horizontal space between each thumbnail in pixel, default value is 0
                    $DisplayPieces: 10,                             //[Optional] Number of pieces to display, default value is 1
                    $ParkingPosition: 360                          //[Optional] The offset position to park thumbnail
                }
            };

            var jssor_slider1 = new $JssorSlider$("slider1_container", options);
            //responsive code begin
            //you can remove responsive code if you don't want the slider scales while window resizes
            function ScaleSlider() {
                var parentWidth = jssor_slider1.$Elmt.parentNode.clientWidth;
                if (parentWidth)
                    jssor_slider1.$ScaleWidth(Math.max(Math.min(parentWidth, 800), 300));
                else
                    window.setTimeout(ScaleSlider, 30);
            }

            ScaleSlider();

            $Jssor$.$AddEvent(window, "resize", $Jssor$.$WindowResizeFilter(window, ScaleSlider));
            $Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);
            //responsive code end
        });
    </script>
    <!-- Jssor Slider Begin -->
    <!-- To move inline styles to css file/block, please specify a class name for each element. --> 
    <div id="slider1_container" style="position: relative; top: 0px; left: 0px; width: 800px;
        height: 456px; background: #191919; overflow: hidden;">

        <!-- Loading Screen -->
        <div u="loading" style="position: absolute; top: 0px; left: 0px;">
            <div style="filter: alpha(opacity=70); opacity:0.7; position: absolute; display: block;
                background-color: #000000; top: 0px; left: 0px;width: 100%;height:100%;">
            </div>
            <div style="position: absolute; display: block; background: url(../img/loading.gif) no-repeat center center;
                top: 0px; left: 0px;width: 100%;height:100%;">
            </div>
        </div>

        <!-- Slides Container -->
        <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width: 800px; height: 356px; overflow: hidden;">
            <div>
                <img u="image" src="../img/alila/01.jpg" />
                <img u="thumb" src="../img/alila/thumb-01.jpg" />
            </div>
            <div>
                <img u="image" src="../img/alila/02.jpg" />
                <img u="thumb" src="../img/alila/thumb-02.jpg" />
            </div>
            <div>
                <img u="image" src="../img/alila/03.jpg" />
                <img u="thumb" src="../img/alila/thumb-03.jpg" />
            </div>
            <div>
                <img u="image" src="../img/alila/04.jpg" />
                <img u="thumb" src="../img/alila/thumb-04.jpg" />
            </div>
            <div>
                <img u="image" src="../img/alila/05.jpg" />
                <img u="thumb" src="../img/alila/thumb-05.jpg" />
            </div>
            <div>
                <img u="image" src="../img/alila/06.jpg" />
                <img u="thumb" src="../img/alila/thumb-06.jpg" />
            </div>
        </div>

        <!--#region Arrow Navigator Skin Begin -->
        <style>
            /* jssor slider arrow navigator skin 05 css */
            /*
            .jssora05l                  (normal)
            .jssora05r                  (normal)
            .jssora05l:hover            (normal mouseover)
            .jssora05r:hover            (normal mouseover)
            .jssora05l.jssora05ldn      (mousedown)
            .jssora05r.jssora05rdn      (mousedown)
            */
            .jssora05l, .jssora05r {
                display: block;
                position: absolute;
                /* size of arrow element */
                width: 40px;
                height: 40px;
                cursor: pointer;
                background: url(../img/a17.png) no-repeat;
                overflow: hidden;
            }
            .jssora05l { background-position: -10px -40px; }
            .jssora05r { background-position: -70px -40px; }
            .jssora05l:hover { background-position: -130px -40px; }
            .jssora05r:hover { background-position: -190px -40px; }
            .jssora05l.jssora05ldn { background-position: -250px -40px; }
            .jssora05r.jssora05rdn { background-position: -310px -40px; }
        </style>
        <!-- Arrow Left -->
        <span u="arrowleft" class="jssora05l" style="top: 158px; left: 8px;">
        </span>
        <!-- Arrow Right -->
        <span u="arrowright" class="jssora05r" style="top: 158px; right: 8px">
        </span>
        <!--#endregion Arrow Navigator Skin End -->

        <div u="thumbwrapper" style="position: absolute; width: 100%; height: 100px; bottom: 0px; overflow: hidden;">
            <div style="position: relative; left: 50%; width: 5000px; height: 100px; text-align: center; margin-left: -2500px;">
                <!--#region Thumbnail Navigator Skin Begin -->
                <!-- Help: http://www.jssor.com/development/slider-with-thumbnail-navigator-jquery.html -->
                <style>
                            /* jssor slider thumbnail navigator skin 01 css */
                            /*
                    .jssort01 .p            (normal)
                    .jssort01 .p:hover      (normal mouseover)
                    .jssort01 .p.pav        (active)
                    .jssort01 .p.pdn        (mousedown)
                    */

                            .jssort01 {
                                position: absolute;
                                /* size of thumbnail navigator container */
                                width: 800px;
                                height: 100px;
                            }

                                .jssort01 .p {
                                    position: absolute;
                                    top: 0;
                                    left: 0;
                                    width: 72px;
                                    height: 72px;
                                }

                                .jssort01 .t {
                                    position: absolute;
                                    top: 0;
                                    left: 0;
                                    width: 100%;
                                    height: 100%;
                                    border: none;
                                }

                                .jssort01 .w {
                                    position: absolute;
                                    top: 0px;
                                    left: 0px;
                                    width: 100%;
                                    height: 100%;
                                }

                                .jssort01 .c {
                                    position: absolute;
                                    top: 0px;
                                    left: 0px;
                                    width: 68px;
                                    height: 68px;
                                    border: #000 2px solid;
                                    box-sizing: content-box;
                                    background: url(../img/t01.png) -800px -800px no-repeat;
                                    _background: none;
                                }

                                .jssort01 .pav .c {
                                    top: 2px;
                                    _top: 0px;
                                    left: 2px;
                                    _left: 0px;
                                    width: 68px;
                                    height: 68px;
                                    border: #000 0px solid;
                                    _border: #fff 2px solid;
                                    background-position: 50% 50%;
                                }

                                .jssort01 .p:hover .c {
                                    top: 0px;
                                    left: 0px;
                                    width: 70px;
                                    height: 70px;
                                    border: #fff 1px solid;
                                    background-position: 50% 50%;
                                }

                                .jssort01 .p.pdn .c {
                                    background-position: 50% 50%;
                                    width: 68px;
                                    height: 68px;
                                    border: #000 2px solid;
                                }

                                * html .jssort01 .c, * html .jssort01 .pdn .c, * html .jssort01 .pav .c {
                                    /* ie quirks mode adjust */
                                    width /**/: 72px;
                                    height /**/: 72px;
                                }
                </style>

                <!-- thumbnail navigator container -->
                <div u="thumbnavigator" class="jssort01" style="position: relative; margin: 0 auto; left:0px; bottom: 0px;">
                    <!-- Thumbnail Item Skin Begin -->
                    <div u="slides" style="cursor: default;">
                        <div u="prototype" class="p">
                            <div class=w><div u="thumbnailtemplate" class="t"></div></div>
                            <div class=c></div>
                        </div>
                    </div>
                    <!-- Thumbnail Item Skin End -->
                </div>
                <!--#endregion Thumbnail Navigator Skin End -->
            </div>
        </div>
        <a style="display: none" href="http://www.jssor.com">Carousel jQuery</a>
    </div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

对于有类似问题的人,我最终切换到LightGallery,这是以这种方式显示图像的更好实现。 Jssor对于横幅很棒,但是我发现另一个用于更好的画廊目的。