좋아요. 저는 오늘 여기 도조를 배우려고 노력해 왔으며, 왜 내 요소가 희미 해지지 않는지 알 수 없습니다. 내가 여기서하고있는 일은 json 객체의 이미지 집합을로드하여 DOM에 배치하는 것입니다. 그런 다음 배열과 교대 방법을 사용하여 한 번에 하나씩 사라지기를 원합니다. 이것은 jQuery에서 작성한 작업 플러그인이며 Dojo의 크래시 과정으로 사용하고 있습니다. 이상한 점은 배열을 제거하고 단일 DOM 요소를 대상으로하려고해도 페이드 애니메이션을 전혀 사용할 수 없다는 것입니다. 그러나 예제 중 하나 인 here에서 직접 내 웹 페이지에 붙여 넣을 경우 , 그 작동합니다. 여기 Dojo 페이드 애니메이션이 작동하지 않습니다.
코드입니다 : 하지만 난 그게 Dojo의 AMD 뭔가이어야한다 파악 여기에 전체 코드를 덤핑에 대한define([
"dojo/query", "dojo/dom-class", "dojo/domReady!", "dojo/request", "dojo/json", "dojo/_base/fx", "dojo/on", "dojo/dom-attr", "dojo/dom-style"
],
function(query, domClass, dom, request, fx, on, domAttr){
var images = new Array(); //The array object created from the XML file
var cur_first = 0; //Current first image, used as a counter to determine which images should be shown
var running = true; //Flag to prevent multiple firings or next/prev
var display_num = 4; //Num of images displayed at a time
request.get('../../javascript/json/rotator_images.js',{handleAs:'json'}).then(
function(response){
for(i=0; i < response.images.image.length; i++){
var src = response.images.image[i].src;
var title = response.images.image[i].title;
var desc = response.images.image[i].desc;
var thumb = response.images.image[i].thumb;
images[i]={src: src, title: title, desc: desc, thumb: thumb};
}
load_images();
}
);
function load_images(){
for(i=0; i < images.length; i++){
if(i >= cur_first && i < cur_first+display_num){
dojo.create("div", {
innerHTML:"<a class='fancybox' rel='group' href='"+images[i].src+"'><img src='"+images[i].thumb+"' /></a>",
className:"r_image",
style:{opacity:'0'},
id:"r_image_"+(i+1)
},dojo.byId("images_wrap"));
}
}
display_images();
}
function remainder(){
//Find the remaining images left at the end inside our display_num control so we can determine when to start back at 0 or jump to the end
var flr = Math.floor(images.length/display_num)
return images.length - (flr*display_num);
}
query("#arrow_r").on("click", function(){
if(running == false){
running = true;
if(cur_first < images.length - remainder()){
cur_first = cur_first+display_num;
}else{
cur_first = 0;
}
hide_images();
}
})
query("#arrow_l").on("click", function(){
if(running == false){
running = true;
if(cur_first > 1){
cur_first = cur_first-display_num
hide_images();
}else{
cur_first = images.length - remainder();
hide_images();
}
}
})
function display_images(){
var images_arr = [];
dojo.query(".r_image").forEach(function(node) {
images_arr.push(node);
});
function fadeThemIn(images_arr) {
if (images_arr.length > 0) {
var currentImg = images_arr.shift();
var fadeArgs = {
node: currentImg,
duration: 200,
};
fx.fadeIn(fadeArgs).play();
}else{
running = false;
}
}
fadeThemIn(images_arr)
}
}
);
죄송 AMD 모듈 내가이에 두통을 찾을 수있는 (로드되는 방법 포인트).
많은 의미가 있습니다. 나는 다른 모든 가능성을 거의 다 써 버렸기 때문에 AMD 의존성이 있어야한다는 것을 알았습니다. jQuery에서 약간의 번거 로움을 느끼고 있습니다 만, 많은 트래픽을 처리하는 대규모 웹 응용 프로그램의 경우 즉각적인 장점을 확인할 수 있습니다. 지금 헤더를 다시 쓰고 무슨 일이 일어나는지 보도록하겠습니다. – Throttlehead
예! 효과가 있습니다. 내 부하에게 고맙다. 나에게도이 문제를 해결해 줘서 고마워. 그들은 정말로 나 자신과 같이 머리를 먼저 뛰고 싶어하는 스키머를위한 문서에서 이러한 필요성을 강조해야합니다. – Throttlehead