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-left panel-cover theme-dark">
<div class="page"></div>
</div>
<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/">Virtual List</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
JavaScript
var app = new Framework7({
root: '#app',
theme: 'auto',
routes: [{
path: '/about/',
template: `
<div data-name="users" class="page">
<form data-search-container=".virtual-list" data-search-item="li" data-search-in=".item-title" class="searchbar searchbar-init">
<div class="searchbar-inner">
<div class="searchbar-input-wrap">
<input type="search" placeholder="Search"/>
<i class="searchbar-icon"></i>
<span class="input-clear-button"></span>
</div>
<span class="searchbar-disable-button">Cancel</span>
</div>
</form>
<div class="searchbar-backdrop"></div>
<div class="page-content ">
<div class="list links-list searchbar-not-found margin padding">
<ul >
<li>Nothing found</li>
</ul>
</div>
<div class="list virtual-list media-list searchbar-found margin padding"></div>
</div> <!-- ./ page-content -->
</div>
`,
data () {
return {
items: []
}
},
on: {
pageInit() {
var self = this
debugger
// https://jsonplaceholder.typicode.com/todos/
app.request.getJSON('https://jsonplaceholder.typicode.com/todos', function(res) {
debugger
})
debugger
var virtualList = app.virtualList.create({
// List Element
el: '.virtual-list',
// Pass array with items
items: this.items,
// Custom search function for searchbar
searchAll: function(query, items) {
var found = [];
for (var i = 0; i < items.length; i++) {
if (items[i].title.toLowerCase().indexOf(query.toLowerCase()) >= 0 || query.trim() === '') found.push(i);
}
return found; //return array with mathced indexes
},
// List item Template7 template
itemTemplate: '<li>' +
'<a class="#" {{href}}>' +
'<div class="item-inner">' +
'<div class="item-title-row">' +
...