let getTaskSolution = (src) => {
return new Promise((resolve, reject) => {
anticaptcha.getBalance(async (err, balance) => {
if (err) {
reject(err);
return;
}
anticaptcha.setMinLength(5);
if (balance > 0) {
anticaptcha.createImageToTextTask({
case: true, // or params can be set for every captcha specially
body: await image2base64(src).catch(reject)
}, (err, taskId) => {
if (err) {
reject(err);
return;
}
anticaptcha.getTaskSolution(taskId, (err, taskSolution) => {
if (err) {
reject(err);
return;
}
resolve(taskSolution)
});
});
}
});
});
};
(async () => {
setUTitle("Loading app");
if (!VK_TOKEN) {
let succ = await initToken();
if (!succ) {
process.exit();
}
}
vk.token = VK_TOKEN;
vk.captchaHandler = async ({src, type}, retry) => {
let key = await getTaskSolution(src).catch((error) => console.log(error));
try {
await retry(key);
con('Всё ок.');
} catch (e) {
con("Всё фигово. " + e.message, true);
}
};
})();
const obj = (str
.match(/\w+=[\d;]+/g) || [])
.reduce((acc, n) => {
const [ key, values ] = n.split('=');
acc[key] = values.split(';').map(Number);
return acc;
}, {});
const obj = Array
.from(new URL(str).searchParams)
.reduce((acc, [ k, v ]) => (
acc[k] = v.split(';').map(n => +n),
acc
), {});
const el = currentTarget.querySelector('селектор элемента');
if (el) {
el.remove();
}
<button data-move="-10,0">left</button>
<button data-move="10,0">right</button>
<button data-move="0,-10">up</button>
<button data-move="0,10">down</button>
<button data-move="10,10">right down</button>
<button data-move="20,-5">fast right slow up</button>
$(document).on('click', '[data-move]', function() {
const [ dx, dy ] = this.dataset.move.split(',').map(Number);
$('#overlay')
.css('left', (i, val) => `${parseInt(val) + dx}px`)
.css('top', (i, val) => `${parseInt(val) + dy}px`);
});
// или, к чёрту jquery
document.addEventListener('click', e => {
const { move } = e.target.dataset;
if (move) {
const block = document.querySelector('#overlay');
const { left, top } = getComputedStyle(block);
const [ dx, dy ] = move.split(',').map(n => +n);
block.style.left = parseInt(left) + dx + 'px';
block.style.top = parseInt(top) + dy + 'px';
}
});
var obj = {
foo() {
const message = this.isFooCalled ? 'Bye!' : 'Hello!';
console.log(message);
if (!this.isFooCalled) {
this.isFooCalled = true;
}
}
}
obj.foo();
Так же динамический фон с постоянно меняющимся фоном и изображением.
Что тут используется для прелоадера
<div class="progressbar" style="z-index: 2; opacity: 1;">
<span id="progressbar" style=""></span>
</div>
и как они сделали такой фон? Наложили цветное изображение на фон?
<div class="projects__images js-projects--images" style="opacity: 1;">
<div class="projects__image desaturate js-projects--image" style="z-index: 2; opacity: 0; background-image: url("http://www.poigneedemainvirile.com/wp-content/themes/p2mv/img/projects/180g/header.jpg");"></div>
<div class="projects__image desaturate js-projects--image current" style="z-index: 1; background-image: url("http://www.poigneedemainvirile.com/wp-content/themes/p2mv/img/projects/xme-company/header.jpg"); opacity: 1;"></div>
</div>
++ static
+++ images
++++ logo.png
+ header.php
+ content.php
+ footer.php
<?php $logo_url = '/images/logo.png'; ?>
<header>
<h2>Тут хэдер</h2>
<p>А вот и лого:</p>
<img src="<?=$logo_url;?>" alt="logo">
</header>
<?php
require 'header.php';
$page = !empty($_GET['page'])
? filter_input(INPUT_GET, 'page', FILTER_SANITIZE_STRING)
: 'index' ; ?>
<main>
<?php if($page === 'index'): ?>
<p>Главная страница сайта.</p>
<?php else: ?>
<p>Не главная страница сайта.</p>
<a href="/">Перейти на главную</a>
<?php endif; ?>
</main>
<?php require 'footer.php'; ?>
<?php $copyright = 'Mr. Y'; ?>
<footer>
<h4>Тут футер</h4>
<p><?=$copyright;?></p>
</footer>
let obj = {a: 0};
new TimelineMax({
onUpdate: function() {}
})
.fromTo(obj, .5, {
a: 0
}, {
a: 1
});