Ползунок jssor, когда я добавляю (поле: 0 авто;) он центрируется, но перестает работать

У меня есть слайдер, настроенный с подписями, как я хотел бы, и все отлично работает в левой части экрана, но я бы хотел, чтобы он был отцентрирован.

Я искал ответ и нашел в нескольких темах, которые добавляют 'margin: 0 auto;' с контейнером слайд сделает свое дело. Однако в моем случае, когда я добавляю 'margin: 0 auto;' к контейнеру слайдера он перемещает контейнер к центру, однако перестает работать, что-то вроде застревания на мне и слайды, если они кажутся блочными.

Удаление параметра поля исправляет ползунок и возвращает его в выравнивание по левому краю, так что все остальное работает, у меня просто не может быть его в середине и работает.

    <script>       
          jQuery(document).ready(function ($) {
            var _CaptionTransitions = [];      
          _CaptionTransitions["L"] = {$Duration:900,$Zoom:1,$Easing:$JssorEasing$.$EaseInCubic};

          var options = {
                    $AutoPlay: true,                                    
                    $DragOrientation: 3,                                
                    $CaptionSliderOptions: {                            
                        $Class: $JssorCaptionSlider$,                   
                        $CaptionTransitions: _CaptionTransitions,       
                        $PlayInMode: 1,                                 
                        $PlayOutMode: 3                                 
                    }
                };

        var jssor_slider1 = new $JssorSlider$("slider1_container", options);
        //responsive code begin
    function ScaleSlider() {
        var windowWidth = $(window).width();

        if (windowWidth) {
            var windowHeight = $(window).height();
            var originalWidth = jssor_slider1.$OriginalWidth();
            var originalHeight = jssor_slider1.$OriginalHeight();

            if (originalWidth / windowWidth > originalHeight / windowHeight) {
                jssor_slider1.$ScaleHeight(windowHeight);
            }
            else {
                jssor_slider1.$ScaleWidth(scaleWidth);
            }
        }
        else
            window.setTimeout(ScaleSlider, 30);
    }

    ScaleSlider();

    if (!navigator.userAgent.match(/(iPhone|iPod|iPad|BlackBerry|IEMobile)/)) {
        $(window).bind('resize', ScaleSlider);
    }
    else {
        $(window).bind("orientationchange", ScaleSlider);
    }
    //responsive code end
            });  
        </script>




> <!-- Jssor Slider Begin -->
>       <!-- You can move inline styles to css file or css block. -->
>       <div id="slider1_container" style="position: relative; margin: 0 auto; width: 600px; height: 480px;">
>         <!-- Slides Container -->
>         <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width:600px; height:480px; overflow: hidden;">
>           <div> <img u="image" src="portfolio/synthetic and teak deck.jpg" />
>           <div u="caption" t="L" style="position: absolute;
>     top: 125px; left: 125px; width: 350px;height: 50px;"><Code>Synthetic and teak decking</code>
>     </div>
>           </div>
>           <div> <img u="image" src="portfolio/teak pool deck.jpg" />
>           <div u="caption" t="L" style="position: absolute;
>     top: 125px; left: 125px; width: 350px;height: 50px;"><code>Teak decking around the pool</code>
>     </div>
>           </div>

Огромное спасибо заранее за любую помощь и указывает мне в правильном направлении

1 ответ

Решение

В коде есть ошибка,

Пожалуйста, замените

jssor_slider1.$ScaleWidth(scaleWidth);

с

jssor_slider1.$ScaleWidth(windowWidth);

Обратите внимание, что 'margin: 0 auto;' будет выравнивать центр элемента по отношению к его родительскому элементу, только если родительский элемент шире, чем элемент. Таким образом, он не будет работать в случае полноэкранного слайдера. Вот хитрость, пожалуйста, поместите ваш слайдер в обертку следующим образом,

<div style="position: relative; width: 100%; background-color: #003399; overflow: hidden;">
    <div style="position: relative; left: 50%; width: 5000px; text-align: center; margin-left: -2500px;">
    </div>
</div>

Наконец, ваш код должен быть таким, как показано ниже,

<script>
    jQuery(document).ready(function ($) {
        var _CaptionTransitions = [];
        _CaptionTransitions["L"] = { $Duration: 900, $Zoom: 1, $Easing: $JssorEasing$.$EaseInCubic };

        var options = {
            $AutoPlay: true,
            $DragOrientation: 3,
            $CaptionSliderOptions: {
                $Class: $JssorCaptionSlider$,
                $CaptionTransitions: _CaptionTransitions,
                $PlayInMode: 1,
                $PlayOutMode: 3
            }
        };

        var jssor_slider1 = new $JssorSlider$("slider1_container", options);
        //responsive code begin
        //you can remove responsive code if you don't want the slider to scale along with window
        function ScaleSlider() {
            var windowWidth = $(window).width();

            if (windowWidth) {
                var windowHeight = $(window).height();
                var originalWidth = jssor_slider1.$OriginalWidth();
                var originalHeight = jssor_slider1.$OriginalHeight();

                if (originalWidth / windowWidth > originalHeight / windowHeight) {
                    jssor_slider1.$ScaleHeight(windowHeight);
                }
                else {
                    jssor_slider1.$ScaleWidth(windowWidth);
                }
            }
            else
                window.setTimeout(ScaleSlider, 30);
        }

        ScaleSlider();

        $(window).bind("load", ScaleSlider);
        $(window).bind("resize", ScaleSlider);
        $(window).bind("orientationchange", ScaleSlider);
        //responsive code end
    });
</script>

<div style="position: relative; width: 100%; background-color: #003399; overflow: hidden;">
    <div style="position: relative; left: 50%; width: 5000px; text-align: center; margin-left: -2500px;">
        <!-- Jssor Slider Begin -->
        <div id="slider1_container" style="position: relative; margin: 0 auto; width: 600px; height: 300px;">
            <!-- Slides Container -->
            <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width:600px; height:300px; overflow: hidden;">
                <div>
                    <img u="image" src="portfolio/synthetic and teak deck.jpg" />
                    <div u="caption" t="L" style="position: absolute;
 top: 125px; left: 125px; width: 350px;height: 50px;">
                        <code>Synthetic and teak decking</code>
                    </div>
                </div>
                <div>
                    <img u="image" src="portfolio/teak pool deck.jpg" />
                    <div u="caption" t="L" style="position: absolute;
 top: 125px; left: 125px; width: 350px;height: 50px;">
                        <code>Teak decking around the pool</code>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
Другие вопросы по тегам