<div class="block">
<div class="active"></div>
<div class="active"></div>
<div class="active"></div>
<div class="active"></div>
<div class="active"></div>
</div>
const count = $('.block').find('.active').length
console.log(count) // 5
Тут просто рутина
$services_id = get_cat_ID( 'services' );
foreach( $categories as $category ) {
if( 0 != $category->parent && $category->category_parent != $services_id
&& $category->cat_ID != $services_id ) {
if($category->cat_name!==""){
echo '<button>';
echo $category->cat_name . '</button>';
}else{
echo '<button class="subcat_link">';
echo $category->cat_name . '</button>';
}
}
}
const server = done => {
browserSync.init({
server: {
baseDir: 'path to server root'
},
notify: false
});
done();
};
exports.server = server;
exports.default = series(server, parallel(css, allcss));
browserSync.stream()
с PHP сломается, и лучше использовать таску для этого, в которой будете вызывать browserSync.reload()
. //first window parallax petel
var $parallaxContainer = $(".plx-wrap-main"); //our container
var $parallaxItems = $parallaxContainer.find(".plx-wrap-main__petel-plx"); //elements
var $parallaxContainerSecond = $(".features-window__container"); //our container
var $parallaxItemsSecond = $parallaxContainerSecond.find(".features-window__petel-plx"); //elements
var fixer = 0.0007; //experiment with the value
var wait = false;
var waitSecond = false;
var speedX, speedY, pageX, pageY;
//main window petel init
function mainPetelMouseMoveInit() {
$(document).on("mousemove", function(event){
if(!wait){
pageX = event.pageX - ($parallaxContainer.width() * 0.5);
pageY = event.pageY - ($parallaxContainer.height() * 0.5);
$parallaxItems.each(function(){
var item = $(this);
speedX = item.data("speed-x");
speedY = item.data("speed-y");
TweenLite.to(item,1.3, {
x: -(item.position().left + pageX * speedX )*fixer,
y: -(item.position().top + pageY * speedY)*fixer,
ease: Power3.easeNone
});
});
wait = true;
setTimeout(function(){ wait = false; },120);
}
});
}
//main window petel disable
function petelMouseMoveUnbind() {
$(document).off('mousemove');
}
//second window petel init
function secondPetelMouseMoveInit() {
$(document).on("mousemove", function(event){
if(!waitSecond){
pageX = event.pageX - ($parallaxContainerSecond.width() * 0.5);
pageY = event.pageY - ($parallaxContainerSecond.height() * 0.5);
$parallaxItemsSecond.each(function(){
var item = $(this);
speedX = item.data("speed-x");
speedY = item.data("speed-y");
TweenLite.to(item,1.3, {
x: -(item.position().left + pageX * speedX )*fixer,
y: -(item.position().top + pageY * speedY)*fixer,
ease: Power3.easeNone
});
});
waitSecond = true;
setTimeout(function(){ waitSecond = false; },120);
}
});
}
rewrite
в register_post_type
не в курсе, что скрываеться под %workscat%
и не может его заменить на название кастомной категории. Вам необходимо зарегистрировать правило изменения адреса и тэг:add_action( 'init', function(){
add_rewrite_rule(...);
add_rewrite_tag(...);
});
flush_rewrite_rules();
const containerSelector = '.tabs';
const headerSelector = `${containerSelector} .tabs-nav__item`;
const contentSelector = `${containerSelector} .tab`;
const activeClass = 'is-active';
function setActiveTab(header) {
if (header instanceof Element && header.matches(headerSelector)) {
const container = header.closest(containerSelector);
const headers = container.querySelectorAll(headerSelector);
const contents = container.querySelectorAll(contentSelector);
const index = Array.prototype.indexOf.call(headers, header);
const toggle = (n, i) => n.classList.toggle(activeClass, i === index);
headers.forEach(toggle);
contents.forEach(toggle);
}
}
// делегирование, подключаем обработчик клика один раз для всех
document.addEventListener('click', e => {
setActiveTab(e.target.closest(headerSelector));
});
// или, назначаем обработчик клика индивидуально каждому заголовку
document.querySelectorAll(headerSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => setActiveTab(e.currentTarget));