Search wikipedia by clicking on the search icon, providing your search and press return.
Forked from Geoff Storbeck's Pen Wikipedia Search.
Forked from Free Code Camp's Pen Wikipedia Search.
A Pen by Bakaki Mahlon on CodePen.
main(ng-app='WikiApp' ng-controller='MainCtrl') | |
#search.wrapper.fullHeight | |
a.white-text(href='https://en.wikipedia.org/wiki/Special:Random' target='_blank') Click here for a random article | |
br | |
form(ng-submit='search()') | |
input(type='text' ng-model='searchTxt') | |
.eks | |
p.white-text#help Click icon to search | |
.wrapper | |
ul | |
a(ng-href='{{result.page}}' target='_blank' ng-repeat='result in results') | |
li | |
h1 {{result.title}} | |
p {{result.body}} |
Search wikipedia by clicking on the search icon, providing your search and press return.
Forked from Geoff Storbeck's Pen Wikipedia Search.
Forked from Free Code Camp's Pen Wikipedia Search.
A Pen by Bakaki Mahlon on CodePen.
var app = angular.module('WikiApp', ['ngAnimate']); | |
app.controller('MainCtrl', function($scope, $http, $timeout) { | |
var form = $('form'); | |
var close = $('.eks'); | |
var input = $('input'); | |
var search = $("#search"); | |
var help = $("#help"); | |
$scope.results = []; | |
close.on('click', function() { | |
form.toggleClass('open'); | |
if (!form.hasClass('open') && $scope.searchTxt !== '' && typeof $scope.searchTxt !== 'undefined') { | |
search.toggleClass('fullHeight') | |
help.toggleClass('hide'); | |
$scope.searchTxt = ''; | |
} | |
$scope.results = []; | |
$scope.$apply(); | |
}) | |
input.on('transitionend webkitTransitionEnd oTransitionEnd', function() { | |
if (form.hasClass('open')) { | |
input.focus(); | |
} else { | |
return; | |
} | |
}) | |
$scope.search = function() { | |
$scope.results = []; | |
help.addClass('hide'); | |
search.removeClass('fullHeight'); | |
var title = input.val(); | |
var api = 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch='; | |
var cb = '&callback=JSON_CALLBACK'; | |
var page = 'https://en.wikipedia.org/?curid='; | |
$http.jsonp(api + title + cb) | |
.success(function(data) { | |
var results = data.query.pages; | |
angular.forEach(results, function(v,k) { | |
$scope.results.push({title: v.title, body: v.extract, page: page + v.pageid}) | |
}) | |
}); | |
} | |
}); |
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.2/angular-animate.min.js"></script> |
@import "bourbon"; | |
@import url(https://fonts.googleapis.com/css?family=Rokkitt:700); | |
// Colors | |
$blue: #092B40; | |
$lightBlue: #85DEF2; | |
$water: #52A5D9; | |
$sky: #5BB5D9; | |
$orange: #D96F32; | |
* { | |
box-sizing: border-box; | |
} | |
html, body, main { | |
font-family: "Lucida Grande","Lucida Sans Unicode", Tahoma, Sans-Serif; | |
position: relatiave; | |
margin: 0; padding: 0; | |
padding-top: 10px; | |
width: 100%; height: 100%; | |
background-color: $blue; | |
} | |
input[type='text'] { | |
-webkit-appearance: none; | |
outline: none; | |
border: none; | |
} | |
.wrapper { | |
display: flex; | |
width: 100%; | |
@include display(flex); | |
@include flex-direction(column); | |
@include align-items(center); | |
@include justify-content(center); | |
@include transition(all 2s linear); | |
} | |
.fullHeight { | |
height: 100%; | |
@include transition-duration(2s); | |
} | |
.white-text { | |
color: white; | |
text-decoration: none; | |
} | |
form { | |
position: relative; | |
display: block; | |
z-index: 1; | |
width: 40px; | |
height: 40px; | |
margin-left: 0; | |
padding: 0; | |
margin-bottom: 10px; | |
border: 4px solid $orange; | |
border-radius: 20px; | |
@include transition(all .25s ease .3s); | |
cursor: pointer; | |
&:before { | |
@extend %def; | |
top: 90%; | |
left: 90%; | |
width: 16px; | |
height: 3px; | |
background-color: $orange; | |
border-radius: 1px; | |
@include transition(width .15s ease .55s); | |
@include transform(rotate(45deg)); | |
@include transform-origin(top left); | |
} | |
input { | |
width: 100%; | |
height: 100%; | |
padding: 0 30px 0 15px; | |
font-size: 14px; | |
line-height: 38px; | |
opacity: 0; | |
background-color: transparent; | |
color: white; | |
@include transition(opacity .15s ease); | |
} | |
} | |
.eks { | |
display: block; | |
position: absolute; | |
top: 50%; | |
right: 0; | |
z-index: 20; | |
width: 30px; | |
height: 30px; | |
cursor: pointer; | |
@include transform(translateY(-50%)); | |
&:before, &:after { | |
@extend %def; | |
right: 5px; | |
height: 2px; | |
width: 2px; | |
border-radius: 1px; | |
@include transition(all .25s ease); | |
} | |
&:before { | |
top: 0px; | |
background-color: $orange; | |
@include transform(rotate(-45deg)); | |
@include transform-origin(top right); | |
@include transition-delay(.1s); | |
} | |
&:after { | |
bottom: 0px; | |
background-color: $orange; | |
@include transform(rotate(45deg)); | |
@include transform-origin(bottom right); | |
@include transition-delay(0s); | |
} | |
} | |
form.open { | |
width: 260px; | |
@include transition-delay(.1s); | |
&:before { | |
width: 0px; | |
@include transition-delay(0s); | |
} | |
input { | |
opacity: 1; | |
@include transition-delay(.15s); | |
} | |
.eks { | |
&:before, &:after { | |
width: 15px; | |
right: 12px; | |
} | |
&:before { | |
top: 9px; | |
@include transition-delay(.25s); | |
} | |
&:after { | |
bottom: 9px; | |
@include transition-delay(.3s); | |
} | |
} | |
} | |
ul { | |
margin-left: 0; padding-left: 0; | |
width: 80%; | |
a { | |
text-decoration: none; | |
color: black; | |
h1 { | |
font-size: 18px; | |
} | |
p { | |
font-size: 14px; | |
} | |
} | |
li { | |
list-style-type: none; | |
display: block; | |
margin-bottom: 10px; | |
padding: 15px 30px 5px 30px; | |
background-color: #E7E7E8; | |
opacity: 0; | |
@include animation(new-item 1s ease-in-out forwards); | |
@include transition-timing-function(cubic-bezier(0.6, 0, 0.4, 1.0)); | |
&:hover { | |
border-left: 5px solid $orange; | |
margin-left: -5px; | |
//box-shadow: inset 2px -2px 0 $orange; | |
} | |
} | |
} | |
.hide { | |
display: none; | |
} | |
%def { | |
content: ''; | |
position: absolute; | |
display: block; | |
} | |
@include keyframes(new-item) { | |
0% { opacity: 0; | |
-webkit-transform: translateY(2000px); } | |
80% { opacity: 0; } | |
100% { opacity: 1; | |
-webkit-transform: translateY(0); } | |
} |
If you want to see an example of a simple mark down previewer code then you're welcome