Параметр "Ширина слайдера" для горизонтального слайдера означает одновременно и ширину слайдера, и ширину ячейки, показанную на картинке:
При задании ширины слайдера в пикселях - в слайдере будут зазоры между изображениями, равные ширина слайдера минус ширина изображения. В этом случае в слайдере полностью будет видно только одно изображение.
При задании ширины слайдера в % - ширина ячейки будет равна числовому значению процентов. Т.е., если указать 100%, то ширина ячейки будет равна 100px, что приведет в зазорам, если ширина какого-либо изображения меньше 100px:
При выборе типа "Горизонтальный слайдер" - в файле block_sliders.php будет выполняться этот код:
PHP код:
$t->set_var("column_width", intval($slider_width));
$t->set_var("table_width", intval($slider_width) * $slider_records);
В этих строках вычисляются ширина ячейки и ширина таблицы. При этом ширина слайдера, заданная в процентах, совершенно неправильно преобразуется в число. После функции intval 100% превращается в число 100.
Видится два решения всех этих проблем:
1. Для горизонтального слайдера нужна еще одна настройка (ширина ячейки). Это наиболее правильное решение.
2. Ширина горизонтального слайдера задается в файле block_sliders.php жестко, как 100%. В этом случае настройка "Ширина слайдера" будет означать ширину ячейки. И задавать ее нужно в пикселях, а не процентах. При этом нужно следить, чтобы на экране в слайдере помещалось количество изображений не более, чем задано в настройках, иначе будут артефакты в виде пустот. Это менее правильное решение.
Переименовать "Горизонтальный слайдер (Лево)" в "Горизонтальный слайдер (влево)".
Переименовать "Горизонтальный слайдер (Право)" в "Горизонтальный слайдер (вправо)".
В slider.js этот бессмысленный код:
Код:
if (sliderType >= 1 && sliderType <= 4) {
initSlider(pbId, sliderType);
} else if (sliderType == 5) {
initSlider(pbId, sliderType);
}
можно сократить до одной строки:
Код:
initSlider(pbId, sliderType);
PS: Неплохо было бы добавить еще один тип слайдера - "Слайдшоу (без навигатора)". Я себе уже сделал.
Социальные закладки