Search code examples
javascriptjqueryhtmlsemantic-ui

How to make semantic-ui sidebar not dim page content when triggered?


How to make the pusher not dim when I trigger the semantic-ui sidebar?

I tried the semantic-ui sidebar as follows:

$(document).ready(
  function() {
    $('.button').click(
      function() {
        $('.ui.sidebar')
          .sidebar('toggle');
      }
    )
  });
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>

<button class="ui button">trigger</button>
<div class="ui right demo sidebar vertical inverted menu push visible" style="">
  <a class="header item">File Permissions</a>
  <a class="item">Share on Social</a>
  <a class="item">Share by E-mail</a>
  <a class="item">Edit Permissions</a>
  <a class="item">Delete Permanently</a>
</div>

The pusher content should not be dimmed when sidebar is triggered.


Solution

  • You can control the dimmer behavior of the sidebar with the dimPage setting. You can prevent dimming as follows:

    $('.ui.sidebar').sidebar('setting', 'dimPage', false);
    

    Here is an example snippet:

    $(document).ready(() => {
      $('.ui.sidebar').sidebar('setting', 'dimPage', false);
      $('#hamburger').click(() => {
        $('.ui.sidebar').sidebar('toggle');
      });
    });
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
    <div class="ui sidebar inverted vertical menu">
      <a class="item" href="#">Item 1</a>
      <a class="item" href="#">Item 2</a>
    </div>
    <div class="pusher">
      <div class="ui container">
        <button class="ui button" id="hamburger">
          <i class="sidebar icon"></i>
        </button>
        <p>Some content</p>
      </div>
    </div>