Mastering Font Awesome - Change Icon on Hover Sandbox
A sandbox for the "Mastering Font Awesome" Udemy course.
by Jacob Hill
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">TEKFused</a>
</div>
<!-- Nav bar -->
<div class="collapse navbar-collapse" id="navbar-collapse">
<!-- Left Nav links -->
<ul class="nav navbar-nav">
<li>
<a href="#" title="Home" class="fa fa-home fa-2x"></a>
</li>
<li>
<a href="#" title="Share" class="fa fa-share-alt fa-2x"></a>
</li>
<li>
<a href="#" title="Search" class="fa fa-search fa-2x"></a>
</li>
</ul>
<!-- Right Nav links -->
<ul class="nav navbar-nav navbar-right">
<li>
<a href="#" title="Cart" class="fa fa-shopping-cart fa-2x"></a>
</li>
<li>
<a href="#" title="My Profile" class="fa fa-user-circle fa-2x"></a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Page Content -->
<div class="container" id="content">
<div class="row">
<div class="col-sm-4">
<i class="btn btn-default btn-circle fa fa-comment-o"></i>
<h2>Icon Change Method 1</h2>
<p>This icon change is very simple. It simply changes the icon without...
CSS
#fa-comments-wrapper {
height:250px;
width:250px;
border-radius:50%;
margin:0 auto;
}
#content .fa-comments, #content .fa-comments-o {
position:relative;
}
#content .fa-comments-o {
top:-250px;
}
.fa-comments {
opacity:1;
}
.fa-comments-o {
opacity:0;
}
#content .fa {
font-size: 100px;
display: block;
text-align: center;
}
#content .fa:hover {
background-color:#ddd;
}
.fa {
transition: color 1s;
}
body {
padding-top:100px;
}
h2 {
margin-top:35px;
}
#content {
text-align:center;
}
.btn-circle {
width: 250px;
height: 250px;
line-height: 250px;
margin: 0 auto;
border-radius: 50%;
}
JavaScript
basicIconChange();
fadeIconChange();
seamlessIconChange();
// Basic icon change
function basicIconChange()
{
$('.fa-comment-o').hover(
// Mouse in
function()
{
$(this).removeClass('fa-comment-o').addClass('fa-commenting-o');
},
// Mouse out
function()
{
$(this).removeClass('fa-commenting-o').addClass('fa-comment-o');
});
};
// Icon change with fade
function fadeIconChange()
{
$('.fa-address-book').hover(
// Mouse in
function()
{
var sel = $(this);
$(sel).stop().animate({opacity:0},500,function()
{
$(sel).removeClass('fa-address-book').addClass('fa-address-book-o');
$(sel).stop().animate({opacity:1},500);
});
},
// Mouse out
function()
{
var sel = $(this);
$(sel).stop().animate({opacity:0},500,function()
{
$(sel).removeClass('fa-address-book-o').addClass('fa-address-book');
$(sel).stop().animate({opacity:1},500);
});
});
};
// Seamless icon change
function seamlessIconChange()
{
$('#fa-comments-wrapper').hover(
// Mouse in
function(e)
{
$('.fa-comments').stop().animate({opacity:0},500);
$('.fa-comments-o').stop().animate({opacity:1},500);
},
// Mouse out
function(e)
{
$('.fa-comments-o').stop().animate({opacity:0},500);
$('.fa-comments').stop().animate({opacity:1},500);
});
};