基本上我看到了这个页面这个页面,如果你向上和向下滚动,你会看到一杯饮料变得满了,空的取决于你的滚动条所在的位置。知道这是怎么做到的吗?
问问题
1198 次
2 回答
2
它实际上是一张背景位置发生变化的图像。当您最初看到玻璃时,图像已完全加载。
http://www.smokeybones.com/static/img/tv/beer_sprite_lrg.jpg?e3e4e50f54ea
于 2012-10-05T21:25:22.887 回答
2
做这样的事情非常复杂,但并不是特别难。
首先,您需要使用 jQuery 之类的东西来管理它。你已经这么好了...
下面的 html 是一个假设用户有图像的工作示例:
它是 700 x 100。代码非常简单。对窗口的 scrollTop() 值进行四舍五入,并根据结果计算正确的帧偏移量。无需解释,下面的代码说明了一切。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Test</title>
<meta name="viewport" content="width=device-width">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
</head>
<style>
#main{position:relative;}
.dummy{height:500px;}
#glass{
height:200px;
width:100px;
background:url(http://www.hep-g.com/glass.jpg) no-repeat;
background-position:0 0;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
var frame = 0;
$(window).scroll(function(){
if($(window).scrollTop() % 100 < 10)
frame = Math.floor($(window).scrollTop() / 100) * 100;
if(frame > 700)
frame = 700;
$('#glass').css('background-position', '-' + frame + 'px 0');
});
});
</script>
<body>
<div id="main">
<section class="dummy">
This is dummy content
</section>
<section id="glass"></section>
<section class="dummy">
This is dummy content
</section>
<section class="dummy">
This is dummy content
</section>
</div>
</body>
</html>
于 2012-10-05T21:30:34.593 回答