最初に、またウィンドウのサイズを変更したときに、1em(16px)幅の段落要素を追加して削除しようとしています。スクリプトが最初に読み込まれると、たいていの場合2〜6個の段落要素が余りに多くなります。また、ウィンドウのサイズを変更すると、多くのものが追加されたり、多くのものが削除されたりします。差。私はバニラのjavascriptでこれを達成しようとしています。サイズ変更時の要素の追加と削除
編集:段落は縦になり、1文字幅16pxになります。私はその後、文字をランダムに生成し、連続的に生成して画面に落ちます。
(function(window, undefined){
var parentContainer = document.getElementsByClassName('stringFall_Container'),
paras = document.getElementsByClassName('para'),
containerWidth,
paraWidth,
difference,
paraAmount;
function checkContainerWidth() {
console.log('Running checkContainerWidth();')
containerWidth = parentContainer[0].offsetWidth;
console.log('The containers size is:' + containerWidth)
return true;
}
function checkParaWidth() {
console.log('Running checkParaWidth();')
paraWidth = paras[0].offsetWidth;
console.log('The Paragraphs size is:' + paraWidth)
return true;
}
function checkParaAmount() {
console.log('Running checkParaAmount();');
paraAmount = paras.length;
console.log(paraAmount);
return true;
}
function checkDifference() {
console.log('Running checkDifference();');
difference = containerWidth/paraWidth;
return true;
}
function addPara (number) {
console.log('Running addPara();');
number = number === undefined ? 1 : number;
console.log(number);
for (var i = 0; i < number; i++) {
var create = document.createElement('p');
parentContainer[0].appendChild(create).setAttribute('class', 'para');
}
return true;
}
function removePara (number) {
console.log('Running removePara()');
var lastElement = paras[paras.length - 1];
checkParaAmount();
number = number === undefined ? 1 : number;
for (var i = 0; i < number; i++) {
parentContainer[0].removeChild(lastElement);
}
return true;
}
function executeOnResize() {
checkDifference();
console.log('Running executeOnResize();');
checkContainerWidth();
if (difference < paraAmount) {
addPara(paraAmount - difference);
} else {
removePara(difference - paraAmount)
}
}
addPara();
checkContainerWidth();
checkParaWidth();
checkParaAmount();
checkDifference();
console.log(difference);
addPara(difference);
window.addEventListener('resize', executeOnResize, false);
})(this);
は、クラス名が 'stringFall_Container'で、その幅の90〜100%をカバーするコンテナの幅にまたがる段落ですか? –
私はおそらくそれを明らかにすべきだったでしょうか?ハハ!パラグラフは実際には縦1文字で縦になり、最終的にはランダムに連続して画面に表示される文字を生成します。 –