Отображение изображений из локального файла в html, css & js галерее сайта - PullRequest
0 голосов
/ 15 октября 2018

В моем университетском курсе / модуле, который охватывает промежуточный HTML и CSS, и базовый java-скрипт (хотя мы еще не достигли этого): мне нужно создать сайт, используя HTML, CSS и, необязательно, java-скрипт в качестве бонусных отметок.

Я застрял в галерее, я хочу создать адаптивную сетку изображений (которую я могу узнать / получить из https://www.w3schools.com/howto/howto_css_image_grid_responsive.asp); Однако я хочу, чтобы локальная папка была заполнена, скажем, 100 изображениями имой веб-сайт с кодом html / css / js, который не требует, чтобы я вручную жестко кодировал каждое отдельное изображение из папки. Оглядываясь назад, я хочу добавлять и удалять изображения из указанной папки и иметь галерею веб-сайта, адаптирующуюся к добавленным / удаленным изображениям.

Теоретически я предполагаю, что мне нужно прочитать содержимое папки, в список / массив, затем каким-то образом проанализировать их и вывести содержимое.

Я нашел два источника, которые касаютсяпо идее: - https://www.html5rocks.com/en/tutorials/file/dndfiles/ - https://github.com/blueimp/JavaScript-Load-Image#meta-data-parsing

Я искал несколько часов, и я подумал бы, что такой код должен где-то существовать,Я думал, что мое отсутствие знаний о html, css, js и т. д. и общей терминологии мешает мне в поиске, поэтому я буду благодарен за любые советы.

Заранее благодарю за ваше время и усилия.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

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

Вы можете просто создать файл .cmd со следующим кодом и выполнить его так, что он будетдинамически генерировать HTML-файл, в котором вы можете отображать изображения по своему желанию.

scriptToExecute.cmd

echo ^<!doctype html^>^<head^>^</head^>^<body^> >> index.html
for %%j in (*.JFIF, *.png, *.JPG, *.GIF) do echo ^<img src=^"./%%j^" style="width:176px;height:300px" ^>  >> index.html
echo ^</body^>^</html^> >> index.html

index.html

<!doctype html><head></head><body> 
<img src="./2.jfif" style="width:176px;height:300px" >  
<img src="./3.jfif" style="width:176px;height:300px" >  
<img src="./4.jfif" style="width:176px;height:300px" >  
<img src="./1.png" style="width:176px;height:300px" >  
</body></html>

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

0 голосов
/ 15 октября 2018

Если вы хотите загружать изображения из папки динамически (не вводя каждое из них вручную), вам не избежать javascript.Добавление JQuery в микс облегчает, а не сложнее.Не бойтесь использовать jQuery, даже если вы только начинаете изучать javascript.

Чтобы использовать jQuery, все, что вам нужно сделать, это добавить:

<script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>

По сути, добавление переменной $, которую вы увидите в следующем коде, обеспечивает простой способ сделать вызов ajax, а также добавить новые элементы img в элемент body.

Созданиеэлемент для каждого изображения в папке (при условии, что он содержит только изображения) должен быть таким простым:

<script type="text/javascript">
    var folder = "images"; //TODO: change this to the path to your folder with the images.
    $.ajax({
        url: folder,
        success: function(data) {
            $(data).find("a").attr("href", function(i, val) {
                $("body").append("<img src='" + folder + '/' + val + "'>");
            });
        }
    });
</script>

В качестве альтернативы, если вы просто хотите избежать необходимости набирать все img элементов вручную и вручную заполните каждый атрибут src, вы можете написать немного javascript, который автоматизирует это.Используя следующий скрипт, вы сможете нажать «Выбрать файлы» и выбрать все изображения в папке, нажать «Открыть», а затем «Перейти», и он сгенерирует HTML для всех элементов img и отобразитЭто.Затем вы можете скопировать этот HTML и вручную вставить его в ваш реальный проект.

<input id="file" type="file" multiple />
<button onClick="go()">Go</button>
<div id="output"></div>

<script type="text/javascript">
  function go() {
  const fileInput = document.getElementById('file');
  const outputDiv = document.getElementById('output');
  let html = '';
  for (const file of fileInput.files) {
    html += '<img src="images/' + file.name + '" />';
  }
  outputDiv.textContent = html;
}
</script>

https://codepen.io/rockysims/pen/MPEMOG

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...