FadeIn часть фрагмента Ajax с додзё - PullRequest
1 голос
/ 11 июля 2011

Я хочу перезагрузить биты страницы и добавить их части, используя dojo.Теперь проблема в том, что, как только я вставляю innerHTML после его загрузки, все сразу становится видимым.Я попытаюсь объяснить:

function reload(page) {
   var sliderBox = dojo.byId("slider_box");
   var xhrArgs = {
     url: "/myhtmlsnippet.html",
     load: function(data) {
        dojo.fadeOut({
            duration:100,
            node:sliderBox,
            onEnd:function() {
                dojo.byId('slides_container').innerHTML = data;
                dojo.fadeIn({
                    duration:400,
                    node:sliderBox,
                    onEnd:slideRotate()
                }).play();
            }
        }).play();
     }
  }
  var ajax = dojo.xhrGet(xhrArgs);
}

slider_box - это ребенок slides_container.Я хочу исчезнуть slider_box, перезагрузить slides_container с slider_box , оставаясь скрытым , а затем постепенно исчезнуть slider_box.
Я попытался установить slider_box в visibility:hidden через CSS, нотаким образом, он никогда не исчезнет. Итак, кто-нибудь может помочь мне здесь?

1 Ответ

1 голос
/ 11 июля 2011

Сначала вы затушевываете узел #slider_box.Таким образом, его непрозрачность падает до 0.

Затем вы заменяете этот узел каким-либо новым контентом.После инструкции будет #slider_box:

dojo.byId('slides_container').innerHTML = data

, но это будет новый узел, к непрозрачности которого не прикасались.

Таким образом, он полностью виден, и операция fadeIn будетанимируйте его непрозрачность от 1 до 1. Другими словами, он ничего не будет делать.

Вы должны установить непрозрачность на 0 и / или видимость скрытой (не знаю, как работают анимации dojo) сразу после инструкций innerHTML.edit: или лучше, установите непрозрачность равной 0 в вашем html-шаблоне, который вы вызываете.

Кроме того, переменная sliderBox, которую вы передаете в качестве узла: аргумент для fadeIn, относится, как я уже говорил ранее, к узлу, который вы стерзаменив его на свой оператор innerHTML.

Вы должны снова посмотреть на новый узел, как показано ниже:

node:dojo.byId("slider_box"),

В заключение, innerHTML является источником всего зла JavaScript (после того, какконечно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...