Skip to content

Instantly share code, notes, and snippets.

View thexmanxyz's full-sized avatar
🐌
work work work

Andreas Kar thexmanxyz

🐌
work work work
View GitHub Profile
@thexmanxyz
thexmanxyz / Scrollspy-Dynamic-Offset.js
Last active March 6, 2020 09:26
Bootstrap 4 - Scrollspy dynamic navbar offset
var initScrollSpy = function() {
var navContainer = '#mainNav'; // your navigation container
// initial bind of scrollspy
var bindScrollSpy = function() {
$('body').scrollspy({
target: navContainer,
offset: getOffset() // determine your offset
});
}
@thexmanxyz
thexmanxyz / SD-Ethernet-Buffered-Read-Write.c
Last active March 6, 2020 09:26
Arduino - SD.h / Ethernet.h - Buffered file read / write
int bufferSize = 64; // buffer size you want to use
while(file.available()) // file you previously pointed at
{
char buffer[bufferSize];
memset(buffer, '\n', bufferSize); // don't forget to fill the buffer with \n to prevent errors on last buffer read
file.read(&buffer, bufferSize); // read from file
client->write(buffer, bufferSize); // write to client
}
@thexmanxyz
thexmanxyz / Async-Google-Maps-Loading.js
Last active March 30, 2020 14:04
Asynchronous Google Maps loading, jQuery plugin: https://github.com/thexmanxyz/Async-Google-Maps
// to make this code working for your Google Maps <iframe> please change the src-attribute to data-src and add the class g-maps
// e.g. <iframe class="g-maps" data-src="{your-google-maps-url}" width="100%" height="400" frameborder="0" style="border:0" allowfullscreen></iframe>
// you probably also want to prevent container resizing, please use this CSS with your height value: .g-maps { min-height: 400px; }
var loadGMapAsync = function() {
// determine if container is in viewport
// you might pass an offset in pixel - a negative offset will trigger loading earlier, a postive value later
// credits @ https://stackoverflow.com/a/33979503/2379196
var isInViewport = function($container, offset) {
var containerTop = $container.offset().top;
@thexmanxyz
thexmanxyz / Async-Google-reCAPTCHA-Loading.js
Last active March 30, 2020 14:05
Asynchronous Google reCAPTCHA loading, jQuery plugin: https://github.com/thexmanxyz/Async-Google-reCAPTCHA
// you probably also want to prevent container resizing
// please use this CSS which works fine with the default v2 reCAPTCHA: .g-recaptcha { height: 78px; min-height: 78px; }
var loadRecaptchaAsync = function() {
// determine if container is in viewport
// you might pass an offset in pixel - a negative offset will trigger loading earlier, a postive value later
// credits @ https://stackoverflow.com/a/33979503/2379196
var isInViewport = function($container, offset) {
var containerTop = $container.offset().top;
var containerBottom = containerTop + $container.outerHeight();
@thexmanxyz
thexmanxyz / Simple-Copyright-Generator.php
Last active March 20, 2020 13:01
Simple PHP Copyright Generator
@thexmanxyz
thexmanxyz / _openinghours.scss
Last active March 29, 2020 13:42
Startbootstrap - Business Casual - dynamic opening hours
.opening-hours-section {
&.cta {
padding: 3rem 0 2.5rem 0;
background-color: fade-out($primary, 0.1);
.cta-inner {
position: relative;
padding: 2rem;
margin: 0.5rem;
background-color: fade-out($white, 0.15);
&:before {
@thexmanxyz
thexmanxyz / Lazy-Loading-Images-Spinner.html
Last active March 16, 2020 14:33
Lazy load images and remove BS4 spinner dynamically
<div class="lazy-load-ctn">
<div class="spinner-grow loading-img" role="status">
<span class="sr-only">Loading...</span>
</div>
<img data-src="img/yourimage.png" class="img-fluid lazy">
</div>
@thexmanxyz
thexmanxyz / WOWjs-Reanimate-Element.js
Last active March 29, 2020 13:43
WOW.js Reanimate Single Elements without init() - normal
// If you want to explicitly trigger an animation for certain WOW.js elements again. No need to call `init()` and also not wanted (all elements are reset):
var triggerAnimation = function(selector, animation) {
var $element = $(selector); // get element
var element = $element[0]; // get JS element
var newone = element.cloneNode(true); // clone it
element.parentNode.replaceChild(newone, element); // and replace the old with clone
$element = $(selector); // get cloned jQ element
$element.addClass('wow ' + animation + ' animated'); // apply animations
$element.attr('style', 'visibility: visible; animation-name: ' + animation + ';'); // and styles
@thexmanxyz
thexmanxyz / Reset-WOWjs-Animation-On-Leave-Viewport.js
Last active March 29, 2020 13:43
Reset WOW.js elements for reanimation during scrolling (leaving viewport)
// This snippet dynamically resets animation after passing the viewport (scrolling, resizing), hence they are reanimated when viewing them again
// Helper function for adding elements to box list in WOW, credits @ https://github.com/matthieua/WOW/issues/46#issuecomment-133760823
WOW.prototype.addBox = function(element) {
this.boxes.push(element);
};
wow = new WOW();
wow.init();
var checkWOWJsReset = function() {
var resetWOWJsAnimation = function() {
@thexmanxyz
thexmanxyz / WOWjs-Reanimate-Element-delay.js
Last active March 29, 2020 13:43
WOW.js Reanimate Single Elements without init() - delayed
// If you want to explicitly trigger an animation for certain WOW.js elements again. No need to call `init()` and also not wanted (all elements are reset):
var triggerAnimation = function(selector, animation) {
var $element = $(selector); // get element
// re-apply animation (style and class)
var applyAnimation = function(){
$element = $(selector);
$element.addClass('wow ' + animation + ' animated');
$element.attr('style', 'visibility: visible; animation-name: ' + animation + ';');
};