MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    jumping of modules

    Scheduled Pinned Locked Moved Troubleshooting
    23 Posts 3 Posters 16.2k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K Offline
      kclemen
      last edited by kclemen

      Hi,

      When using the hide/show function the new function jumps from the bottom to the top.
      Rather difficult to explain, but I made a movie about it. Sorry for the moving around…

      Youtube, jumping of modules.

      What would be a solution to immediately show the new module on the top?

      tidus5T 1 Reply Last reply Reply Quote 0
      • tidus5T Offline
        tidus5 @kclemen
        last edited by

        @kclemen not sure im right

        but are you using the hide() show() ?
        from your own module ?

        1 Reply Last reply Reply Quote 0
        • K Offline
          kclemen
          last edited by

          The code I’m using is in my “skywriter” module:

          Module.register("MMM-skywriter",{
          	
          	// Default module config.
          	defaults: {
          		gesture_up: 0,
          		gesture_right: 0,
          		
          	},
          
          	// Override socket notification handler.
          	socketNotificationReceived: function(notification, payload) {
          		if (notification === "gesture_observed"){
          			
          			console.log ("socketnotificationreceived.");
          		
          			//self.sendNotification(notification, payload);
          			
          			if (payload === "up"){
          				if (this.config.gesture_up == 0) {
          						
          						MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
          							module.hide(1000, function() {
          								Log.log(module.name + ' is hidden.');
          							});
          						});
          				
          						MM.getModules().withClass("class_up_1_show").enumerate(function(module) {
          							module.show(1000, function() {
          								Log.log(module.name + ' is shown.');
          							});
          						});
          						
          						this.config.gesture_up = this.config.gesture_up+1;
          						console.log (this.config.gesture_up);
          
          						console.log("gesture_up is nu 1");
          				}
          				else if (this.config.gesture_up == 1) {
          						this.config.gesture_up = this.config.gesture_up+1;
          						console.log (this.config.gesture_up)
          						console.log("gesture_up is nu 2");
          				}
          			}
          			else if (payload === "left"){
          				console.log("test - left");
          			}
          			else if (payload === "down") {
          				console.log("test - down");
          				
          				if (this.config.gesture_up == 1){
          					this.config.gesture_up = this.config.gesture_up-1;
          					
          					MM.getModules().withClass("class_up_1_show").enumerate(function(module) {
          						module.hide(1000, function() {
          							Log.log(module.name + ' is hidden by gesture.');
          						});
          					});
          					
          					MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
          							module.show(1000, function() {
          								
          								
          								
          								Log.log(module.name + ' is hidden.');
          							});
          						});
          					
          				}
          				else if (this.config.gesture_up == 2){
          					this.config.gesture_up = this.config.gesture_up-1;
          					console.log("gesture up is terug 1");
          				}
          			}
          		}
          	},
          	
          	notificationReceived: function(notification, payload, sender) {
          		if (notification === 'DOM_OBJECTS_CREATED') {
          			MM.getModules().exceptWithClass("default").enumerate(function(module) {
          				module.hide(1000, function() {
          					Log.log('Module is hidden.');
          				});
          			});
          		}
          	},
          	
          	start: function() {
          		this.current_user = null;
          		this.sendSocketNotification('CONFIG', this.config);
          		Log.info('Starting module: ' + this.name);
          	}
          	
          });
          
          1 Reply Last reply Reply Quote 0
          • tidus5T Offline
            tidus5
            last edited by tidus5

            @kclemen
            what’s the position of your module in the config?
            2 différents zone ?

            K 1 Reply Last reply Reply Quote 0
            • K Offline
              kclemen @tidus5
              last edited by

              @tidus5, No they have the same zone: position: ‘top_right’,

              tidus5T 1 Reply Last reply Reply Quote 0
              • tidus5T Offline
                tidus5 @kclemen
                last edited by

                @kclemen so if i understand correctly the problem is because the second module move when you hide the first one ?

                as far as i understand the module - if you have 2 module in the same zone and you hide one the other take the free space

                maybe if you change the second one from “top_right” to an other zone ?

                tidus5T 1 Reply Last reply Reply Quote 0
                • tidus5T Offline
                  tidus5 @tidus5
                  last edited by tidus5

                  @kclemen or is it the small latency when your module is hide ?

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    kclemen
                    last edited by

                    The problem is that the second module comes in the screen before the first one is completely hided I geuss? Or what do you mean with the latency of the module?

                    tidus5T 2 Replies Last reply Reply Quote 0
                    • tidus5T Offline
                      tidus5 @kclemen
                      last edited by

                      @kclemen ok ok i understand now

                      1 Reply Last reply Reply Quote 0
                      • tidus5T Offline
                        tidus5 @kclemen
                        last edited by

                        @kclemen

                        if you try

                        module.hide(500, instead of 1000?

                        1 Reply Last reply Reply Quote 0
                        • K Offline
                          kclemen
                          last edited by

                          Needed to change it to the following:

                          hide: 100
                          show: 7000

                          This works for the first gesture “up”. If I repeat the same for going back to the first “page” the module flips for a second back to the lower position, before it fades away. Because the time is set to 7000 the fade becomes slow.

                          Should I put a wait between hide and show? How?

                          tidus5T 1 Reply Last reply Reply Quote 0
                          • tidus5T Offline
                            tidus5 @kclemen
                            last edited by

                            @kclemen
                            http://api.jquery.com/delay/

                            delay()?

                            1 Reply Last reply Reply Quote 0
                            • K Offline
                              kclemen
                              last edited by

                              I thought that version 2 of the mirror did not use jquery anymore?

                              tidus5T 1 Reply Last reply Reply Quote 0
                              • tidus5T Offline
                                tidus5 @kclemen
                                last edited by

                                @kclemen i didnt know -_-

                                with css ?

                                K 1 Reply Last reply Reply Quote 0
                                • K Offline
                                  kclemen @tidus5
                                  last edited by

                                  @tidus5, how do you mean with css?

                                  1 Reply Last reply Reply Quote 0
                                  • tidus5T Offline
                                    tidus5
                                    last edited by

                                    i know you can play with CSS and hide/show but not a pro :s

                                    http://www.w3schools.com/js/js_timing.asp ?

                                    K 1 Reply Last reply Reply Quote 0
                                    • K Offline
                                      kclemen @tidus5
                                      last edited by

                                      @tidus5 Will check it tomorrow. Thanks for all of your input so far!

                                      tidus5T 1 Reply Last reply Reply Quote 0
                                      • tidus5T Offline
                                        tidus5 @kclemen
                                        last edited by

                                        @kclemen you are welcome :-)

                                        let me know if that works

                                        1 Reply Last reply Reply Quote 0
                                        • K Offline
                                          kclemen
                                          last edited by

                                          @MichMich, Could it be that this is a “fault” in the system?

                                          1 Reply Last reply Reply Quote 0
                                          • K Offline
                                            kclemen
                                            last edited by kclemen

                                            Adding setTimeout works for the gesture up, so hiding the defaultclass. But it does not work to show the defaultclass again with gesture down. Then the screen stays black. Removal of the 2nd setTimeout results back in showing the fefaultclass again. Is it possible that it is not possible to use 2 times setTimeout in the same file or so???

                                            Module.register("MMM-skywriter",{
                                            	
                                            	// Default module config.
                                            	defaults: {
                                            		gesture_up: 0,
                                            		gesture_right: 0,
                                            		
                                            	},
                                            
                                            	// Override socket notification handler.
                                            	socketNotificationReceived: function(notification, payload) {
                                            		if (notification === "gesture_observed"){
                                            			
                                            			console.log ("socketnotificationreceived.");
                                            		
                                            			//self.sendNotification(notification, payload);
                                            			
                                            			if (payload === "up"){
                                            				if (this.config.gesture_up == 0) {
                                            						
                                            						MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
                                            							module.hide(1000, function() {
                                            								Log.log(module.name + ' is hidden.');
                                            							});
                                            						});
                                            						
                                            						setTimeout(function() {
                                            								MM.getModules().withClass("class_up_1_show").enumerate(function(module) {
                                            									module.show(1000, function() {
                                            										Log.log(module.name + ' is shown.');
                                            									});
                                            								});
                                            						}, 1000);		
                                            								this.config.gesture_up = this.config.gesture_up+1;
                                            
                                            								console.log("gesture_up is nu 1");
                                            						
                                            				}
                                            				else if (this.config.gesture_up == 1) {
                                            						this.config.gesture_up = this.config.gesture_up+1;
                                            						console.log (this.config.gesture_up)
                                            				}
                                            			}
                                            			else if (payload === "left"){
                                            				console.log("test - left");
                                            			}
                                            			else if (payload === "down") {
                                            				if (this.config.gesture_up == 1){
                                            					MM.getModules().withClass("class_up_1_show").enumerate(function(module) {
                                            						module.hide(1000, function() {
                                            							Log.log(module.name + ' is hidden by gesture.');
                                            						});
                                            					});
                                            					
                                            				//	setTimeout(function() {
                                            						MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
                                            							module.show(1000, function() {
                                            								Log.log(module.name + ' is hidden.');
                                            								});
                                            							});
                                            				//	}, 1000);
                                            					this.config.gesture_up = this.config.gesture_up-1;
                                            					console.log("test - down");
                                            				}
                                            				else if (this.config.gesture_up == 2){
                                            					this.config.gesture_up = this.config.gesture_up-1;
                                            					console.log("gesture up is terug 1");
                                            				}
                                            			}
                                            		}
                                            	},
                                            	
                                            	notificationReceived: function(notification, payload, sender) {
                                            		if (notification === 'DOM_OBJECTS_CREATED') {
                                            			MM.getModules().exceptWithClass("default").enumerate(function(module) {
                                            				module.hide(1000, function() {
                                            					Log.log('Module is hidden.');
                                            				});
                                            			});
                                            		}
                                            	},
                                            	
                                            	start: function() {
                                            		this.current_user = null;
                                            		this.sendSocketNotification('CONFIG', this.config);
                                            		Log.info('Starting module: ' + this.name);
                                            	}
                                            	
                                            });
                                            
                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy