Framework7 Starter

by Maiki Nahara

HTML

<script src="https://unpkg.com/[email protected]/js/framework7.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/css/framework7.css">
<div id="app">
  <div class="panel panel-right panel-reveal theme-dark">
    <div class="page"></div>
  </div>
  <div class="view view-main ios-edges">
    <div class="page" data-name="home">
      <div class="navbar">
        <div class="navbar-inner">
          <div class="left">
            <a href="#" class="link panel-open" data-panel="left">Left Panel</a>
          </div>
          <div class="title sliding">My App</div>
          <div class="right">
            <a href="#" class="link panel-open" data-panel="right">Right Panel</a>
          </div>
        </div>
      </div>
      <!-- Toolbar-->
      <div class="toolbar toolbar-bottom-md">
        <div class="toolbar-inner">
          <a href="#" class="link">Left Link</a>
          <a href="#" class="link">Right Link</a>
        </div>
      </div>
      <!-- Scrollable page content-->
      <div class="page-content">
        <div class="block block-strong">
          <p>Here is your blank Framework7 app.</p>
        </div>

        <div class="block-title">Navigation</div>
        <div class="list links-list">
          <ul>
            <li><a href="/about/">About</a></li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</div>

JavaScript

var app = new Framework7({
  root: '#app',
  theme: 'auto',
  methods: {
    createLeftPanel() {
      var _app = document.getElementById('app')
      var myDivPanel = document.createElement('div')
      myDivPanel.classList.add('panel', 'panel-left', 'panel-cover', 'theme-dark')
      myDivPanel.innerHTML = `<div class='page'><div class="content-block">
      <div class="list">
          <ul>
                  <li>
      <div class="item-content">
        <div class="item-inner">
          <div class="item-title">Ivan Petrov</div>
          <div class="item-after">CEO</div>
        </div>
      </div>
    </li>
    <li>
      <div class="item-content">
        <div class="item-inner">
          <div class="item-title">John Doe</div>
          <div class="item-after"> <span class="badge">5</span></div>
        </div>
      </div>
    </li>
    <li>
      <div class="item-content">
        <div class="item-inner">
          <div class="item-title">Jenna Smith</div>
        </div>
      </div>
    </li>
          </ul>
      </div>
        <p><a href="#" class="panel-close">Close me</a></p>
      </div>
      </div>`
      _app.insertAdjacentElement('afterbegin', myDivPanel)
      this.panel.create({
        el: '.panel-left'
      })
    }
  },
  on: {
    init: function() {
      this.methods.createLeftPanel()
    }
  },
  routes: [{
    path: '/about/',
    content: `
      	<div class="page">
          <div class="navbar">
            <div class="navbar-inner sliding">
            	<div class="left">
                <a href="#" class="link back">
                  <i class="icon icon-back"></i>
                  <span class="ios-only">Back</span>
                </a>
              </div>
              <div class="title">About</div>
            </div>
          </div>
          <div class="page-content">
            <div class="block block-strong">About page</div>
          </div>
        </div>
      `
  }]
});

function createLeftPanel()...