Framework7 Virtuallist Height MOD

by Maiki Nahara

HTML

<script src="http://framework7.io/fonts/Framework7Icons-Regular.eot"></script>
<script src="http://framework7.io/fonts/Framework7Icons-Regular.ttf"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/5.4.5/css/framework7.bundle.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/5.4.5/css/framework7.css">
<link rel="stylesheet" href="http://framework7.io/css/framework7-icons.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/framework7/5.4.5/js/framework7.bundle.js"></script>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="theme-color" content="#2196f3">
  <title>My App</title>
</head>
<body>
    <div id="app">
  <div class="view view-main">
      <div data-name="home" class="page">
      
      
  <div class="navbar">
    <div class="navbar-bg"></div>
    <div class="navbar-inner sliding">
      <div class="title">Virtual List</div>
      <div class="subnavbar">
        <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 if-not-aurora">Cancel</span>
          </div>
        </form>
      </div>
    </div>
  </div>
  
    <div class="searchbar-backdrop"></div>
        <div class="page-content">
          <div class="list media-list virtual-list">
          </div>
        </div>
      </div>
    </div>
  </div>
</body>

CSS

.demolist {
  margin-top: 0px;
}

JavaScript

var app = new Framework7({
  // App root element
  root: '#app',
  // App Name
  name: 'Pull To Refresh Demo',
  // App id
  id: 'com.myapp.test',
  // Enable swipe panel
  panel: {
    swipe: 'left',
  },
  theme: 'ios',
  // Add default routes
  routes: [{
    path: '/about/',
    url: 'about.html',
  }, ],
  // ... other parameters
});
var $$ = Dom7;
var mainView = app.views.create('.view-main');

var subTextArray = ["Addition Text", "Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text Addition Text ", "", "hello<br>world", "<h1>hello world</h1>"];

var randomBreak = ["<br> random break",""];

var items = [];
for (var i = 1; i <= 15; i++) {
  items.push({
  	id: app.utils.id(),
    title: 'Item ' + i,
    subtitle: 'Subtitle ' + i + randomBreak[Math.floor(Math.random()*randomBreak.length)],
    additional: subTextArray[Math.floor(Math.random()*subTextArray.length)],
	IMAGESIZE : Math.floor(Math.random() * 51) + 50,
  });
}

var virtualList = app.virtualList.create({
  el: '.virtual-list',
  items: items,
  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
  },
  itemTemplate:
    
    '<li id="{{id}}">'+
     ' <div class="item-content">'+
      '<div class="item-media"><img  src="data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="80" height="{{IMAGESIZE}}"/></div>' +
'        <div class="item-inner">'+
'          <div class="item-title-row">'+
'            <div class="item-title">{{title}}</div>'+
'          </div>'+
'          <div class="item-subtitle">{{subtitle}}</div>'+
'          <div class="item-text">{{additional}}</div>'+
'        </div>'+
'      </div>'+
'    </li>',

/*	'<li>' +
	'<a...