position: absolute), скрываете (opacity: 0; visibility: hidden;). При (:focus, :focus-within и :hover) показываете (opacity: 1; visibility: visible;). .blur, если пользователь сфокусирован).
- var order = document.querySelector('popup_order');
+ var order = document.querySelector('.popup_order');
document.querySelector('#test_id').valuedocument.querySelector('#test_id').selectedIndexdocument.querySelector('#test_id').selectedOptions
body, то поместите его туда.document.getElementsByClassName возвращает HTMLCollection - массив, который будет автоматически изменять свое содержимое при изменениях на странице. Поэтому, либо берете из него первый элемент, либо используете document.querySelector.element.addEventListener('event', handler);; вместо == использовать ===; вместо style.backgroundColor использовать style.setProperty('background-color', value);.
let headerMain = document.getElementById('header__main');
let headerLogo = document.getElementById('header__logo-img');
let headerMenu = document.getElementById('header__menu');
function applySmallHeader() {
headerMain.style.height = '80px';
headerLogo.style.height = '140px';
headerMenu.style.paddingTop = '0px';
}
function applyNormalHeader() {
headerMain.style.height = '136px';
headerLogo.style.height = '170px';
headerMenu.style.paddingTop = '7px';
}
function onPageScroll() {
if (document.body.scrollTop > 80 || document.documentElement.scrollTop > 80) {
applySmallHeader();
} else {
applyNormalHeader();
}
}
window.addEventListener('scroll', function () {
if (window.innerWidth > 992) {
onPageScroll();
}
});
window.addEventListener('resize', function () {
if (window.innerWidth <= 992) {
applyNormalHeader();
} else {
onPageScroll();
}
});
const download = (fileUrl, filename) => {
fetch(fileUrl)
.then(response => response.blob())
.then(data => {
const tempUrl = URL.createObjectURL(data);
const link = document.createElement('a');
link.href = tempUrl;
link.download = filename;
link.addEventListener('click', () => {
setTimeout(() => {
URL.revokeObjectURL(tempUrl);
});
});
link.click();
});
};
window.addEventListener('DOMContentLoaded', () => {
download('MY_URL', 'MY_FILENAME.txt');
});
const strings = [
'<img src="link">1234566 4553342 aaa',
'<div><img class="super-img" src="https://example.com"/></div>',
'src="1"',
'<img src=\'../img.png\'/>'
];
const expression = /img.+?src=(["'])(.+)\1/;
for (const string of strings) {
const src = (string.match(expression) || [])[2] ?? null;
console.log(string);
console.log(src);
}
/*
<img src="link">1234566 4553342 aaa
link
<div><img class="super-img" src="https://example.com"/></div>
https://example.com
src="1"
null
<img src='../img.png'/>
../img.png
*/
mix-blend-mode: overlay. Возможно существует более простое/красивое/элегантное решение, но я сейчас не придумаю такое. Можно сделать намного проще, если не будет следующего условия:чтобы линии начинались с конца второй строки и примыкали ко второй строке