Search code examples
javascriptresponsive-nav

Javascript img src variation?


I'm using a responsive navigation plugin for the navigation on this website I'm currently working on, and the label for the shrunken down navigation is in the javascript file, and I want to make it a menu button rather than text.

Is there any way I can do that? (I have changed the part I want to be an image to "THIS IS WHAT I WANT TO BE AN IMAGE" in the code below)

var ResponsiveNav = function (el, options) {
    var i;

    /**
     * Default options
     * @type {Object}
     */
    this.options = {
      animate: true,                    // Boolean: Use CSS3 transitions, true or false
      transition: 284,                  // Integer: Speed of the transition, in milliseconds
      label: "THIS IS WHAT I WANT TO BE AN IMAGE",                    // String: Label for the navigation toggle
      insert: "before",                 // String: Insert the toggle before or after the navigation
      customToggle: "",                 // Selector: Specify the ID of a custom toggle
      closeOnNavClick: false,           // Boolean: Close the navigation when one of the links are clicked
      openPos: "relative",              // String: Position of the opened nav, relative or static
      navClass: "nav-collapse",         // String: Default CSS class. If changed, you need to edit the CSS too!
      navActiveClass: "js-nav-active",  // String: Class that is added to <html> element when nav is active
      jsClass: "js",                    // String: 'JS enabled' class which is added to <html> element
      init: function(){},               // Function: Init callback
      open: function(){},               // Function: Open callback
      close: function(){}               // Function: Close callback
    };

Many thanks.


Solution

  • You add an image into the html of the page, give it an id and then add the id to the customToggle option (See "myImg" example below)

    e.g.

    <img src="myimg.png" id="myImg">
    <nav class="nav-collapse">
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Projects</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
    
    var nav = responsiveNav(".nav-collapse", { // Selector
      animate: true, // Boolean: Use CSS3 transitions, true or false
      transition: 284, // Integer: Speed of the transition, in milliseconds
      label: "Menu", // String: Label for the navigation toggle
      insert: "before", // String: Insert the toggle before or after the navigation
      customToggle: "myImg", // Selector: Specify the ID of a custom toggle
      closeOnNavClick: false, // Boolean: Close the navigation when one of the links are clicked
      openPos: "relative", // String: Position of the opened nav, relative or static
      navClass: "nav-collapse", // String: Default CSS class. If changed, you need to edit the CSS too!
      navActiveClass: "js-nav-active", // String: Class that is added to  element when nav is active
      jsClass: "js", // String: 'JS enabled' class which is added to  element
      init: function(){}, // Function: Init callback
      open: function(){}, // Function: Open callback
      close: function(){} // Function: Close callback
    });