Монтировать блок из drop and drop на JS

Очень не очень в pure js, и не особо понимаю как вмонтировать загруженный img в уже существующий слайдер по кнопке загрузки например. Пример слайдера ->

// SLIDER
const prev = document.getElementById("btn-prev"),
      next = document.getElementById("btn-next"),
      slides = document.querySelectorAll(".slide"),
      slidesWrapper = document.querySelectorAll(".slider-wrapper");
console.log('slide', slides)
let index = 0;

const activeSlide = n => {
    console.log(n)
    for(slide of slides) {
        slide.classList.remove('active');
    }
    slides[n].classList.add('active');
}
const nextSlide = () => {
    if(index == slides.length - 1) {
        index = 0
        activeSlide(index);
    } else {
        index++;
        activeSlide(index);
    }
}
const prevSlide = () => {
    if(index == 0) {
        index = slides.length - 1
        activeSlide(index);
    } else {
        index--;
        activeSlide(index);
    }
}
next.addEventListener('click', nextSlide)
prev.addEventListener('click', prevSlide)
<div class="slider-wrapper">
          <div class="slide active">
            <div class="solo__img"><img           src="./img/solo.svg">
            </div>
          </div>
          <div class="slide">
            <div class="solo__img"><img src="./img/slide2.png">
            </div>
          </div>
          <div class="btn">
            <div class="btn-prev" id="btn-prev"><img src="/img/btn-prev.svg">
            </div>
            <div class="btn-next" id="btn-next"><img src="/img/btn-next.svg">
            </div>
          </div>
        </div>

Пример дропа ->

let dropArea = document.getElementById('drop-area');
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(dropName => {
    dropArea.addEventListener(dropName, preventDefaults, false)
})

function preventDefaults(e) {
    e.preventDefault()
    e.stopPropagation()
};

['dragenter', 'dragover'].forEach(dropName => {
    dropArea.addEventListener(dropName, highlight, false)
})

['dragenter', 'dragover'].forEach(dropName => {
    dropArea.addEventListener(dropName, highlight, false)
})

['dragleave', 'drop'].forEach(dropName => {
    dropArea.addEventListener(dropName, unhighlight, false)
})

function highlight(e) {
    dropArea.classList.add('highlight')
};

function unhighlight(e) {
    dropArea.classList.remove('highlight')
};

dropArea.addEventListener('drop', handleDrop, false);

function handleDrop(e) {
  let dt = e.dataTransfer
  let files = dt.files
  handleFiles(files)
};

function handleFiles(files) {
    files = [...files]
    files.forEach(uploadFile)
    files.forEach(previewFile)
}

function previewFile(file) {
    let reader = new FileReader()
    reader.readAsDataURL(file)
    reader.onloadend = function() {
      let img = document.createElement('img')
      img.src = reader.result
      document.getElementById('gallery').appendChild(img)
    }
}

function uploadFile(file) {
  let div = document.createElement('div')
  div.innerHTML = file
}
<div class="drop" id="drop-area">
          <form class="my-form">
            <p>Загрузите изображения с помощью диалога выбора файлов или перетащив нужные изображения в выделенную область</p>
            <input type="file" id="fileElem" multiple accept="image/*" onchange="handleFiles(this.files)">
            <label class="button" for="fileElem">Выбрать изображения</label>
          </form>
          <div id="gallery"></div>
        </div>

Заранее спасибо тем благородным кто поможет!


Ответы (0 шт):