Ползунок 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>