Javascript - 对角剪切图像

Hoa*_*Lam 1 javascript html5 css3

因为我被分配了一个HTML5项目,所以我今天遇到了一个棘手的问题.

该项目包括在倾斜的斜坡上移动图片.我将在下面的图片中证明这一点 演示

正如你所看到的,我想将奥巴马的图片从AB斜坡上的A移动到B. 在移动时,图片被裁剪并受到AB线的限制.线AB实际上是PNG图像的下边缘.

演示

最好的祝福.

dri*_*hev 5

您可以尝试使用一些变换执行此操作:

想法是旋转外部框并包含图像,然后旋转图像.

演示:http://jsbin.com/ozusic/1/edit

CSS:

  @keyframes "move" {
   0% {
      -webkit-transform: translateX(0px) translateY(0px) rotate(10deg);
      -moz-transform: translateX(0px) translateY(0px) rotate(10deg);
      -o-transform: translateX(0px) translateY(0px) rotate(10deg);
      -ms-transform: translateX(0px) translateY(0px) rotate(10deg);
      transform: translateX(0px) translateY(0px) rotate(10deg);
   }
   100% {
      -webkit-transform: translateX(500px) translateY(70px) rotate(10deg);
      -moz-transform: translateX(500px) translateY(70px) rotate(10deg);
      -o-transform: translateX(500px) translateY(70px) rotate(10deg);
      -ms-transform: translateX(500px) translateY(70px) rotate(10deg);
      transform: translateX(500px) translateY(70px) rotate(10deg);
   }

  }

  @-moz-keyframes move {
   0% {
     -moz-transform: translateX(0px) translateY(0px) rotate(10deg);
     transform: translateX(0px) translateY(0px) rotate(10deg);
   }
   100% {
     -moz-transform: translateX(500px) translateY(70px) rotate(10deg);
     transform: translateX(500px) translateY(70px) rotate(10deg);
   }

  }

  @-webkit-keyframes "move" {
   0% {
     -webkit-transform: translateX(0px) translateY(0px) rotate(10deg);
     transform: translateX(0px) translateY(0px) rotate(10deg);
   }
   100% {
     -webkit-transform: translateX(500px) translateY(70px) rotate(10deg);
     transform: translateX(500px) translateY(70px) rotate(10deg);
   }

  }

  @-ms-keyframes "move" {
   0% {
     -ms-transform: translateX(0px) translateY(0px) rotate(10deg);
     transform: translateX(0px) translateY(0px) rotate(10deg);
   }
   100% {
     -ms-transform: translateX(500px) translateY(70px) rotate(10deg);
     transform: translateX(500px) translateY(70px) rotate(10deg);
   }

  }

  @-o-keyframes "move" {
   0% {
     -o-transform: translateX(0px) translateY(0px) rotate(10deg);
     transform: translateX(0px) translateY(0px) rotate(10deg);
   }
   100% {
     -o-transform: translateX(500px) translateY(70px) rotate(10deg);
     transform: translateX(500px) translateY(70px) rotate(10deg);
   }

  }

  img {
      height: 100px;
      width: 100px;
      position: absolute;

      -webkit-animation: 5s move infinite;
      -moz-animation: 5s move infinite;
      -ms-animation: 5s move infinite;
      -o-animation: 5s move infinite;
      animation: 5s move infinite;
      z-index: -1;
  }

  div.box {
      margin-top: 50px;
      height: 150px;
      border: 3px solid black;

      -webkit-transform: rotate(-10deg);
      -moz-transform: rotate(-10deg);
      -o-transform: rotate(-10deg);
      -ms-transform: rotate(-10deg);
      transform: rotate(-10deg);
      overflow: hidden;
  }
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class='box'>
   <img src='http://www.biography.com/imported/images/Biography/Images/Profiles/O/Barack-Obama-12782369-2-402.jpg' />
</div>
Run Code Online (Sandbox Code Playgroud)