JSFiddle - React, Tailwind, and code Playground

by Rene Kriest

JavaScript

// ------------ Sony Global Nav ------------
// Module: Global Nav
// Version: 1.0
// Modified: 2013-05-14 by Christopher Mischler
// Dependencies: jQuery 1.7+, Modernizr
// Optional: jQuery throttle-debounce (only used on window resize)
// -------------------------------------------------------------------------

define(function(require) {

  'use strict';

  var $ = require('jquery'),
      bootstrap = require('bootstrap'),
      enquire = require('enquire'),
      iQ = require('iQ'),
      Settings = require('require/sony-global-settings'),
      Utilities = require('require/sony-global-utilities'),
      Environment = require('require/sony-global-environment'),
      Hammer = require('plugins/index').hammer,
      formActions = require('secondary/form-actions');

  var module = {
    init: function() {
      $('#nav-wrapper').globalNav();
    }
  };

  // Start module
  var GlobalNav = function($container) {

    var self = this;
    self.menuBackgroundScrollFactor = 4;
    self.enableCustomDebugConsole = false;
    self.usernameSpace = 40;
    self.minUsernameLength = 6;
    self.hasTouch = Settings.hasTouchEvents;
    self.$html = Settings.$html;
    self.$window = Settings.$window;
    self.$container = $container;
    self.$activeNavBtns = self.$container.find('.nav-dropdown-toggle');
    self.$navbar = $('#navbar');
    self.$currentOpenNavBtn = false;
    self.$pageWrapOuter = $('#page-wrap-outer');
    self.$pageWrapInner = $('#page-wrap-inner');
    self.$mobileMenu = $('#nav-wrapper-mobile');
    self.$accountUsername = $('#nav-account-btn').find('.username');
    self.fullAccountUsername = self.$accountUsername.text();
    self.mobileNavVisible = false;
    self.mobileNavHasShadow = false;
    self.mobileNavThreshold = 767;
    self.mobileFooterThreshold = 567;
    self.closeTimer = false;
    self.wasJustTapped = false;
    self.debugCount = 0;

    // A simple delay, in milliseconds, before the "out" function is called.
    // If the user mouses...