Skip to content

Instantly share code, notes, and snippets.

View ivan-kalachikov's full-sized avatar
:octocat:
falling in love with open source

Ivan Kalachikov ivan-kalachikov

:octocat:
falling in love with open source
View GitHub Profile
var allImages = document.querySelectorAll('img'), imageIndex;
for (imageIndex = 0; imageIndex < allImages.length; ++imageIndex) {
var src = allImages[imageIndex].getAttribute('src');
allImages[imageIndex].removeAttribute('src');
allImages[imageIndex].setAttribute('data-src',src);
}
var allIframes = document.querySelectorAll('iframe'), iframeIndex;
for (iframeIndex = 0; iframeIndex < allIframes.length; ++iframeIndex) {
function getNumberWithOrdinal(n) {
var s=["th","st","nd","rd"],
v=n%100;
return n+(s[(v-20)%10]||s[v]||s[0]);
}
//move recaptcha block to visible area
jQuery( document ).on( 'submit', '.gform_wrapper form', function() {
var n = 0;
var i = setInterval( function() {
if ( n < 20 ) {
jQuery( 'iframe[src*="recaptcha/api2/bframe"]' ).each( function( i, item ) {
var holder = jQuery( item ).parent().parent();
if ( holder.length && holder.css( 'visibility' ) == 'visible' ) {
holder.css( 'top', jQuery( window ).scrollTop() + 'px' );
clearInterval( i );
@supports (-webkit-overflow-scrolling: touch) {
}
@ivan-kalachikov
ivan-kalachikov / gist:2d6046656c044ddcef226686ef891d0f
Created June 11, 2019 08:20
video autoplay on iphone solution
<video width="1920" height="1080" autoplay playsinline loop muted>
...
</video>
@ivan-kalachikov
ivan-kalachikov / gist:29bc6dddcdf64682135f23dae78a25c3
Created May 30, 2019 07:35
Magnific popup autoplay youtube video
<a href="https://www.youtube.com/watch?v=ZNr5KdZNThQ" class="btn play-video youtube">Play</a>
$( '.banner .play-video.youtube' ).magnificPopup( {
type: 'iframe',
iframe: {
markup: '<div class="mfp-iframe-scaler">'+
'<div class="mfp-close"></div>'+
'<iframe class="mfp-iframe" frameborder="0" allowfullscreen allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"></iframe>'+
'</div>',
patterns: {
@ivan-kalachikov
ivan-kalachikov / init.js
Created March 6, 2019 13:32
lazy load images
var allImages = document.querySelectorAll('img'), imageIndex;
for (imageIndex = 0; imageIndex < allImages.length; ++imageIndex) {
var src = allImages[imageIndex].getAttribute('src');
allImages[imageIndex].removeAttribute('src');
allImages[imageIndex].setAttribute('data-src',src);
}
var allBgImages = document.querySelectorAll('[style*=background-image]'), imageBgIndex;
for (imageBgIndex = 0; imageBgIndex < allBgImages.length; ++imageBgIndex) {
var url = allBgImages[imageBgIndex].style.backgroundImage;
@ivan-kalachikov
ivan-kalachikov / init.js
Created December 7, 2018 09:07
chat and recaptcha position
//chat and recaptcha position
function chatAndRecaptchaPosition() {
if (!$('html').hasClass('has-cookie-bar cookie-bar-bottom-bar')) {
return;
};
var height = parseInt($('#catapult-cookie-bar').outerHeight());
var styles = '<style>.has-cookie-bar.cookie-bar-bottom-bar body > .container {margin-bottom:' + height + 'px;} .has-cookie-bar.cookie-bar-bottom-bar .mcwidget-embed {bottom:' + parseInt(height - 30) + 'px;} .has-cookie-bar.cookie-bar-bottom-bar .grecaptcha-badge {bottom:' + parseInt(height + 1) + 'px !important;}</style>';
$('#additional-styles').html(styles);
}
@ivan-kalachikov
ivan-kalachikov / init.js
Created November 22, 2018 11:13
IE Column-count extra space js solution
$(window).load(function () {
if (document.documentMode || /Edge/.test(navigator.userAgent)) {
var bottom = $('.faq').offset().top + $('.faq').outerHeight();
var minimumSpace = 1000;
$('.faq .item').each(function (i, item) {
var space = bottom - ($(item).offset().top + $(item).outerHeight());
minimumSpace = (space < minimumSpace) ? space : minimumSpace;
});
$('.faq .inner').css('margin-bottom', 100 - minimumSpace);
@ivan-kalachikov
ivan-kalachikov / init.js
Created November 16, 2018 14:40
Google map with info window from place id information
global.initMap = () => {
jQuery('.map-canvas').each((index, element) => {
let map = jQuery(element);
const position = new google.maps.LatLng(map.data('latitude'), map.data('longitude'));
const markerIcon = map.data('icon');
const mapZoom = map.data('zoom');
const dataPlaceId = map.data('place-id') || 'null';
let infowindow = new google.maps.InfoWindow();
map = new google.maps.Map(element, {