Skip to content

Instantly share code, notes, and snippets.

@Ankhena
Ankhena / details.js
Last active April 9, 2021 18:28
Details
// toggle details
let detailsBtns = document.querySelectorAll('.details__btn');
if (detailsBtns) {
detailsBtns.forEach(btn => btn.addEventListener('click', (e) => {
this.closest('.details').classList.toggle('details--open');
}))
}
// end toggle details
<div class="tooltip">
<button class="tooltip__btn" type="button" aria-label="Подробности"></button>
<div class="tooltip__text">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, deserunt, distinctio dolorum eaque eius eveniet ipsam mollitia nostrum pariatur quibusdam quisquam quo quod reprehenderit velit voluptas? Magnam sequi totam voluptate!
</div>
</div>
@Ankhena
Ankhena / index.html
Created May 20, 2021 09:06
Styling the input file
<p>
<input id="file" class="visually-hidden" type="file">
<label for="file">Загрузить файл</label>
</p>
<p>
<input id="file2" class="visually-hidden" type="file">
<label for="file2">Загрузить файл</label>
</p>
@Ankhena
Ankhena / colorBlocks.js
Last active September 25, 2021 09:49
Colors the selected elements in random colors. Launch: colorBlocks ('. random');
const colorBlocks = (block) => {
const items = document.querySelectorAll(block);
items.forEach(item => {
let color = (Math.random().toString(16) + '000000').substring(2, 8).toUpperCase();
item.style.setProperty('--bg-color', '#' + color);
})
}
colorBlocks('.random');
@Ankhena
Ankhena / equalHeight.js
Created October 9, 2021 07:19
equalHeight vanilla javascript
const equalHeight = (selector) => {
const blocks = document.querySelectorAll(selector);
let maxHeight = 0;
let blockHight;
blocks.forEach(block => {
block.style.setProperty('height', 'unset');
})
blocks.forEach(block => {
blockHight = block.clientHeight;
@Ankhena
Ankhena / subnav-with-columns.html
Created November 18, 2021 19:41
Выпадающее меню и CSS columns
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Выпадающее меню и CSS columns</title>
<style>
function checkWebP(callback){
let webP = new Image();
webP.onload = webP.onerror = function(){
callback(webP.height == 2);
};
webP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';
};
checkWebP(function(support){
if(support) document.body.classList.add("webp");
else document.body.classList.add("no-webp");
@Ankhena
Ankhena / outline.css
Last active March 6, 2023 19:53
Scroll search outline
* {
--out-width: 2px;
outline: var(--out-width) solid red;
outline-offset: calc(0px - var(--out-width));
}
*::before, *::after {
outline: var(--out-width) solid lime;
outline-offset: calc(0px - var(--out-width));
}
@Ankhena
Ankhena / index.html
Last active May 12, 2023 10:58
Ya map
<div class="contacts__map" id="map">
<div class="contacts__map-image no-js">
<picture>
<source type="image/webp" media="(max-width: 767px)"
srcset="img/map/map-mobile.webp 1x, img/map/map-mobile@2x.webp 2x">
<source type="image/webp" media="(max-width: 1023px)"
srcset="img/map/map-tablet.webp 1x, img/map/map-tablet@2x.webp 2x">
<source type="image/webp" srcset="img/map/map-desktop.webp 1x, img/map/map-desktop@2x.webp 2x">
<source media="(max-width: 767px)" srcset="img/map/map-mobile.jpg 1x, img/map/map-mobile@2x.jpg 2x">
@Ankhena
Ankhena / colors.html
Created August 7, 2023 12:05
Цикл for в SCSS
<ul class="colors">
<li class="colors__item">1</li>
<li class="colors__item">2</li>
<li class="colors__item">3</li>
<li class="colors__item">4</li>
<li class="colors__item">5</li>
</ul>