Home > database >  I want it to do the move within a certain time, but it does it immediately
I want it to do the move within a certain time, but it does it immediately

Time:12-27

There is no problem with the code. I just want to set a time for it to do what it's doing more slowly, but I haven't been able to. I've looked at everything on the internet but nothing has changed. I don't know why but the time I defined in transition doesn't work. Thank you everyone in advance

.last-img {

width: 70%;

height: 70%;

shape-outside: polygon(0 0, 100% 0, 100% 100%, 0% 100%);

clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);

float: right;

transition: ease-in-out 1s; }


.last-img:hover {

width: 70%;

height: 70%;

shape-outside: polygon(0 50%, 100% 100%, 100% 0);

clip-path: polygon(0 50%, 100% 100%, 100% 0); }

CodePudding user response:

The paths have to have the same number of vertices to be animatable smoothly rather than discretely. See for example MDN

This simplified snippet transitions the fourth vertex to the same position as the first vertex.

Note - as you hover on the element it changes shape and the cursor may go outside the shape - so the hover condition is removed. This was very noticable when the two middle vertices changed position, as given in the code in the question. For the purposes of this demo, the two middle vertices do not change position.

To prevent this problem you could bring in a containing element and have the hover on that rather than on the shape itself.

body {
  width: 100vw;
  height: 100vh;
}

.last-img {
  width: 70%;
  height: 70%;
  shape-outside: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  float: right;
  transition: ease-in-out 1s;
  background-color: pink;
}

.last-img:hover {
  width: 70%;
  height: 70%;
  shape-outside: polygon(0 50%, 100% 0, 100% 100%, 0 50%);
  clip-path: polygon(0 50%, 100% 0, 100% 100%, 0 50%);
}
<div >
</div>

CodePudding user response:

As I said in the question. The code works but I want it to do it slowly.

.last-img {
  width: 70%;
  height: 70%;
  shape-outside: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  float: right;
  transition: ease-in-out 1s;
}

.last-img:hover {
  width: 70%;
  height: 70%;
  shape-outside: polygon(0 50%, 100% 100%, 100% 0);
  clip-path: polygon(0 50%, 100% 100%, 100% 0);
}
<p>
        Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repudiandae
        ducimus dolores omnis laborum eveniet velit nam doloremque, repellat
        ipsum eligendi perspiciatis sequi esse eaque aliquid optio vero.
        Voluptatibus distinctio officiis ducimus quaerat temporibus nisi nam,
        fuga alias eaque enim adipisci, dicta suscipit iusto at quidem commodi
        debitis! Animi recusandae, veritatis laboriosam dolor doloribus mollitia
        ipsam exercitationem nulla voluptas voluptatum rem dolore culpa deserunt
        consequatur minus facere itaque! Sint cupiditate temporibus, sit maxime
        natus officiis soluta reprehenderit dolore neque, vero, consequatur
        voluptas voluptates laborum aspernatur minima. Fugiat fugit qui,
        perferendis repudiandae maxime illum officia unde. Itaque reprehenderit
        minima fugit totam minus! Lorem ipsum dolor sit, amet consectetur
        adipisicing elit.
        <img
          
          src="https://wallpaperaccess.com/full/3636092.jpg"
          alt="bla bla bla bla"
        />
        Excepturi hic qui perferendis pariatur illum! Repudiandae unde delectus
        commodi quibusdam ducimus molestias, at doloribus quisquam perspiciatis
        nesciunt dolores, laborum labore exercitationem repellendus eos? Minus
        culpa architecto commodi debitis quaerat inventore cumque eveniet dicta
        vitae rem dignissimos harum ipsa voluptatum similique, repellendus nam
        corporis necessitatibus omnis corrupti iure exercitationem magnam ipsum!
        Provident laudantium asperiores rem delectus doloremque iste sit ad
        pariatur. Sed optio ab dolorem rerum saepe, totam doloremque iste dolor
        blanditiis, temporibus alias placeat quis. Dignissimos doloremque labore
        suscipit, exercitationem quam ab minima quas hic voluptatem numquam
        asperiores aliquid excepturi molestiae perferendis assumenda, aspernatur
        voluptates dolor ipsum qui velit consequatur. Enim soluta nostrum nihil
        reiciendis magnam nam minus consectetur quasi voluptates doloremque!
        Molestiae culpa, esse itaque similique consequuntur, aliquam, est
        repudiandae dolore commodi harum illo repellendus fugit sunt ipsa!
        Labore, distinctio vero ipsam accusantium porro natus dignissimos
        sapiente itaque illum odio adipisci quia iure voluptatum maiores odit
        quas, nemo maxime aut unde quo! Deleniti doloremque minus eum quia fugit
        iste dicta praesentium quos libero, illo porro eius! Animi explicabo
        sunt provident quasi saepe repellat? Incidunt autem quidem iusto
        voluptatum dolore architecto similique quis asperiores id, tempora
        possimus quia porro, laboriosam minima!
      </p>

  • Related