Durandal transition slow on android

zewa666

I'm going to develop a hybrid App using Phonegap + Durandal. So far I'm developing a classic Webapp and planing to do the switch to hybrid as soon as I'm satisfied with the feature set of the app.

I realized so far that the transitions Durandal is executing when switching from one view to another are pretty sloppy and non-fluid when using my Nexus 4 or Nexus 7 Tablet.

Does anyone have an idea how to speed it up? The final option will be to turn of transitions at all but that would be pretty sad =(

Update: Ok found out that e.g. entrance.js seems to use Javascript Animations instead of CSS3 animations. guess thats where to start fixing

Florim Maxhuni

I did use this library: css3 transit is much faster that default

and change the entrance.js (probably you need to adapt for you but this worked for me)

define(['../system'], function(system) {
var fadeOutDuration = 100;

var entrance = function(parent, newChild, settings) {
    return system.defer(function(dfd) {
        function endTransition() {
            dfd.resolve();
        }

        function scrollIfNeeded() {
            if (!settings.keepScrollPosition) {
                $(document).scrollTop(0);
            }
        }

        if (!newChild) {
            scrollIfNeeded();

            if (settings.activeView) {
                $(settings.activeView).transition({
                      opacity: 1,
                      scale: 0.3,
                      duration: duration,
                      easing: 'in',
                      complete: function(){
                        $(settings.activeView).css('display' ,'none');
                            if (!settings.cacheViews) {
                                ko.virtualElements.emptyNode(parent);
                            }
                            endTransition();
                        }
                    });


            } else {
                if (!settings.cacheViews) {
                    ko.virtualElements.emptyNode(parent);
                }
                endTransition();
            }
        } else {
            var $previousView = $(settings.activeView);
            var duration = settings.duration || 500;

            function startTransition() {
                scrollIfNeeded();

                if (settings.cacheViews) {
                    if (settings.composingNewView) {
                        ko.virtualElements.prepend(parent, newChild);
                    }
                } else {
                    ko.virtualElements.emptyNode(parent);
                    ko.virtualElements.prepend(parent, newChild);
                }

                var startValues = {
                    //marginLeft: '90%',
                    //marginRight: '-20px',
                    opacity: 0,
                    scale: 0.3,
                    display: 'block'
                };

                var endValues = {
                    //marginRight: 0,
                    //marginLeft: 0,
                    opacity: 1,
                    scale: 1
                };
                $(newChild).page();
                $(newChild).trigger('create');
                $(newChild).css(startValues);
                $(newChild).transition(
                    {
                      marginRight: 0,
                      marginLeft: 0,
                      opacity: 1,
                      scale: 1,
                      duration: duration,
                      easing: 'in',
                      complete: endTransition
                    });
                    //startValues,500, 'ease');
                //$(newChild).transition(endValues, duration, 'swing', endTransition);
                //$(newChild).transition({ opacity: 0.1, scale: 0.3 }, 500, 'in', function() {..});
                //endTransition();
            }

            if ($previousView.length) {
                $previousView.transition({
                      opacity: 0,
                      scale: 0.3,
                      duration: 500,
                      easing: 'in',
                      complete: function(){
                          $previousView.css('display' ,'none');
                          startTransition();
                      }
                });

                //$('.news').css('display','none');

                //$previousView.fadeOut(fadeOutDuration, startTransition);
            } else {
                startTransition();
            }
        }
    }).promise();
};

return entrance;

});

sorry for my bad English.

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PagerAdapter slow in first transition

分類Dev

Android webview slow

分類Dev

Slow Android Studio compilation

分類Dev

How do i make a slow transition for something that you cannot animate?

分類Dev

make background transition fast on focus/active click but slow on release

分類Dev

Gson slow in Android Studio debugger

分類Dev

Android Parse Push Notifications is Slow?

分類Dev

Will my app be slow on a device if it's slow on my Android Studio emulator?

分類Dev

How to detect Daylight Saving Time transition in android

分類Dev

Android lollipop shared elements transition blink / flash

分類Dev

Android Kotlin Gson Slow Json Deserialization

分類Dev

Why My Android Webview Is So Slow

分類Dev

Using Durandal Composition manually

分類Dev

Durandal knockout array undefined

分類Dev

Durandal function is undefined

分類Dev

Android Google Geofencing transition jumps even device is not moving

分類Dev

how to remove default animation transition when using navigation component in Android?

分類Dev

Android Studio transition and using sub libraries / sharing libraries

分類Dev

java.lang.ClassCastException:android.support.transition.Fadeをandroid.transition.Transitionにキャストできませんか?

分類Dev

Durandal JS knockout Deferred updates

分類Dev

Hottowel converting to Durandal 2 issue

分類Dev

Long running load operations in durandal

分類Dev

html5 canvas in durandal

分類Dev

Any solution for Android Studio slow gradle build and high disk usage?

分類Dev

Slow nuget vs2017 install packages android

分類Dev

Android Camera Preview Callback slow down We need the constant fps

分類Dev

android studio 1.2.1.1 is running too slow on windows 7

分類Dev

Durandal Load data when view is still loading

分類Dev

Android MotionLayoutの同じ<Transition>でOnSwipeとOnClickを使用できますか?

Related 関連記事

  1. 1

    PagerAdapter slow in first transition

  2. 2

    Android webview slow

  3. 3

    Slow Android Studio compilation

  4. 4

    How do i make a slow transition for something that you cannot animate?

  5. 5

    make background transition fast on focus/active click but slow on release

  6. 6

    Gson slow in Android Studio debugger

  7. 7

    Android Parse Push Notifications is Slow?

  8. 8

    Will my app be slow on a device if it's slow on my Android Studio emulator?

  9. 9

    How to detect Daylight Saving Time transition in android

  10. 10

    Android lollipop shared elements transition blink / flash

  11. 11

    Android Kotlin Gson Slow Json Deserialization

  12. 12

    Why My Android Webview Is So Slow

  13. 13

    Using Durandal Composition manually

  14. 14

    Durandal knockout array undefined

  15. 15

    Durandal function is undefined

  16. 16

    Android Google Geofencing transition jumps even device is not moving

  17. 17

    how to remove default animation transition when using navigation component in Android?

  18. 18

    Android Studio transition and using sub libraries / sharing libraries

  19. 19

    java.lang.ClassCastException:android.support.transition.Fadeをandroid.transition.Transitionにキャストできませんか?

  20. 20

    Durandal JS knockout Deferred updates

  21. 21

    Hottowel converting to Durandal 2 issue

  22. 22

    Long running load operations in durandal

  23. 23

    html5 canvas in durandal

  24. 24

    Any solution for Android Studio slow gradle build and high disk usage?

  25. 25

    Slow nuget vs2017 install packages android

  26. 26

    Android Camera Preview Callback slow down We need the constant fps

  27. 27

    android studio 1.2.1.1 is running too slow on windows 7

  28. 28

    Durandal Load data when view is still loading

  29. 29

    Android MotionLayoutの同じ<Transition>でOnSwipeとOnClickを使用できますか?

ホットタグ

アーカイブ