<!--https://dsgnmax.ru/useful/video-te100--> <style>
:root{
--dbmTE100WidthContainer: 100vw; /*Ширина контейнера равна ширине экрана*/
--dbmTE100PaddingContainer: 40px; /*Отступы по бокам от контейнера*/
--dbmTE100HeightCardDesktop: 500px; /*Высотка карточек на десктопе*/
--dbmTE100WidthHoverCard: 180%; /*Ширина карточки при наведении*/
--dbmTE100TransitionCard: all 0.4s cubic-bezier(0.85, 0.05, 0.17, 0.93); /*Плавность анимации*/
--dbmTE100GapCard: 20px; /*Отступ между карточками*/
--dbmTE100PreviewCard: none; /*Отображение превью для карточек, если оно не нужно, то укажите значение none, если нужно – block*/
--dbmTE100SliderMobile: nowrap; /*Если на мобильных устройствах вам не нужен слайдер, то просто поменяйте это значение nowrap на wrap*/
/*Также, еси вам не нужен слайдер на мобильных устройства, то значение ниже нужно указать не в пикселях, а 100%, тогда карточки будут растягиваться на всю ширину экрана и выстраиваться друг под другом*/
--dbmTE100WidthCardMobile: 320px; /*Ширина карточки на мобильных устройствах*/
--dbmTE100PaddingContainerMobile: 20px; /*Отступы по бокам от контейнера на мобильных устройствах*/
}
.t686 video {
pointer-events: none;
}
.t686__container {
max-width: var(--dbmTE100WidthContainer);
margin: 0 auto;
padding: 0 var(--dbmTE100PaddingContainer);
box-sizing: border-box;
display: flex;
flex-wrap: nowrap;
gap: var(--dbmTE100GapCard);
}
.t686__container:before,
.t686__container:after,
.t686__separator{
display: none !important;
}
.t686__container .t-card__col{
width: 100% !important;
max-width: 100% !important;
padding: 0 !important;
margin: 0 !important;
transition: var(--dbmTE100TransitionCard);
}
.t686__container .t-card__col:hover{
width: var(--dbmTE100WidthHoverCard) !important; /*Ширина блока при наведении*/
}
.t686__table {
height: var(--dbmTE100HeightCardDesktop) !important; /*Высота блока*/
}
.t686__bg {
display: var(--dbmTE100PreviewCard) !important;
}
.t686__container .t-card__col:hover .t686__bg{
opacity: 0;
}
.t686__container video {
object-fit: cover !important;
height: 100%;
width: 100%;
}
.customVideo {
width: 100% !important;
height: 100% !important;
position: absolute;
top: 0;
left: 0;
z-index: -1;
cursor: pointer;
}
.t686__overlay, .t686__textwrapper {
display: block; /*Если нужно скрыть текст и прозрачную подложку, то укажите значение none*/
}
@media screen and (max-width: 960px){
.t686__container{
flex-wrap: var(--dbmTE100SliderMobile);
}
.t686__container .t-card__col {
max-width: var(--dbmTE100WidthCardMobile) !important;
width: var(--dbmTE100WidthCardMobile) !important;
flex-shrink: 0;
}
.t686__container.t-card__container.t-container {
overflow-x: auto;
}
}
@media (max-width: 768px) {
.t686 video {
pointer-events: auto;
-webkit-tap-highlight-color: transparent;
}
}
@media screen and (max-width: 640px){
.t686__container{
padding: 0 var(--dbmTE100PaddingContainerMobile);
}
}
</style> <script>
document.addEventListener('DOMContentLoaded', () => {
const containerBlocks = document.querySelectorAll('.t686__container .t-card__col .t686__cell');
const videosArray = [
//Здесь вставляем ссылки на ваши видео, они будут идти по порядку, в зависимости от количества карточек
'https://files.dsgnmax.ru/designbymax/mods/1.mp4',
'https://files.dsgnmax.ru/designbymax/mods/2.mp4',
'https://files.dsgnmax.ru/designbymax/mods/3.mp4',
];
let currentPlayingVideo = null;
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
const createVideoElement = (src, index) => {
const videoContainer = document.createElement('div');
videoContainer.classList.add('customVideo', `customVideo-${index + 1}`);
const video = document.createElement('video');
Object.assign(video, {
muted: true,
controls: false,
preload: 'metadata',
playsInline: true,
style: 'width: 100%',
loop: true, // false – видео не будет проигрываться бесконечно
});
video.addEventListener('loadedmetadata', () => {
video.currentTime = 0.1;
});
const source = document.createElement('source');
source.src = src;
source.type = 'video/mp4';
video.appendChild(source);
videoContainer.appendChild(video);
return { videoContainer, video };
};
containerBlocks.forEach((block, index) => {
const { videoContainer, video } = createVideoElement(
videosArray[index % videosArray.length],
index
);
block.appendChild(videoContainer);
if (isMobile) {
block.addEventListener('click', (e) => {
e.stopPropagation();
if (currentPlayingVideo && currentPlayingVideo !== video) {
currentPlayingVideo.pause();
}
if (video.paused) {
video.play();
currentPlayingVideo = video;
} else {
video.pause();
currentPlayingVideo = null;
}
});
} else {
block.addEventListener('mouseenter', () => video.play());
block.addEventListener('mouseleave', () => video.pause());
}
});
if (isMobile) {
document.addEventListener('click', () => {
if (currentPlayingVideo) {
currentPlayingVideo.pause();
currentPlayingVideo = null;
}
});
}
})
</script>
<!--https://dsgnmax.ru/useful/video-te100--> <style>
:root{
--dbmTE100WidthContainer: 100vw; /*Ширина контейнера равна ширине экрана*/
--dbmTE100PaddingContainer: 40px; /*Отступы по бокам от контейнера*/
--dbmTE100HeightCardDesktop: 500px; /*Высотка карточек на десктопе*/
--dbmTE100WidthHoverCard: 180%; /*Ширина карточки при наведении*/
--dbmTE100TransitionCard: all 0.4s cubic-bezier(0.85, 0.05, 0.17, 0.93); /*Плавность анимации*/
--dbmTE100GapCard: 20px; /*Отступ между карточками*/
--dbmTE100PreviewCard: none; /*Отображение превью для карточек, если оно не нужно, то укажите значение none, если нужно – block*/
--dbmTE100SliderMobile: nowrap; /*Если на мобильных устройствах вам не нужен слайдер, то просто поменяйте это значение nowrap на wrap*/
/*Также, еси вам не нужен слайдер на мобильных устройства, то значение ниже нужно указать не в пикселях, а 100%, тогда карточки будут растягиваться на всю ширину экрана и выстраиваться друг под другом*/
--dbmTE100WidthCardMobile: 320px; /*Ширина карточки на мобильных устройствах*/
--dbmTE100PaddingContainerMobile: 20px; /*Отступы по бокам от контейнера на мобильных устройствах*/
}
.t686 video {
pointer-events: none;
}
.t686__container {
max-width: var(--dbmTE100WidthContainer);
margin: 0 auto;
padding: 0 var(--dbmTE100PaddingContainer);
box-sizing: border-box;
display: flex;
flex-wrap: nowrap;
gap: var(--dbmTE100GapCard);
}
.t686__container:before,
.t686__container:after,
.t686__separator{
display: none !important;
}
.t686__container .t-card__col{
width: 100% !important;
max-width: 100% !important;
padding: 0 !important;
margin: 0 !important;
transition: var(--dbmTE100TransitionCard);
}
.t686__container .t-card__col:hover{
width: var(--dbmTE100WidthHoverCard) !important; /*Ширина блока при наведении*/
}
.t686__table {
height: var(--dbmTE100HeightCardDesktop) !important; /*Высота блока*/
}
.t686__bg {
display: var(--dbmTE100PreviewCard) !important;
}
.t686__container .t-card__col:hover .t686__bg{
opacity: 0;
}
.t686__container video {
object-fit: cover !important;
height: 100%;
width: 100%;
}
.customVideo {
width: 100% !important;
height: 100% !important;
position: absolute;
top: 0;
left: 0;
z-index: -1;
cursor: pointer;
}
.t686__overlay, .t686__textwrapper {
display: block; /*Если нужно скрыть текст и прозрачную подложку, то укажите значение none*/
}
@media screen and (max-width: 960px){
.t686__container{
flex-wrap: var(--dbmTE100SliderMobile);
}
.t686__container .t-card__col {
max-width: var(--dbmTE100WidthCardMobile) !important;
width: var(--dbmTE100WidthCardMobile) !important;
flex-shrink: 0;
}
.t686__container.t-card__container.t-container {
overflow-x: auto;
}
}
@media (max-width: 768px) {
.t686 video {
pointer-events: auto;
-webkit-tap-highlight-color: transparent;
}
}
@media screen and (max-width: 640px){
.t686__container{
padding: 0 var(--dbmTE100PaddingContainerMobile);
}
}
</style> <script>
document.addEventListener('DOMContentLoaded', () => {
const containerBlocks = document.querySelectorAll('.t686__container .t-card__col .t686__cell');
const videosArray = [
//Здесь вставляем ссылки на ваши видео, они будут идти по порядку, в зависимости от количества карточек
'https://files.dsgnmax.ru/designbymax/mods/1.mp4',
'https://files.dsgnmax.ru/designbymax/mods/2.mp4',
'https://files.dsgnmax.ru/designbymax/mods/3.mp4',
];
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
const createVideoElement = (src, index) => {
const videoContainer = document.createElement('div');
videoContainer.classList.add('customVideo', `customVideo-${index + 1}`);
const video = document.createElement('video');
Object.assign(video, {
muted: true,
controls: false,
preload: 'metadata',
playsInline: true,
style: 'width: 100%',
autoplay: isMobile,
loop: true // Зацикливаем видео всегда
});
video.addEventListener('loadedmetadata', () => {
video.currentTime = 0.1;
if(isMobile) video.play();
});
if(!isMobile) {
video.addEventListener('click', (e) => {
e.preventDefault();
e.stopPropagation();
const playerVideo = document.createElement('video');
playerVideo.src = src;
playerVideo.controls = true;
playerVideo.style.width = '100%';
playerVideo.play();
const existingVideo = videoContainer.querySelector('video');
existingVideo.pause();
videoContainer.replaceChild(playerVideo, existingVideo);
});
}
const source = document.createElement('source');
source.src = src;
source.type = 'video/mp4';
video.appendChild(source);
videoContainer.appendChild(video);
return { videoContainer, video };
};
containerBlocks.forEach((block, index) => {
const { videoContainer, video } = createVideoElement(
videosArray[index % videosArray.length],
index
);
block.appendChild(videoContainer);
if (!isMobile) {
block.addEventListener('mouseenter', () => video.play());
block.addEventListener('mouseleave', () => video.pause());
}
});
})
</script>
<!--https://dsgnmax.ru/useful/video-te100--> <style>
:root{
--dbmTE100WidthContainer: 100vw; /*Ширина контейнера равна ширине экрана*/
--dbmTE100PaddingContainer: 40px; /*Отступы по бокам от контейнера*/
--dbmTE100HeightCardDesktop: 500px; /*Высотка карточек на десктопе*/
--dbmTE100WidthHoverCard: 180%; /*Ширина карточки при наведении*/
--dbmTE100TransitionCard: all 0.4s cubic-bezier(0.85, 0.05, 0.17, 0.93); /*Плавность анимации*/
--dbmTE100GapCard: 20px; /*Отступ между карточками*/
--dbmTE100PreviewCard: none; /*Отображение превью для карточек, если оно не нужно, то укажите значение none, если нужно – block*/
--dbmTE100SliderMobile: nowrap; /*Если на мобильных устройствах вам не нужен слайдер, то просто поменяйте это значение nowrap на wrap*/
/*Также, еси вам не нужен слайдер на мобильных устройства, то значение ниже нужно указать не в пикселях, а 100%, тогда карточки будут растягиваться на всю ширину экрана и выстраиваться друг под другом*/
--dbmTE100WidthCardMobile: 320px; /*Ширина карточки на мобильных устройствах*/
--dbmTE100PaddingContainerMobile: 20px; /*Отступы по бокам от контейнера на мобильных устройствах*/
}
.t686 video {
pointer-events: none;
}
.t686__container {
max-width: var(--dbmTE100WidthContainer);
margin: 0 auto;
padding: 0 var(--dbmTE100PaddingContainer);
box-sizing: border-box;
display: flex;
flex-wrap: nowrap;
gap: var(--dbmTE100GapCard);
}
.t686__container:before,
.t686__container:after,
.t686__separator{
display: none !important;
}
.t686__container .t-card__col{
width: 100% !important;
max-width: 100% !important;
padding: 0 !important;
margin: 0 !important;
transition: var(--dbmTE100TransitionCard);
}
.t686__container .t-card__col:hover{
width: var(--dbmTE100WidthHoverCard) !important; /*Ширина блока при наведении*/
}
.t686__table {
height: var(--dbmTE100HeightCardDesktop) !important; /*Высота блока*/
}
.t686__bg {
display: var(--dbmTE100PreviewCard) !important;
}
.t686__container .t-card__col:hover .t686__bg{
opacity: 0;
}
.t686__container video {
object-fit: cover !important;
height: 100%;
width: 100%;
}
.customVideo {
width: 100% !important;
height: 100% !important;
position: absolute;
top: 0;
left: 0;
z-index: -1;
cursor: pointer;
}
.t686__overlay, .t686__textwrapper {
display: block; /*Если нужно скрыть текст и прозрачную подложку, то укажите значение none*/
}
@media screen and (max-width: 960px){
.t686__container{
flex-wrap: var(--dbmTE100SliderMobile);
}
.t686__container .t-card__col {
max-width: var(--dbmTE100WidthCardMobile) !important;
width: var(--dbmTE100WidthCardMobile) !important;
flex-shrink: 0;
}
.t686__container.t-card__container.t-container {
overflow-x: auto;
}
}
@media (max-width: 768px) {
.t686 video {
pointer-events: auto;
-webkit-tap-highlight-color: transparent;
}
}
@media screen and (max-width: 640px){
.t686__container{
padding: 0 var(--dbmTE100PaddingContainerMobile);
}
}
</style> <script>
document.addEventListener('DOMContentLoaded', () => {
const containerBlocks = document.querySelectorAll('.t686__container .t-card__col .t686__cell');
const videosArray = [
//Здесь вставляем ссылки на ваши видео, они будут идти по порядку, в зависимости от количества карточек
'https://files.dsgnmax.ru/designbymax/mods/1.mp4',
'https://files.dsgnmax.ru/designbymax/mods/2.mp4',
'https://files.dsgnmax.ru/designbymax/mods/3.mp4',
];
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
const createVideoElement = (src, index) => {
const videoContainer = document.createElement('div');
videoContainer.classList.add('customVideo', `customVideo-${index + 1}`);
const video = document.createElement('video');
Object.assign(video, {
muted: true, // Важно для автоматического воспроизведения на мобильных устройствах
autoplay: true, // Автовоспроизведение
controls: false,
preload: 'metadata',
playsInline: true, // Отключить автоматическое открытие в полноэкранном режиме на мобильных устройствах
style: 'width: 100%',
loop: true, // Бесконечное воспроизведение
});
video.addEventListener('loadedmetadata', () => {
video.currentTime = 0.1;
});
const source = document.createElement('source');
source.src = src;
source.type = 'video/mp4';
video.appendChild(source);
videoContainer.appendChild(video);
return { videoContainer, video };
};
containerBlocks.forEach((block, index) => {
const { videoContainer, video } = createVideoElement(
videosArray[index % videosArray.length],
index
);
block.appendChild(videoContainer);
video.play();
});
});
</script>