Справка WIX Случайный запуск в галерее слайдов

НАСТРОЙКА

На моем сайте WIX есть:

  • коллекция под названием Ads980x120 с несколькими элементами (объявления и ссылки)
  • набор данных на странице, связанной с этой коллекцией
  • галерея слайдов 980 x 120 пикселей, связанная с этим набором данных (поле изображения и поле ссылки)

В настоящее время он отлично работает, вращая эти изображения на сайте.

ПРОБЛЕМА

Я не хочу, чтобы одно и то же изображение отображалось и начинало вращение при загрузке страницы. Я хочу, чтобы изображения показывались в случайном порядке. Это может быть вариант №1: случайное начальное изображение с последующим продолжением в том же порядке или вариант №2: случайное начальное изображение И случайный порядок. Любой из них подойдет в зависимости от уровня сложности.

Наконец, на некоторых страницах есть несколько разных галерей, поэтому в идеале я мог бы вставить этот код несколько раз на страницу (по одному для каждой галереи), и я хотел бы, чтобы ссылки открывались в новых окнах.

Я надеюсь, что это имеет смысл, и заранее благодарю вас за любой совет или помощь!

1 ответ

Это довольно просто сделать, если вы не против небольшого мерцания. Используя набор данных, вы можете загрузить галерею, а затем рандомизировать изображения, но на короткое время вы увидите исходный порядок.

Чтобы сделать это без такого мерцания, я думаю, вам нужно использовать API wix-data.

Вот код, который я придумал. Вам нужно будет изменить его, чтобы он соответствовал названию и структуре вашей коллекции, а также идентификатору вашей галереи. Я также использую модуль Lodash npm для рандомизации порядка изображений, но вы можете написать этот код самостоятельно. Наконец, вам нужно удалить все изображения по умолчанию из галереи. При этом мерцание по-прежнему будет, но от пустой галереи к галерее со случайным изображением.

      import {rendering} from 'wix-window';
import wixData from 'wix-data';
import _ from 'lodash';

$w.onReady( async () => {
    if(rendering.env === 'browser') {
        const {items} = await wixData.query('CollectionId').find();
        const images = items.map(item => ({src: item.image, title: item.title}));
        const shuffledImages = _.shuffle(images);
        $w('#galleryId').items = shuffledImages;
    }
} );
Другие вопросы по тегам