Заменить значение height в div
Доброго времени суток!
Подскажите, пожалуйста, как в div в style заменить значение height. Спасибо. Пример, есть элемент: <div class="slick-track" style="opacity: 1; height: 1674px; transform: translate3d(0px, -702px, 0px);"> В данном случае в style нужно (два варианта) 1) заменить height на maxheight: 498px; 2) убрать height |
var element = document.getElementsByClassName('slick-track');
element.style.height = '400px';
В таком случае в консоли ошибка "Cannot set property 'height' of undefined" |
_marisha,
<div class="slick-track" style="opacity: 1; height: 1674px; transform: translate3d(0px, -702px, 0px);"></div>
<script>
let {style} = document.querySelector(".slick-track");
style.height = "";
style.maxWidth = "498px"
</script>
|
Цитата:
element[0].style.height = '400px'; |
рони, спасибо что откликнулись )
let{style} = document.querySelector(".slick-track");
style.height = "400px"; // или style.height = "";
В таком случае ошибка в консоли Uncaught TypeError: Cannot destructure property `style` of 'undefined' or 'null'.
var element = document.getElementsByClassName('slick-track');
element[0].style.height = '400px';
В таком случае ошибка Uncaught TypeError: Cannot read property 'style' of undefined |
_marisha,
рано запустили скрипт, элементов ещё нет с данным классом. ставить после инициализации слайдера. |
рони, действительно, если добавить код после подключения слайдера, то в консоли ошибок нет.
Но высота не применяется :(
<script>
$('.slider').slick({
arrows: false,
infinite: true,
autoplay: true,
Speed: 3000,
slidesToShow: 1,
slidesToScroll: 1,
pauseOnHover: true,//остановка при наведении
pauseOnFocus: true,
focusOnSelect: true,
variableWidth: true,
asNavFor: '.slider-nav'
});
$('.slider-nav').slick({
vertical: true,
arrows: true,
infinite: true,
slidesToShow: 9,
slidesToScroll: 1,
asNavFor: '.slider',
pauseOnHover: true,
pauseOnFocus: true,
focusOnSelect: true,
variableHeight: true,
});
</script>
<script>
let style = document.querySelector(".slick-track");
style.height = "";
style.maxheight = "498px"
</script>
|
Цитата:
Цитата:
|
Скажите, пожалуйста, что сделано не так? (
|
_marisha,
фигурные скобки добавьте {} |
рони, всё равное не применяется заданная высота :( Видимо в slick слайдере не всё так просто...
let {style} = document.querySelector(".slick-track");
style.height = "";
style.maxheight = "498px"
|
Цитата:
|
_marisha,
скорее всего нужных вам элементов несколько и нужен цикл, также для всего этого есть настройки в самом слайдере и css, смотрите документацию. |
Вложений: 2
Цитата:
Пример: 1) если выводится 7 элементов, тогда чтобы все элементы влезали в видимую область можно указать
.slick-vertical .slick-slide{transform: translate3d(0, 20px, 0);}
В таком случае все элементы становятся как нужно и активный элемент выделен белым (скрин "7 элементов") 2) а если при таком же translate3d(0, 20px, 0); выводить порядка 11 элементов, тогда не видно активного элемента (скрин "11 элементов"). Но в таком случае можно указать translate3d(0, 220px, 0), тогда активный элемент видно. Возможно ли сделать так, чтобы если у дива <div class="slick-track" style="opacity: 1; height: 1674px; transform: translate3d(0px, -702px, 0px);"></div>высота больше 400px,тогда применить
.slick-vertical .slick-slide{transform: translate3d(0, 20px, 0);}
. Иначе
.slick-vertical .slick-slide{transform: translate3d(0, [B]220px[/B], 0);}
|
Ну так работайте с объектом/элементами, в его методах при событиях нужных или инициализации. Я не помню этот слайдер наизусть, но насколько память не изменят, то у него приличное количество методов, опций, событий, вполне хватит.
|
Удалось решить вопрос следующим образом:
var $slider = $('.slick-vertical .slick-slide');
if ($slider.length > '8')
{
$('.slick-vertical .slick-slide').css('transform','translate3d(0, 220px, 0)');
$('.name').css('padding','8px');
$('.title_slider').css('height','480px');
}
else
{
$('.title_slider').css('height','480px');
}
|
| Часовой пояс GMT +3, время: 12:35. |