Изображения не загружаются полностью, пока не будут наведены

#javascript #html #css #reactjs #framer-motion

#javascript #HTML #css #reactjs #фреймер-движение

Вопрос:

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

После наведения курсора мыши изображения расширяются до полного размера, а затем работают должным образом. Я пытаюсь запретить пользователю зависать над ними, чтобы он правильно загружался.
Список отображается из массива

 items: [
        {
          image: "./images/spokanepowerstroke.jpg",
          title: "Spokane Power Stroke",
          link: "/powerstroke",
        },
       ...
      ]    
  
 <Col md="auto">
      {this.state.items.map(({ title, image, link }) => (
        <motion.div className="thumbnail" variants={thumbnailVariants}>
          {" "}
          <motion.div 
          key={title}
            className="frame"
            whileHover="hover"
            variants={frameVariants}
            transition={transition}
          >
            <p className="projectstitle">{title}</p>
            <Link to={link}>
              <motion.img
                src={image}
                alt={image}
                variants={imageVariants}
                transition={transition}
              />
            </Link>
          </motion.div>
        </motion.div>
      ))}
</Col>
    
  

А эффекты наведения и перехода управляются движением фреймера.

 const transition = { duration: 0.5, ease: [0.43, 0.13, 0.23, 0.96] };

const thumbnailVariants = {
  initial: { scale: 0.9, opacity: 0 },
  enter: { scale: 1, opacity: 1, transition },
  exit: {
    scale: 0.5,
    opacity: 0,
    transition: { duration: 1.5, ...transition },
  },
};

const frameVariants = {
  hover: { scale: 0.95 },
};

const imageVariants = {
  hover: { scale: 1.1 },
};
const changepage = {
  in: {
    opacity: 1,
  },
  out: {
    opacity: 0,
  },
};
const pagetransition = {
  duration: 1.5,
};
  

Я просмотрел свой код и не нашел причин, по которым изображения загружаются только частично.
Веб-сайт доступен для просмотра здесь Веб-сайт
И репозиторий Github со всем кодом находится здесь, на Github
(страница проектов)

Заранее благодарю вас за ваш опыт.

Ответ №1:

В вашем App.css коде измените это: .thumbnail img { width: 46vw; height: 100%; }

Для height:auto;

% высоты обычно растягивают / искажают изображение, если вы хотите сохранить соотношение сторон auto

также, возможно, установка width amp; height для элемента img в вашем коде может помочь предотвратить проблемы с размерами, потому что прямо сейчас браузер не знает, насколько велико изображение на самом деле, и поскольку оно загружается через React JS, а не в HTML, который был первым, он, вероятно, не сможет его вычислить, пока анимация наведения не заставитперерисовка.