Skip to content

Instantly share code, notes, and snippets.

@Inontran
Inontran / lazysizes-bg.js
Created June 4, 2020 05:19
lazyload фоновых картинок c lazysizes и jquery
// lazyload фоновых картинок, используя lazysizes.min.js
$(document).on('lazybeforeunveil', function (e) {
var bg = e.target.getAttribute('data-bg');
if (bg) {
e.target.style.backgroundImage = 'url(' + bg + ')';
}
});
@Inontran
Inontran / slow-scroll.js
Created June 3, 2020 07:43
плавная прокрутка до элемента
$('html:not(:animated),body:not(:animated)').animate({
scrollTop: $(element).offset().top
}, 800);
@Inontran
Inontran / get-scrolltop-body.js
Created May 27, 2020 06:26
кроссбраузерное получение scrolltop страницы
var scrollTop_body = $('html, body').scrollTop() || $(document).scrollTop() || $(window).scrollTop();
@Inontran
Inontran / update-url.js
Created May 15, 2020 09:12
функция добавления get-параметров в url без перезагрузки страницы
function updateURL(params) {
if (history.pushState) {
var baseUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
var newUrl = baseUrl + '?' + params;
history.pushState(null, null, newUrl);
}
else {
console.warn('History API не поддерживается');
}
}
@Inontran
Inontran / get-url-vars.js
Created May 4, 2020 07:31
получение GET-параметров из URL
// Считывает GET переменные из URL страницы и возвращает их как ассоциативный массив.
function getUrlVars(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
@Inontran
Inontran / gallery-thumbs.js
Created April 15, 2020 05:07
связка карусели и миниатюр
@Inontran
Inontran / calc-pos-select.js
Created April 15, 2020 03:01
рассчет положения выпадающиего списка, чтобы не вылазил за пределы экрана
function to_position_select( $select ){
if( $select.length == 0 ){
// console.log('Нет ни одного активного select-container');
return false;
}
var $dropdown_content = $select.find('.dropdown-content');
$dropdown_content.removeClass('dropdown-content-right');
$dropdown_content.removeClass('dropdown-content-center');
$dropdown_content.removeClass('dropdown-content-up');
@Inontran
Inontran / click-script.js
Created April 11, 2020 05:32
закрытие элемента по клику вне этого элемента
// закрытие элемента по клику вне этого элемента
$('body').on('click', '*', function (event) {
if( !$(event.target).closest('.select-container').length && !$(event.target).hasClass('.select-container') ) {
$('.select-container').removeClass('active');
}
});
@Inontran
Inontran / side-dragscroll.js
Created April 10, 2020 03:08
скролл в лево-право с помощь мыши
var $slider = $('.side-scroll .side-scroll-wrapper');
var isDown = false;
var startX;
var scrollLeft;
$slider.mousedown(function(e){
isDown = true;
$slider.addClass('active');
startX = e.pageX - $slider.get(0).offsetLeft;
scrollLeft = $slider.get(0).scrollLeft;
var scroll_top_body = 0;
$('.modal').on('shown.bs.modal', function(){
if ("ontouchstart" in document.documentElement && $(window).width() <= BREAKPOINT_MD){
// console.log('mobile device');
scroll_top_body = $(window).scrollTop();
$('body').css({
'position': 'fixed',
'top': '-' + scroll_top_body + 'px',
'left': 0
});