Changeset 301 in main


Ignore:
Timestamp:
09/20/11 10:03:21 (8 years ago)
Author:
pcosquer
Message:

navigate: add a new (experimental) navigation activated by a double click

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/openPLM/media/js/navigate.js

    r299 r301  
    146146}); 
    147147 
    148     init(); 
     148 
     149        // double click mode 
     150        var divNav = $("#DivNav"); 
     151        var navigate = $("#Navigate"); 
     152        var OFFSET = 100; 
     153        var timeout = null; 
     154        var move = false; 
     155        function clear_move_event(){ 
     156            if (timeout != null ){ 
     157                window.clearTimeout(timeout); 
     158                timeout = null; 
     159            } 
     160        } 
     161        navigate.mousemove(function (e){ 
     162            if (move){ 
     163                var center_x = navigate.offset().left + navigate.width() / 2;  
     164                var center_y = navigate.offset().top + navigate.height() / 2; 
     165                var vx = (center_x - e.pageX); 
     166                var vy = (center_y - e.pageY); 
     167                clear_move_event(); 
     168                if ((Math.abs(vx) > OFFSET || Math.abs(vy) > OFFSET)){ 
     169                    var f = function(count){ 
     170                        if (count > 0){ 
     171                            divNav.css({left: '+=' + (vx * 0.03)  + "px", 
     172                                top: "+=" + (vy  * 0.03) + "px"}); 
     173                            timeout = window.setTimeout(f, 20, count-1); 
     174                        } 
     175                        }; 
     176                    f(40); 
     177                    } 
     178                } 
     179            } 
     180        ); 
     181 
     182        navigate.dblclick(function(evt){ 
     183            clear_move_event(); 
     184            if (evt.button == 0){ 
     185                move = ! move; 
     186            } 
     187            else { 
     188                move = false; 
     189            } 
     190 
     191        }); 
     192        navigate.mouseleave(function (){ 
     193                clear_move_event(); 
     194                } ); 
     195 
     196        init(); 
    149197}); 
Note: See TracChangeset for help on using the changeset viewer.