我非常接近实现我的目标。我正在尝试使用jQuery创建从左到右显示的图像。如果查看我的fiddle example,将会看到从左到右出现一条波浪线。还有一条第二条波浪线从左向右延伸。
我想删除从左向右延伸的波浪线,但保持从左向右平滑显示的波浪线
有人能帮我吗?
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> - jsFiddle demo</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.js"></script>
<style type="text/css">
body {
background-color: #003366;
margin: 0;
}
#myImg
{
top: 0px;
width:0px;
height:200px;
position:absolute;
left:0px;
background-image:url('http://www.tankten.com/codeimages/richtestslide2.png');
background-repeat:no-repeat;
opacity: 0.5;
z-index: 100;
}
#graphoverlaylines {
position:absolute;
left: 0px;
top: 0px;
z-index: 300;
}
#waveline {
top: 0px;
width:0px;
height: 200px;
position:absolute;
left: 0px;
background-image:url('http://www.tankten.com/codeimages/waveline.png');
background-repeat:no-repeat;
z-index: 250;
}
#baloon { width:381px; height:50px; position:absolute; left:0px; top:150px; z-index: 200;}
#baloon2 { width:381px; height:50px; position:absolute; left:0px; top:100px; z-index: 200;}
#baloon3 { width:381px; height:50px; position:absolute; left:0px; top:50px; z-index: 200;}
</style>
<script type="text/javascript">
$(function(){
$(document).ready(function() {
repeat();
});
function repeat()
{
$("#myImg").animate({
top: '0px',
width: '328px',
height: '200px'
}, 6000,repeat);
$("#myImg").fadeOut(1000);
$("#myImg").animate({
top: '0px',
width:'0px',
height: '200px',
}, 0);
$("#myImg").fadeIn(10);
}
});
$(function(){
$(document).ready(function() {
repeat2();
});
function repeat2()
{
$("#waveline").animate({
top: '0px',
width: '380px',
height: '200px'
}, 6000,repeat2);
$("#myImg").fadeOut(1000);
$("#waveline").animate({
top: '0px',
width:'0px',
height: '200px',
}, 10);
$("#waveline").fadeIn(100);
}
});
</script>
</head>
<body>
<div>
<img id="waveline" src="http://www.tankten.com/codeimages/waveline.png">
</div>
<div>
<img id="myImg" src="http://www.tankten.com/codeimages/richtestslide2.png">
</div>
<div>
<img id="graphoverlaylines" src="http://www.tankten.com/codeimages/graphoverlaylines.png">
</div>
<div id="baloon3"><img src="http://www.tankten.com/codeimages/richtest3.png" width="381" height="50px" /></div>
<div id="baloon2"><img src="http://www.tankten.com/codeimages/richtest2.png" width="381" height="50px" /></div>
<div id="baloon"><img src="http://www.tankten.com/codeimages/richtest.png" width="381" height="50px" /></div>
</body>
</html>
最佳答案
jQuery不需要实现这一点,仅CSS就能做到这一点。
通过在其上应用div
并将其overflow: hidden
从width
动画化为0
(图像的宽度),可以使用CSS 381px
将父级@keyframes
用作蒙版。
body {
background-color: #003366;
margin: 0;
}
#myImg {
top: 0px;
width: 0px;
height: 200px;
position: absolute;
left: 0px;
background-image: url('http://www.tankten.com/codeimages/richtestslide2.png');
background-repeat: no-repeat;
opacity: 0.5;
z-index: 100;
}
#graphoverlaylines {
position: absolute;
left: 0px;
top: 0px;
z-index: 300;
}
#waveline-container {
position: relative;
width: 0;
height: 200px;
overflow: hidden;
-webkit-animation: leftToRight 3s ease-in infinite;
animation: leftToRight 3s ease-in infinite;
}
#waveline {
top: 0px;
height: 200px;
position: absolute;
left: 0px;
background-image: url('http://www.tankten.com/codeimages/waveline.png');
background-repeat: no-repeat;
z-index: 250;
}
#baloon {
width: 381px;
height: 50px;
position: absolute;
left: 0px;
top: 150px;
z-index: 200;
}
#baloon2 {
width: 381px;
height: 50px;
position: absolute;
left: 0px;
top: 100px;
z-index: 200;
}
#baloon3 {
width: 381px;
height: 50px;
position: absolute;
left: 0px;
top: 50px;
z-index: 200;
}
@-webkit-keyframes leftToRight {
from {
width: 0;
}
to {
width: 381px;
}
}
@keyframes leftToRight {
from {
width: 0;
}
to {
width: 381px;
}
}
<div id="waveline-container">
<img id="waveline" src="http://www.tankten.com/codeimages/waveline.png">
</div>
<div>
<img id="myImg" src="http://www.tankten.com/codeimages/richtestslide2.png">
</div>
<div>
<img id="graphoverlaylines" src="http://www.tankten.com/codeimages/graphoverlaylines.png">
</div>
<div id="baloon3">
<img src="http://www.tankten.com/codeimages/richtest3.png" width="381" height="50px" />
</div>
<div id="baloon2">
<img src="http://www.tankten.com/codeimages/richtest2.png" width="381" height="50px" />
</div>
<div id="baloon">
<img src="http://www.tankten.com/codeimages/richtest.png" width="381" height="50px" />
</div>