使用Javascript以编程方式掀起波澜
问题描述:
这是我目前拥有的 http://jsfiddle.net/6GEfr/
这有效,但我希望它像波浪一样.它应该看起来像实际的波浪,而不是"v"形.您如何逐步做到这一点?
This works but I want it to be like a wave. Rather than a 'v' shape, it should look like an actual wave. How do you gradually do this?
var height = 0;
setInterval(function () {
$('#container').prepend('<div style="height:' + Math.abs(height++) + '%"></div>');
height = (height == 100) ? -100 : height;
}, 10);
我的CSS:
html, body, #outerContainer, #container {
height:100%;
}
#outerContainer {
display : table;
}
#container {
display : table-cell;
vertical-align:bottom;
white-space:nowrap;
}
#container > div {
width:5px;
background:black;
display:inline-block;
}
答
Just use Math.sin()
to model the wave.
var i = 5, height = 0;
setInterval(function () {
$('#container').prepend('<div style="height:' + height + '%"></div>');
i += 0.05;
height = 50 * Math.sin(i) + 50;
}, 10);
如果要使波形更平滑,请减小增量值和元素的宽度.这是一个示例.
If you want to make the wave smoother, decrease the increment value and the width of the elements. Here is an example.