<div class="container">
			<div class="projHeader">
				<div class="primaryText">Pagination UI</div>
				<div class="createdBy">Created By <a href="http://www.dropinks.com/pagination-interaction-in-css3/">Dropinks</a></div>
        <p class="message">For Better usability and interaction use web browsers - chrome, firefox</p>
  </div>
  <div class="stageContainer" id="stageContainer">

  </div>
</div>



<div class="footer">
  <div><a target="_blank" class='social'
    href="http://www.dropinks.com/pagination-interaction-in-css3/">Read Article</a></div>
  <div><a target="_blank"  class='social' href="https://twitter.com/dropinksblog">Twitter</a></div>
  <div><a target="_blank"  class='social' href="https://www.facebook.com/dropinksblog">Facebook</a></div>
  <div><a href="https://twitter.com/dropinksblog?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-show-count="false">Follow @dropinksblog</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>
</div>
html, body{
  width: 100%; 
  height: 100%; 
  font-family: 'Roboto', sans-serif;
}
.container{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.stageContainer{
  background: #f9f9f9;
  border: 1px solid #1372e6;
  border-radius: 4px;
  white-space: nowrap;
  overflow: auto;
  counter-reset: section;
  margin: 20px 0;
  display: inline-block;
}
.dotStage{
  width: 14px;
  height: 14px; 
  margin: 0px 13px;
  padding: 20px 0;
  display: inline-block;
  cursor: pointer;
  position: relative;
}
.dotStage:after{
  counter-increment: section;
  content: counter(section);
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  font-size: 14px;
  color: #fff;
  transition: 0.3s all ease;
}
.dotStage.activeElm:after{
  opacity: 1;
  transform: translate(-50%, -50%) scale(1.2);
}
.dotStage.prevElm_1:after,
.dotStage.nextElm_1:after{
  opacity: 0.8;
  transform: translate(-50%, -50%) scale(0.8);
}
.dotStage.prevElm_2:after,
.dotStage.nextElm_2:after{
  opacity: 0.5;
  transform: translate(-50%, -50%) scale(0.5);
}

.dotStage:before{
  width: 14px;
  height: 14px; 
  content: "";
  transition: 0.5s all cubic-bezier(0.34, 1.56, 0.64, 1);;
  display: inline-block;
  border-radius: 20px;
  transform: scale(1);
  background: rgba(20, 115, 230, 0.4);
}
.dotStage.activeElm:before{
  transform: scale(2.7);
  background: rgba(20, 115, 230, 1);
}
.dotStage.prevElm_1:before,
.dotStage.nextElm_1:before{
  transform: scale(1.7);	
  background: rgba(20, 115, 230, 0.8);
}
.dotStage.prevElm_2:before,
.dotStage.nextElm_2:before{
  transform: scale(1.2);
  background: rgba(20, 115, 230, 0.6);	
}









body{
	background: -webkit-linear-gradient(-45deg, rgba(239,247,255,1) 0%, rgba(239,247,255,1) 15%, rgba(180,188,221,1) 100%);
}
.primaryText{
	font-weight: 300;
	font-size: 50px;
	text-shadow: 2px 2px 1px rgba(0,0,0,0.3);
}
.secondaryText{
	font-weight: 300;
	font-size: 25px;
}
.createdBy {
    font-weight: 300;
    font-size: 17px;
    margin-top: 10px;
}
.createdBy a{
    color: #333;
    font-weight: 500;
}
.message {
    background: rgba(255, 255, 255, 0.31);
    padding: 10px;
    display: inline-block;
    font-family: roboto;
    text-align: center;
    color: #000;
    margin: 25px 0;
    font-size: 13px;
    box-shadow: 2px 2px 0px 1px rgba(0,0,0,0.2);
    border-radius: 4px;
}
.projHeader{
	text-align: center;
}

.footer{position: fixed; bottom: 0; right: auto; top: auto; left: 0; border-top: 1px solid rgba(0,0,0,0.5); width: 100%; transform: translate(0); border: none; padding: 0; text-align: center; border-top: 1px solid #bfc7e4;}
.footer div{display: inline-block;}
.footer a.social{display: inline-block; font-size: 17px; padding: 7px 0; color: #000; text-decoration: none; margin: 0px 20px;}
var maxcount = 20;
function createDotElement(){
  for(var i=0; i<maxcount; i++){
    var spanElm = $("<span>");
    spanElm.addClass("dotStage");
    $("#stageContainer").append(spanElm);
  }
}
function resetClass(){
  var stageContainer = $("#stageContainer");
  stageContainer.find(".dotStage").removeClass("activeElm");
  stageContainer.find(".dotStage").removeClass("prevElm_1");
  stageContainer.find(".dotStage").removeClass("prevElm_2");
  stageContainer.find(".dotStage").removeClass("prevElm_3");
  stageContainer.find(".dotStage").removeClass("nextElm_1");
  stageContainer.find(".dotStage").removeClass("nextElm_2");
  stageContainer.find(".dotStage").removeClass("nextElm_3");
}
function bindEvents(){
  var stageContainer = $("#stageContainer");
  stageContainer.find(".dotStage").on("mouseenter", function(ev){
    var targetElm = $(ev.target);
    if(targetElm.hasClass("dotStage")){
      resetClass();
      var targetIndex = targetElm.index();
      targetElm.addClass("activeElm");

      $(stageContainer.find(".dotStage")[targetIndex-1]).addClass("prevElm_1");
      $(stageContainer.find(".dotStage")[targetIndex-2]).addClass("prevElm_2");
      $(stageContainer.find(".dotStage")[targetIndex-3]).addClass("prevElm_3");

      $(stageContainer.find(".dotStage")[targetIndex+1]).addClass("nextElm_1");
      $(stageContainer.find(".dotStage")[targetIndex+2]).addClass("nextElm_2");
      $(stageContainer.find(".dotStage")[targetIndex+3]).addClass("nextElm_3");
    }
  })
}
$(document).ready(function(){
  maxcount = (window.innerWidth > 300)?10:10;
  createDotElement();
  bindEvents();
})

External CSS

  1. https://fonts.googleapis.com/css?family=Roboto:300,400

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js