Здравствуйте! Реализовать блок с изменяющимся контентом при обновлении страницы можно достаточно просто, используя JavaScript. Ваша идея о хранении данных в отдельном JS-файле тоже хороша. Вот шаги, как это сделать:
### Шаг 1: Подготовка данных
Создайте файл `data.js`, в котором будете хранить массив объектов с вашими данными. Например:
```javascript
// data.js
const contentData = [
{
image: 'image1.jpg',
title: 'Заголовок 1',
description: 'Краткое описание 1',
link: 'https://example.com/1'
},
{
image: 'image2.jpg',
title: 'Заголовок 2',
description: 'Краткое описание 2',
link: 'https://example.com/2'
},
{
image: 'image3.jpg',
title: 'Заголовок 3',
description: 'Краткое описание 3',
link: 'https://example.com/3'
}
];
```
### Шаг 2: Подключите `data.js` и напишите основной скрипт
Создайте основной HTML файл, например, `index.html`, и подключите ваш `data.js` файл. Затем добавьте скрипт для выбора случайного элемента из массива:
```html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Случайный контент</title>
<style>
/* Небольшие стили для блока */
.content-block {
border: 1px solid #ccc;
padding: 10px;
margin: 10px;
text-align: center;
}
</style>
</head>
<body>
<div id="randomContent" class="content-block"></div>
<script src="data.js"></script>
<script>
const getRandomContent = () => {
// Генерируем случайный индекс
const randomIndex = Math.floor(Math.random() * contentData.length);
return contentData[randomIndex];
};
const displayContent = () => {
const content = getRandomContent();
const contentBlock = document.getElementById('randomContent');
contentBlock.innerHTML = `
<img src="${content.image}" alt="${content.title}" style="max-width:100%; height: auto;">
<h2>${content.title}</h2>
<p>${content.description}</p>
<a href="${content.link}">Читать далее</a>
`;
};
// Выводим контент при загрузке страницы
window.onload = displayContent;
</script>
</body>
</html>
```
### Шаг 3: Подготовьте изображения
Убедитесь, что изображения, на которые ссылаются ваши данные (например, `image1.jpg`, `image2.jpg`, и т.д.), находятся в той же директории, что и `index.html`, или укажите правильный путь к ним.
### Объяснение кода
1. Мы создали массив объектов в `data.js`, где каждый объект содержит данные для одного блока.
2. В `index.html` мы подключили `data.js` и написали функцию `getRandomContent`, которая генерирует случайный индекс для выбора одного из доступных объектов.
3. Функция `displayContent` отображает контент в соответствующем блоке на странице.
4. При загрузке страницы выполняется `displayContent`, и мы видим случайный контент.
Теперь каждый раз при обновлении страницы будет отображаться случайный контент из вашего массива!