html - how to build a load more <li> function using pure javascript instead of jquery -


i found great code in codepen: http://codepen.io/joe-watkins/pen/wbybgn

but trying have same feature using pure javascript , know if possible, , how achive 😉

thanks lot

var $parent = $("ul"),      $items = $parent.find("li"),      $loadmorebtn = $("#load-more-comments"),      maxitems = 10,      hiddenclass = "visually-hidden";    		// add visually hidden class items beyond maxitems  		$.each($items, function(idx,item){        if(idx > maxitems - 1){          $(this).addclass(hiddenclass);        }      });    		// onclick of show more button show more = maxitems  		// if there none left show kill show more button  		$loadmorebtn.on("click", function(e){        $("."+hiddenclass).each(function(idx,item){          if(idx < maxitems - 1){            $(this).removeclass(hiddenclass);          }          // kill button if no more show          if($("."+hiddenclass).size() === 0){            $loadmorebtn.hide();          }        });      });
body {    margin: 1em;  }    .visually-hidden {     position: absolute;     overflow: hidden;     clip: rect(0 0 0 0);     height: 1px; width: 1px;     margin: -1px; padding: 0; border: 0;   }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <ul>     <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>      <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>    <li class="item">item</li>  </ul>    <button id="load-more-comments">load more</button>

here quick vanilla version of js code provided

// cache vars  var parent = document.queryselector('ul'),     items  = parent.queryselectorall('li'),     loadmorebtn =  document.queryselector('#load-more-comments'),     maxitems = 10,     hiddenclass = "visually-hidden";   [].foreach.call(items, function(item, idx){     if (idx > maxitems - 1) {         item.classlist.add(hiddenclass);     } });  loadmorebtn.addeventlistener('click', function(){    [].foreach.call(document.queryselectorall('.' + hiddenclass), function(item, idx){       console.log(item);       if (idx < maxitems - 1) {           item.classlist.remove(hiddenclass);       }        if ( document.queryselectorall('.' + hiddenclass).length === 0) {           loadmorebtn.style.display = 'none';       }    });  }); 

codepen plain js:

http://codepen.io/anon/pen/gpxpmn

here thing tho, jquery works out different browsers' inconsistencies things adding event handlers, ajaxing, querying dom , such, that's advantage of using it, if trying write code supports ie ;)


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -