我想做一个3D效果,就像这个网站的http://www.asianimedia.com/
但我需要它在jquery中,而不是在flash中。
我已经尝试过JQUERY 3D引擎,通过使用这个库,我可以做类似的事情,但我需要99%的相同,但我现在不能这样做
有人能告诉我怎么做吗?或者有更好的3D库
这是我目前使用的http://www.devirtuoso.com/2009/09/3d-plane-for-jquery-3d-engine/ 3D引擎
发布于 2012-06-01 16:25:31
好的,只要使用jQuery (没有css转换,这意味着它应该是非常兼容的),我想出了以下几点:
http://jsfiddle.net/andyc/ZncP6/
var numOfBoxes = 10;
var boxContainer = $(".boxcontainer");
var gap = 360 / (numOfBoxes);
for (var i = 0; i < numOfBoxes; i++) {
$("<div>").attr("data-offset", (gap * i)).addClass("box").appendTo(boxContainer);
}
$(".box").each(function() {
var box = $(this);
positionBox(box, 0);
});
$({position: 0}).animate({position: 360}, {
duration: 4000,
step: function() {
var currentPosition = this.position;
console.log(currentPosition);
$(".box").each(function() {
var box = $(this);
positionBox(box, currentPosition);
});
}
});
function positionBox(box, position) {
var newPosition = position + box.data("offset");
var newRadianPosition = convertToRadians(newPosition);
var x = Math.cos(newRadianPosition) * 200 + 200;
var y = Math.sin(newRadianPosition) * 100 + 200;
var absolutePosition = newPosition % 360;
if (absolutePosition > 180) {
box.css("z-index", "0");
}
else {
box.css("z-index", "");
}
// Could scale the size of the item here as well as position
box.css("top", y + "px").css("left", x + "px");
}
function convertToRadians(degrees) {
return degrees * (3.14159265 / 180);
}它有点粗糙和准备好了,所以显然你会想要根据你的需求来定制它。实际上,它所做的是创建一个自定义的jQuery动画,每一步都会递增并重新定位中心div周围的小div。如果他们在半路上,它的z索引被改变,创造了深度的错觉。
如果你想让它看起来更逼真一点,你可以根据它们与字体的距离来调整div的大小。
这有帮助吗?
如果你需要更多的解释,请告诉我!:) Ta!
https://stackoverflow.com/questions/10845633
复制相似问题