2012-06-01 7 views
0

나는 3 차원으로이 웹 사이트 http://www.asianimedia.com/JQuery와 3D 반지

과 동일하지만 JQuery와에 필요한 효과, 그리고 플래시를하고 싶어.

나는 내가 비슷한 일을 할 수있는이 라이브러리를 사용하여, JQUERY 3D 엔진을 시도,하지만 내가

사람이 그것을 어떻게 말해 줄 수있는이 순간에 그것을 할 질수있는 99 % 동일해야합니까? 또는이 난 현재, 그래서 그냥 (꽤 호환되어야 의미, 더 CSS를 변환) jQuery를 사용하지 않고, http://www.devirtuoso.com/2009/09/3d-plane-for-jquery-3d-engine/

+0

단순히 CSS3 전환을 사용할 수 있으므로 추가 라이브러리가 필요하지 않습니다. 그들 주위의 많은 정보가 있어야합니다! :) 유일한 단점은 사용하는 3D 엔진으로 해결할 수있는 IE의 약간의 지원 부족입니다 – Andy

+0

그런데, 당신은 당신이 99 % 같은 것을 필요로한다고 말합니다. 개선하거나 수정해야 할 것은 무엇입니까? – Andy

+0

becoz 클라이언트는 플래시 대신 js가 필요하며 플래시 소스는 손실되고 플래시의 경로는 하드 코드 – user192344

답변

2

확인을 사용하여 3D 엔진, 내가 왔어요되어 더 나은 3D 라이브러리

이있다 다음과 :

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); 
}​ 

그것은 너무 분명 당신의 필요에 맞게 싶어, 조금 거칠고 준비. 효과적으로, 각 단계에서 중앙 div 주변의 작은 div를 증가시키고 재배치하는 커스텀 jQuery 애니메이션을 생성합니다. 그들이 절반 정도라면 z 지수가 변경되어 깊이의 환상을 만듭니다.

좀 더 사실적으로 보이게하려면 글꼴에 얼마나 가까운 지에 따라 div의 크기를 조정할 수 있습니다.

이 정보가 도움이됩니까?

좀 더 자세한 설명을 원하면 알려주세요. :) 따!

+0

덕분에, 논리를 이해하지만, 반지의 각도가 내가 원하는 하나가 아니기 때문에 그것은 나를 위해 적합하지 않은 것, 난 내 참조와 같은 99 % 경로가 필요합니다 링크 – user192344

+0

각도가 약간 같아서 약간 더 비뚤어 질 수 있습니다. 자신을 구현하는 것이 어렵지 않을 것이라고 확신합니다. 수학을 약간 변경해야합니다! :) 나는 당신이 당신에게 완벽한 솔루션을 제공하는 사람을 얻지는 않을 것이라고 생각합니다. 이것은 '코딩과 도움이되는'사이트 일 뿐이며, 'give-me-the-answer-and-source- 코드 '사이트 :) – Andy

+0

나는 이미 그것을했다, 각도는 실제로 동일합니다, becoz 내가 플래시 코드를 분해하고 js 코드를 다시, 그것은 동일한 결과를 준다 – user192344