View hnl.stickyStuck
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const stickes = document.body.querySelectorAll('.position-sticky'); | |
window.addEventListener('scroll', function(){ | |
stickes.forEach(function(el){ | |
let stuck = false; | |
const rect = el.getBoundingClientRect(); | |
if (window.getComputedStyle(el).bottom == 'auto') { | |
stuck = rect.top === parseInt(window.getComputedStyle(el).top, 10); | |
} else if (window.getComputedStyle(el).top == 'auto') { | |
stuck = rect.height + rect.top < window.innerHeight; |
View debouncer.mjs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* | |
* debounceThis ES6 module v1.2 (03-2023) | |
* Debounces/rate-limits the provided function (callback) | |
* | |
* Example usage: | |
* | |
* import {debounceThis} from "debouncer.mjs"; | |
* | |
* window.addEventListener('scroll', debounceThis((e)=> { |
View doubleClickHandler.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Handles the click event to detect single or double clicks. | |
* @param {MouseEvent} event - The click event object. | |
*/ | |
function doubleClickHandler(event) { | |
const target = event.target; | |
if (new Date().getTime() - (target._lastTouch || 0) > 500) { | |
// Not a double click | |
target._lastTouch = new Date().getTime(); |
View hnl.isVisible.mjs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** isVisible | |
* | |
* Determines whether an element is visible within the (specified, or Window) viewport. Executes the callback based | |
* on that result. The callback is called with two parameters: a boolean that's true if the element is visible, along | |
* with the element's bounding box, including 'pageY' and 'pageX' which contain the element's position as relative to | |
* the whole document. Useful for scrolling into view. | |
* | |
* The viewport can be omitted, specified partially or completely. | |
* | |
* Usage: isVisible(myElement, callback, {viewport object}); |
View hnl.mobileConsole.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* | |
* NEW VERSION AT https://github.com/c-kick/mobileConsole | |
* | |
* hnl.mobileConsole - javascript mobile console - v1.3.8 - 04/01/2021 | |
* Adds html console to webpage. Especially useful for debugging JS on mobile devices. | |
* Supports 'log', 'trace', 'info', 'warn', 'error', 'group', 'groupEnd', 'table', 'assert', 'clear' | |
* Inspired by code by Jakub Fiala (https://gist.github.com/jakubfiala/8fe3461ab6508f46003d) | |
* Licensed under the MIT license | |
* |
View hnl.debounce.v4.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* JavaScript function prototype debouncer 4.3 - 2010-2022 hnldesign.nl - Klaas Leussink | |
* Demo: https://code.hnldesign.nl/demo/hnl.debounce.html | |
* | |
* Based on code by Paul Irish and the original debouncing function from John Hann | |
* http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ | |
* Register deBouncer as a function prototype. | |
* | |
* All debounced variants of the function (depending on the supplied debouncing parameters (see below) | |
* are stored inside a 'dbObj' Object inside the debounced function. |
View hnl.inertial.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* jQuery inertial Scroller v1.5 | |
* (c)2013 hnldesign.nl | |
* This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. | |
* | |
* More information: http://www.hnldesign.nl/work/code/momentum-scrolling-using-jquery/ | |
*/ | |
/*jslint browser: true*/ | |
/*global $, jQuery*/ |
View hnl.collision.detection.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* jQuery Collision Detection - v1.0 - 1/7/2014 | |
* http://www.hnldesign.nl/work/code/collision-prevention-using-jquery/ | |
* | |
* Copyright (c) 2014 HN Leussink | |
* Dual licensed under the MIT and GPL licenses. | |
* | |
* Example: http://code.hnldesign.nl/demo/hnl.collision.detection.html | |
*/ |
View schedule_booleans.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Blueprint by Klaas Leussink / hnldesign.nl (c) 2022 | |
blueprint: | |
name: Set schedule-related booleans | |
source_url: https://gist.github.com/c-kick/b4dcdae9d9fa85ca8c51cdedd7293bf5 | |
description: >- | |
This automation uses schedules to set two indicators (booleans): a morning schedule (useful for short morning routines on working days) and a home indicator (useful for indicating people are home, until they go to bed). It also includes an option to use a holiday calendar, which sets the home indicator on the specified start and end times if the current day is a holiday. Another option is a vacation override, which - when set to active - ignores *all* schedules/calendars and uses the specified 'vacation schedule' instead. | |
domain: automation | |
input: | |
morning_routine_schedules: | |
name: Morning schedule(s) |
NewerOlder