-1
ユーザーがボタンをクリックしたときに機能を開始しようとしています。機能を開始しようとしています
サイトがロードされたときと、ユーザーがブラウザをスクロールまたはサイズ変更したときに開始されます。しかし、ユーザーが特定のボタンをクリックしたときに、どのように動作させるのですか?ボタンにはonclick = "sort();"という文字列があります。
var lazy = [];
registerListener('load', setLazy);
registerListener('load', lazyLoad);
registerListener('scroll', lazyLoad);
registerListener('resize', lazyLoad);
document.getElementById('sort').addEventListener('click', function() {
});
function setLazy(){
lazy = document.getElementById('img-loading').getElementsByTagName('img');
// console.log('Found ' + lazy.length + ' lazy images');
}
function lazyLoad(){
console.log('lazyLoad initiated');
for(var i=0; i<lazy.length; i++){
if(isInViewport(lazy[i])){
if (lazy[i].getAttribute('data-src')){
lazy[i].src = lazy[i].getAttribute('data-src');
lazy[i].removeAttribute('data-src');
}
}
}
cleanLazy();
console.log('lazyLoad END');
}
function cleanLazy(){
lazy = Array.prototype.filter.call(lazy, function(l){ return l.getAttribute('data-src');});
}
function isInViewport(el){
var rect = el.getBoundingClientRect();
return (
rect.bottom >= 0 &&
rect.right >= 0 &&
rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.left <= (window.innerWidth || document.documentElement.clientWidth)
);
}
function registerListener(event, func) {
if (window.addEventListener) {
window.addEventListener(event, func)
} else {
window.attachEvent('on' + event, func)
}
}
ボタンをクリックすることで実行されなければならない、どの機能? –
本質的には、開始するにはlazyLoadが必要ですが、そうする際にループ内のif文が機能しません。それは、ページの読み込み、スクロール、またはサイズ変更の際に機能します。 – Julian