You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

48 lines
1.1 KiB

require('./showMore.css')
function delayedUpdate (dom, p) {
if (!p.timer) {
p.timer = global.setTimeout(
() => {
delete p.timer
if (dom.scrollHeight > dom.offsetHeight && dom.classList.contains('collapsed')) {
p.classList.add('active')
}
if (dom.scrollHeight <= dom.offsetHeight && dom.classList.contains('collapsed')) {
p.classList.remove('active')
}
},
1
)
}
}
function showMore (category, dom) {
dom.classList.add('collapsed')
let p = document.createElement('div')
p.className = 'showMore'
dom.parentNode.insertBefore(p, dom.nextSibling)
let a = document.createElement('a')
a.href = '#'
a.innerHTML = lang('more_results')
a.onclick = () => {
dom.classList.remove('collapsed')
p.classList.remove('active')
return false
}
p.appendChild(a)
category.on('add', delayedUpdate.bind(this, dom, p))
category.on('remove', delayedUpdate.bind(this, dom, p))
category.on('open', () => {
p.classList.remove('active')
dom.classList.add('collapsed')
delayedUpdate(dom, p)
})
}
module.exports = showMore