我在javascript中遇到一个奇怪的问题已经挣扎了很长时间。 这就是我所做的:
我通过获取高度并添加一些偏移来计算div的每个位置。 我的变量' topPos'疯了每次评估函数时都不会 重启。相反,它会增长和增长。这个网站变得非常小巧。但是这个 时间我只是希望它以正确的方式工作..(: 有人可以帮忙吗? 谢谢。
这是代码:
function setPos(){
var vidArray = shuffleFrames();
var topPos = 30;
var prevHeight = 0;
for(var i = 0; i < vidArray.length; i++){
var element = vidArray[i];
element.style.top = topPos.toString() + "px";
prevHeight = $(vidArray[i]).height();
topPos = topPos + prevHeight + 15;
element.style.display = "block";
};
topPos = 30;
};
它被这个函数调用:
function randStart(){
var elem = document.getElementsByClassName("videofont");
getElements(elem);
setPos();
};
这是html-part:
div id="p00" class="videofont" >
<iframe src="some video" ></iframe>
</div>
div id="p01" class="videofont" >
<iframe src="some video" ></iframe>
</div>
div id="p02" class="videofont" >
<iframe src="some video" ></iframe>
</div>
" … and so on "
删除功能:
function remPos(){
var vidArray = frames;
for(var i=0; i<frames.length; i++){
var element = vidArray[i];
element.style.display = "none";
$(element).removeAttr('style');
};
};
其余的:
function shuffleFrames() {
var currentIndex = frames.length,
temporaryValue, randomIndex;
while (0 !== currentIndex) {
randomIndex = randomizer(currentIndex);
currentIndex -= 1;
temporaryValue = frames[currentIndex];
frames[currentIndex] = frames[randomIndex];
frames[randomIndex] = temporaryValue;
};
return frames;
};
var frames = [];
function getElements(elements){
for(i = 0; i < elements.length; i++){
frames.push(elements.item(i));
};
};
.videofont sais的css: .videofont { 位置:绝对的; 左:400像素; 顶:300像素; 的z-index:999; 显示:无; }
谢谢!