Google Chrome - Visual Browser

by Rian .N Herdian

HTML

<div class="browser">
  <div class="b-nav">
    <i class="icon b-disable ion-md-arrow-back"></i>
    <i class="icon b-disable ion-md-arrow-forward"></i>
    <i class="icon b-refresh ion-md-refresh"></i>
    <input class="b-url" type="text" value="" onclick="select();">
    <a class="b-max" href="#"><i class="icon ion-md-expand"></i></a>
  </div>
  <iframe data-src="https://sitamvan.com" class="b-iframe"></iframe>
</div>

CSS

* {
  box-sizing:border-box;
  margin:0;
  padding:0;
}
body {
  padding:40px;
  background:#20262E;
}
.browser {
  display: block;
  width: 100%;
  font-size: 14px;
  line-height: 1.6;
  position: relative;
  margin-bottom: 30px;
}
.browser:after {
  bottom: -30px;
  content:'';
  display: block;
  clear: both;
  height: 10px;
  background: rgba(0,0,0,.04);
  border-radius: 100%;
  position: absolute;
  left: 0;
  width: 100%;
}
.browser * {
  color: rgba(0,0,0,.6);
  text-decoration: none;
}
.browser .b-iframe {
  display: block;
  width: 1000px;
  max-width:100%;
  height: 200px;
  overflow-y: auto;
  position: relative;
  border: none;
  box-shadow: 0 0 1px rgba(0,0,0,.05);
}
.browser .b-nav {
  display: block;
  clear: both;
  background:#fff;
  padding: 10px;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.browser .b-nav:after {
  content: '';
  display: block;
  clear: both;
}
.browser .b-nav > * {
  display: inline-block;
  vertical-align: middle;
  height: 30px;
  line-height: 30px;
  float: left;
}
.browser .b-nav > *:hover {
  background: #F0F2F3;
}
.browser .b-nav > *:active {
  background: #E8EAED;
}
.browser .b-nav i {
  font-size: 20px;
}
.browser .b-nav i.b-disable {
  opacity: .4;
}
.browser .b-nav i.b-disable,
.browser .b-nav i.b-refresh {
  border-radius: 30px;
  width: 30px;
  margin-right: 5px;
  text-align: center;
  padding: 0;
}
.browser .b-nav > input.b-url {
  outline:none;
  padding: 0 15px;
  font-size: 90%;
  background: #F0F2F3;
  border-radius: 30px;
  width: calc(100% - 140px);
  overflow: hidden;
  white-space: nowrap;
  transition: .2s;
  border: none;
}
.browser .b-nav > input.b-url {
  padding: 0 15px;
  font-size: 90%;
  background: #F0F2F3;
  border-radius: 30px;
  width: calc(100% - 140px);
  overflow: hidden;
  white-space: nowrap;
  transition: .1s;
  border: none;
}
.browser .b-nav > input.b-url:hover {
  background: #E8EAED;
}
.browser .b-nav > input.b-url:focus {
  background: #fff;
  box-shadow: inset 0 0 0 2px...

JavaScript

function load_headlink(file) {
  var load_link = document.createElement('link');
  load_link.rel = 'stylesheet';
  load_link.href = file;
  document.head.appendChild(load_link);
}
load_headlink('https://unpkg.com/[email protected]/dist/css/ionicons.min.css');


$(window).on('load',function() {
  $('.browser').each(function() {
    var iframe = $(this).find('.b-iframe');
    var target = $(this).find('.b-iframe').attr('data-src');
    $(this).find('.b-iframe').attr('src',target);
    $(this).find('.b-url').val(target);
    $(this).find('.b-max').attr('href',target);
  });
  $('.browser .b-refresh').on('click', function(){
    var iframe = $(this).parents('.browser').find('.b-iframe');
    var target_url = $(this).parents('.browser').find('.b-url').val();
    iframe.attr('src', target_url);
  });
  $('.browser .b-max').on('click', function(){
    var target_url = $(this).attr('href');
    var w = 960,
        h = 540,
        left = Number((screen.width / 2) - (w / 2)),
        tops = Number((screen.height / 2) - (h / 2)),
        popupWindow = window.open(target_url, '', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=1, copyhistory=no, width=' + w + ', height=' + h + ', top=' + tops + ', left=' + left);
    popupWindow.focus();
    return false;
  });
  $(".browser .b-url").on('keypress', function() {
    if (event.keyCode === 13) {
      var url = $(this).val();
      $(this).parents(".browser").find('.b-iframe').attr('src',url);
      $(this).parents(".browser").find('.b-max').attr('href',url);
    }
  });
});