Skip to content

Instantly share code, notes, and snippets.

View uke5tar's full-sized avatar

Jannis Strehl uke5tar

View GitHub Profile
@uke5tar
uke5tar / document-ready-vanilla-javascript.js
Last active November 8, 2018 18:51
Simple Vanilla Javascript version of document.ready
var ready = function ( fn ) {
if ( typeof fn !== 'function' ) return;
if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
return fn();
}
document.addEventListener( 'DOMContentLoaded', fn, false );
};
ready(function() {
// add your code here
@uke5tar
uke5tar / add-jquery-to-website-via-console.js
Last active October 22, 2018 23:08
Add script (e.g. jQuery) to website via developer console
// add script (e.g jQuery) to current website via developer console (lives only within the client)
var jq = document.createElement('script');
jq.src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
@uke5tar
uke5tar / show-hide-back-to-top-button.js
Created October 22, 2018 20:26
helper function to show back-to-top button only if user navigates up and hides after 2s of idle
/* helper function to show back-to-top button only if user navigates up
and hides after 2s of idle
*/
function scrollToTop() {
var lastTop = $(this).scrollTop();
var scrollTopVisible = false;
var timeout = null;
var targetSelector = '#back_to_top';
@uke5tar
uke5tar / handle-touch-gestures.js
Created October 22, 2018 20:02
Custom event to handle/ detect touch gestures in browser (jQuery)
/* About: function to handle touch direction in browser
Usage: custom event: custom_handleTouch:'direction' (direction = left, right, up, down)
Example: $(document).on('custom_handleTouch:left', function() { // own code });
*/
function handleTouchGestures() {
document.addEventListener('touchstart', handleTouchStart, false);
document.addEventListener('touchmove', handleTouchMove, false);
var xDown, yDown = null;
@uke5tar
uke5tar / element-is-in-viewport.js
Last active June 4, 2019 14:24
Function to detect if and how much of a certain element is in the current viewport (jQuery)
/* About: function to detect if and how much of a certain element is in viewport
Usage: function is added to the jQuery object and can be called on any jQuery selector
Example: $(selector).isInViewport(.5, .5) => true == element is 50% in viewport
@return Boolean
*/
$.fn.isInViewport = function(x, y) {
if(x == null || typeof x == 'undefined') x = 1;
@uke5tar
uke5tar / detect-scroll-direction.js
Created October 21, 2018 23:04
Detect scroll direction in Browser (Vanilla Javascript/ ES5)
// Detect scroll direction
(function scrollPosition() {
"use strict"
// get last scroll position
let lastY = window.scrollY;
let running = false;
function getScrollPosition() {
@uke5tar
uke5tar / remove-signup-wall-from-quora.js
Created October 21, 2018 19:24
Remove signup wall from quora (tampermonkey/ greasemonkey script) (ES6)
// ==UserScript==
// @name Disable quora blocker
// @namespace Quora
// @version 1
// @description Disable quora blocker
// @author Me
// @include http*//de.quora.com/*
// @include http*//www.quora.com/*
// @grant none
// ==/UserScript==
@uke5tar
uke5tar / remove-and-add-placeholder-on-focus-blur.js
Created October 21, 2018 19:01
Remove and add placeholder on focus/blur for input fields and textareas (jQuery/ ES6)
// removes and adds placeholder onfocus/ blur (jQuery)
$('input, textarea').focus(function(){
$(this).data('placeholder',$(this).attr('placeholder'))
.attr('placeholder','');
}).blur(function(){
$(this).attr('placeholder',$(this).data('placeholder'));
});
// removes and adds placeholder onfocus/ blur (ES6)
document.querySelectorAll('input, textarea').forEach(elem => {
@uke5tar
uke5tar / remove-duplicates-from-array.js
Created October 21, 2018 18:16
Remove Duplicates from Array (ES5/ES6)
// Remove duplicates from array
var testArr = ["a", "a", "b", "b", "c"];
function removeDuplicates(arr) {
return arr.filter(function(elem, index, fullArr) {
return index === fullArr.indexOf(elem);
});
}
removeDuplicates(testArr);