Skip to content

Instantly share code, notes, and snippets.

@iamwinnie
Created March 27, 2019 23:21
Show Gist options
  • Save iamwinnie/a99fdab3005ad84482176406d20fe3f7 to your computer and use it in GitHub Desktop.
Save iamwinnie/a99fdab3005ad84482176406d20fe3f7 to your computer and use it in GitHub Desktop.
2.12: Interactive website
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Winnie</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" integrity="sha384-+d0P83n9kaQMCwj8F4RJB66tzIwOKmrdb46+porD/OvrJ+37WqIM7UoBtwHO6Nlg" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Anton" rel="stylesheet">
<link rel="stylesheet" href="css/styles.css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body data-spy="scroll" data-target=".navbar">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark" role="navigation"><!--nav bar starts here-->
<a class="navbar-brand" href="#">Winnie</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li> <span>//</span>
<li class="nav-item">
<a class="nav-link" href="#about">About</a>
</li> <span>//</span>
<li class="nav-item">
<a class="nav-link" href="#portfolio">Portfolio</a>
</li> <span>//</span>
<li class="nav-item">
<a class="nav-link" href="#contactpage">Contact</a>
</li>
</ul>
</div>
</nav><!--nav bar ends here-->
<!-- Main jumbotron for a primary marketing message or call to action
<div class="jumbotron jumbotron-fluid">
<div class="container">
<h1 class="display-4">Building digital products</h1>
<p class="lead">Home for your web development needs. Serving clients worldwide.</p>
<a href="about.html" target="_blank">ABOUT</a>
</div> <-close container div
</div> close jumbotron -->
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" src="img/unsplash.jpg" alt="First slide">
<div class="carousel-caption d-none d-md-block">
<h5>"The best way to predict the future..."</h5>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-100" src="img/foggy.jpg" alt="Second slide">
<div class="carousel-caption d-none d-md-block">
<h5>"...is to create it."</h5>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<!--About section-->
<div class="container content" id="about">
<div class="row">
<div class="col-12">
<div class="aboutheader">
<h1> ABOUT ME </h1>
</div>
</div>
<div class="col-12 col-md-12">
<div class="intro"><p>I am a New York-based web developer. When I am not coding, you can find me hiking, biking, or exploring the city. I am an avid reader. Now I use my love of stories, collaboration, and design to help people build positive digital experiences. Cutting through noise to communicate more effectively is my jam. I enjoy getting to know the details of a service, a product, or a community. Thorough research and inspection helps me create and champion strategies that win over internal and external audiences alike. I’ve been a civil servant and loved being one and I continue to serve my community now in any way I can.</p></div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-sm">
<h2>Learn More</h2>
</div>
<div class="col-sm">
<button type="button" class="btn btn-primary modal-button" data-toggle="modal" data-target=".bd-example-modal">Resume/CV</button>
</div>
</div>
</div>
<div class="modal fade bd-example-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Resume</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<embed id="resumepdf" src="resumecf.pdf">
</div>
</div>
</div>
</div>
<!--portfolio section-->
<div class="container content" id="portfolio">
<div class="row">
<div class="col-sm">
<h2>UX Research</h2>
<p>I create personas, perform user testing, do analysis, and sometimes do more testing--all to better understand how your users interact with your project. </p>
<a class="btn btn-primary" href="#" role="button">View details &raquo;</a>
</div><!-- /col -->
<div class="col-sm">
<h2>Content Strategy</h2>
<p>I evaluate how your content is performing at every part of the content lifecycle. I map content production and governance processes and use organizational design to ensure content success is sustainable. </p>
<a class="btn btn-primary" href="#" role="button">View details &raquo;</a>
</div><!-- /col -->
<div class="col-sm">
<h2>Community Organizing</h2>
<p>There’s strength in numbers, and I know how to get them. I know who to talk to if you want to hold a speaker series on big data or big brother (or both). Progress is a team project and I like being a part of it.</p>
<a class="btn btn-primary" href="#" role="button">View details &raquo;</a>
</div><!-- /col -->
</div> <!--close row div -->
</div> <!-- close container row div-->
<div class="container content">
<div class="row" id="work">
<!--doneinloop
<div class="col-12 col-md-4"><img src="img/aboutpic.jpg" class="img-fluid"></div>
<div class="col-12 col-md-4"><img src="img/aboutpic.jpg" class="img-fluid"></div>
<div class="col-12 col-md-4"><img src="img/aboutpic.jpg" class="img-fluid"></div>
</div>
<div class="row" id="work">
<div class="col-12 col-md-4"><img src="img/aboutpic.jpg" class="img-fluid"></div>
<div class="col-12 col-md-4"><img src="img/aboutpic.jpg" class="img-fluid"></div>
<div class="col-12 col-md-4"><img src="img/aboutpic.jpg" class="img-fluid"></div>-->
</div>
</div> <!--end of portfolio grid div-->
<div class="video">
<iframe width="200" height="200" src="https://www.youtube.com/embed/Pwrwf_8H25Y" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
<!--HIDDEN GOOGLE MAPS EMBED API
<iframe width="600" height="450" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/place?q=place_id:ChIJHcst1r1YwokRRsRw_dkXiRc&key=AIzaSyBZ4B1jbPLzNp0nGnYGgeS2D1S7klo199g" allowfullscreen></iframe>
-->
<div id="map"> </div>
<div class="container-fluid anchor contact" id="contactpage">
<div class="row">
<div class="col-12 col-md-3">
<div class="contactheading">
<h1>Contact Info</h1>
</div>
<div class="info">
<p><i class="fas fa-envelope"></i> Email: [email protected]</p>
</div>
</div>
<div class="col-12 col-md-6">
<form id="formcontact">
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="name" name="name" minlength=2 maxlength=20 placeholder="Enter your name" class="form-control">
</div>
<div class="form-group">
<label for="emaill">Email Address*</label>
<input type="email" name="email" required="required" id="emaill" placeholder="Enter your email" class="form-control" minlength=5>
</div>
<div class="form-group">
<label for="message-box">Message*<br></label>
<textarea class="form-control message-box" required="required" placeholder="Enter your message here..." id="message-box" style="resize:none" cols="50" rows="5"></textarea>
<p id="invisible-comment"></p>
<p id="char-count"></p>
<button type="submit" id="button" class="btn btn-default">Submit</button>
</div>
</form>
</div>
</div>
</div> <!--end of whole container-->
<!--contact page
<div class="content contact" id="contactpage">
<div class="contactheading">
<h1>Contact Info</h1>
</div>
<div class="info">
<p><i class="fas fa-envelope"></i> Email: [email protected]</p>
</div>
<div class="col-12 col-md-9">
<form id="formcontact">
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="name" name="name" minlength=2 maxlength=20 placeholder="Enter your name" class="form-control">
</div>
<div class="form-group">
<label for="emaill">Email Address*</label>
<input type="email" name="email" required="required" id="emaill" placeholder="Enter your email" class="form-control" minlength=5>
</div>
<div class="form-group">
<label for="message-box">Message*<br></label>
<textarea class="form-control message-box" required="required" placeholder="Enter your message here..." id="message-box" style="resize:none" cols="50" rows="5"></textarea>
<p id="invisible-comment"></p>
<p id="char-count"></p>
<button type="submit" id="button" class="btn btn-default">Submit</button>
</div>
</form>
</div>
</div> <!end of whole container-->
<!--footer-->
<footer>
<span class="twitter"><a href="https://twitter.com/inforthewinn?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @inforthewinn</a></span>
<span class="copyright">&copy; <strong>forthewin, inc 2018</strong></span>
</footer>
<!-- ============================= -->
<!-- All your JavaScript comes now -->
<!-- ============================= -->
<!-- Bootstrap core JS -->
<!-- Can place script tags with JavaScript files here -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
<script src="js/works.js"></script>
<script src="js/jquery.stellar.min.js"></script>
<script src="js/scripts.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDw1n5LXE10M5Jb0HhqiVzJh4XFmNCIGQo&callback=initMap"
async defer></script>
</body>
</html>
$(document).ready(function() {
//contact page
$('.message-box').css('background', '#D5FDD5');
$('#button').on('click', function() {
var comment = $('.message-box').val();
console.log(comment);
if (comment === "") {
$('.message-box').css('border', '2px solid red');
} else {
$('#invisible-comment').html('We received your message:' + ' ' + comment);
$('.message-box').hide();
return false;
}
});
$('.message-box').on('keyup', function() {
var charCount = $('.message-box').val().length;
$('#char-count').html(charCount);
if (charCount > 50) {
$('#char-count').css('color', 'red');
} else {
$('#char-count').css('color', 'black');
}
});
// WORK SECTION
for(var i = 0; i < works.length; ++i) {
$('#work').append('\
<div class="col-sm">\
<a href="#" class="work-img">\
<img class="img-responsive" src="' + works[i].pic + '">\
<span class="worksinfo"><p class="projtitle">Title:</p>COMING SOON</span>\
</a>\
</div>\
');
$('.work-img').mouseenter(function() {
$('.worksinfo', this).show();
}).mouseleave(function() {
$('.worksinfo', this).hide();
});
var images = $('#work img');
if (i%2 === 0){
$(images[i]).css('border', '2px solid dodgerblue');
} else {
$(images[i]).css('border', '2px solid salmon');
};
};
});
// MAP section
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 40.77614, lng: -73.95925},
zoom: 8
});
}
* { box-sizing: border-box; }
body {
position: relative;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
/*
.jumbotron {
background-image: url("../img/jumboimage.jpg");
background-size: cover;
}
*/
.container {
margin: 0 auto;
width: 100%;
}
.content {
padding: 8em 0em 4em 0em;
}
/*navigation styling*/
.navbar-brand {
font-family: 'Anton', impact;
font-size: 1em;
}
.navbar {
position: fixed;
width: 100% !important;
padding: 10px 20px;
top: 0;
left: 0;
background: #243b55;
background: linear-gradient(to right, #141e30, #243b55);
font-size: 2em;
z-index: 1;
}
ul>span {
color: #FFFFFF;
font-family: arial;
font-size: 1em;
padding: 10px 5px;
}
.navbar-dark .navbar-nav .nav-link {
color: #ADD8E6;
text-decoration: none;
font-family: 'Anton', impact;
transition: color 200ms;
-webkit-transition: color 200ms;
}
.navbar-dark .navbar-nav .nav-link:hover {
text-decoration: underline;
color: #D3D3D3;
}
/*about page styling*/
.aboutheader h1 {
text-align: center;
font-family: 'Anton', impact;
}
@media (min-width: 768px) {
.modal-button button {
float: right;
}
}
#resumepdf {
height: 700px;
width: 100%;
}
/*portfolio styling*/
.video {
display: block;
margin: 100px auto;
padding: 0;
height: 500px;
width: 100%;
text-align: center;
}
.video>iframe {
display: block;
margin 0 auto;
height: 100%;
width: 50%;
}
.work-img {
display: block;
margin: auto;
max-width: 200px;
position: relative;
}
.worksinfo {
position: absolute;
top: 15%;
left: 22%;
color: #fff;
font-family: Futura;
text-transform: uppercase;
font-weight: 700;
letter-spacing: 0.5em;
line-height: 1.6;
display: none;
}
.proj-title {
font-weight:100;
}
/*contact page styling*/
#contactpage {
background-image: url("../img/roosevelt.jpg"); /*Add a background image*/
padding: 5em;
background-attachment: fixed; /*Give the background a fixed position does it not scroll when you scroll*/
background-size: cover; /*Have the background cover the entire div section*/
color: white; /*Change the color of the text on top so it is readable and adjust the padding as needed.*/
height: 500px;
margin: 0em 0em 0em 0em;
width: 100%;
}
.contactheading>h1, .info>p {
margin: 0 auto;
width: 80%;
font-family: 'Anton', impact;
font-size: 2em;
}
/*map styling */
#map {
height: 300px;
width: 100%;
}
/*footer styling*/
footer {
margin: 0 auto;
width: 100%;
background: #243b55;
background: linear-gradient(to right, #141e30, #243b55);
font-family: Helvetica, Verdana, sans-serif;
color: #ADD8E6;
padding: 15px 10px;
position: absolute;
display: block;
clear: both;
}
.twitter {
float: left;
}
.copyright {
float: right;
}
/*Typography*/
h1,
h2,
h3 {
font-family: Georgia, Helvetica, Verdana, sans-serif;
font-size: 3em;
}
li, p {
font-family: Helvetica, Verdana, sans-serif;
font-size: 1em;
font-weight: 100;
-webkit-margin-before: 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment