当我分配HTML5项目时,我遇到了一个棘手的问题。
该项目包括在倾斜的斜坡上移动图片。我将在下面的图片中证明这一点
正如你所看到的,我想把奥巴马的照片从AB斜坡上的A移动到B.在移动时,图像被裁剪并受到AB线的限制。 AB线实际上是PNG图像的下边缘。
最好的问候。
答案 0 :(得分: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;
}
HTML:
<div class='box'>
<img src='http://www.biography.com/imported/images/Biography/Images/Profiles/O/Barack-Obama-12782369-2-402.jpg' />
</div>
答案 1 :(得分:2)
这是HTML和CSS设置:
#TheImage{
position:absolute;
top:100px;
left:20px;
z-index:1;}
#TheTriangle{
width: 0px;
height: 0px;
border-top: 200px solid transparent;
border-bottom: 0px solid transparent;
border-right: 800px solid blue;
top:100px;
left:15px;
position:absolute;
z-index:2;}
<img id="TheImage" src="http://placekitten.com/200/200" />
<div id="TheTriangle"></div>
您可以在此处查看 jsFiddle 现在,您只需调整尺寸,将三角形更改为白色并使用jQuery的.animate()
功能改变图像的左侧位置:只需几行代码。由于这是你的作业,我认为最好暂时把它留在这里,并在你挣扎了一下之后再回来......这是一个非常好的家庭作业问题BTW。
这里的javascript使其与jsFiddle一起使用:
$(document).ready(function () {
setTimeout(function () {
$('#TheImage').animate({'left':600}, 2000);
}, 1000);
});