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);
}
});
});