| | 743 | $( window ).on( 'touchstart.wp-responsive', function( e ) { |
| | 744 | var touches = e.originalEvent.touches, |
| | 745 | touch, |
| | 746 | winWidth = Math.max( window.innerWidth, document.documentElement.clientWidth ); |
| | 747 | |
| | 748 | // if it's multi touch bail |
| | 749 | if ( 1 !== touches.length ) { |
| | 750 | return; |
| | 751 | } |
| | 752 | |
| | 753 | touch = touches[0]; |
| | 754 | console.log( touch ); |
| | 755 | |
| | 756 | // start swipe interaction |
| | 757 | wpTouchMenu.started = true; |
| | 758 | wpTouchMenu.startX = touch.clientX; |
| | 759 | wpTouchMenu.startY = touch.clientY; |
| | 760 | } ); |
| | 761 | |
| | 762 | $( window ).on( 'touchmove.wp-responsive', function( e ) { |
| | 763 | var touches, touch; |
| | 764 | // if it didn't qualify for potential menu |
| | 765 | // open bail |
| | 766 | if ( ! wpTouchMenu.started ) { |
| | 767 | return; |
| | 768 | } |
| | 769 | |
| | 770 | touches = e.originalEvent.changedTouches; |
| | 771 | |
| | 772 | // no multitouch |
| | 773 | if ( 1 !== touches.length ) { |
| | 774 | wpTouchMenu.started = false; |
| | 775 | wpTouchMenu.startX = 0; |
| | 776 | wpTouchMenu.startY = 0; |
| | 777 | return; |
| | 778 | } |
| | 779 | |
| | 780 | touch = touches[0]; |
| | 781 | |
| | 782 | // cancel open/close if we're not going in the right direction |
| | 783 | if ( |
| | 784 | ( ! wpTouchMenu.rtl && ! wpTouchMenu.open && touch.clientX <= wpTouchMenu.startX ) || |
| | 785 | ( ! wpTouchMenu.rtl && wpTouchMenu.open && wpTouchMenu.startX <= touch.clientX ) || |
| | 786 | ( wpTouchMenu.rtl && ! wpTouchMenu.open && wpTouchMenu.startX <= touch.clientX ) || |
| | 787 | ( wpTouchMenu.rtl && wpTouchMenu.open && touch.clientX <= wpTouchMenu.startX ) |
| | 788 | ) { |
| | 789 | wpTouchMenu.started = false; |
| | 790 | wpTouchMenu.startPosition = 0; |
| | 791 | return; |
| | 792 | } |
| | 793 | |
| | 794 | wpTouchMenu.tracking = true; |
| | 795 | } ); |
| | 796 | |
| | 797 | $( window ).on( 'touchend.wp-responsive', function( e ) { |
| | 798 | var touches = e.originalEvent.changedTouches, |
| | 799 | touch, |
| | 800 | movedX = 0, |
| | 801 | movedY = 0; |
| | 802 | |
| | 803 | // only process if we're tracking and it's not multi touch |
| | 804 | if ( ! wpTouchMenu.tracking || 1 !== touches.length ) { |
| | 805 | wpTouchMenu.started = false; |
| | 806 | wpTouchMenu.startX = 0; |
| | 807 | wpTouchMenu.startY = 0; |
| | 808 | wpTouchMenu.tracking = false; |
| | 809 | return; |
| | 810 | } |
| | 811 | |
| | 812 | touch = touches[0]; |
| | 813 | // calculate how far along the x axis has been moved |
| | 814 | if ( wpTouchMenu.rtl ) { |
| | 815 | if ( wpTouchMenu.open ) { |
| | 816 | movedX = touch.clientX - wpTouchMenu.startX; |
| | 817 | } else { |
| | 818 | movedX = wpTouchMenu.startX - touch.clientX; |
| | 819 | } |
| | 820 | } else { |
| | 821 | if ( wpTouchMenu.open ) { |
| | 822 | movedX = wpTouchMenu.startX - touch.clientX; |
| | 823 | } else { |
| | 824 | movedX = touch.clientX - wpTouchMenu.startX; |
| | 825 | } |
| | 826 | } |
| | 827 | |
| | 828 | // calculate y axis movement this should always be positive |
| | 829 | if ( touch.clientY < wpTouchMenu.startY ) { |
| | 830 | movedY = wpTouchMenu.startY - touch.clientY; |
| | 831 | } else { |
| | 832 | movedY = touch.clientY - wpTouchMenu.startY; |
| | 833 | } |
| | 834 | |
| | 835 | // if it's 20% or more trigger the menu |
| | 836 | if ( movedY < movedX ) { |
| | 837 | $( '#wp-admin-bar-menu-toggle' ).trigger( 'click' ); |
| | 838 | } |
| | 839 | |
| | 840 | // reset our values |
| | 841 | wpTouchMenu.started = false; |
| | 842 | wpTouchMenu.startX = 0; |
| | 843 | wpTouchMenu.startY = 0; |
| | 844 | wpTouchMenu.tracking = false; |
| | 845 | } ); |
| | 846 | |