Цитата:
Цитата:
вставить фото кнопка ![]() |
|
Black_Star,
более помочь ничем не могу, в моих браузерах пост 5 работает нормально выводит 400 маленьких блоков. 21 блок выводит ваш код, потому что условие и размеры неправильно считаются. строка 47 и строки 117 -123 ... медитируйте
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Squama</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<style type="text/css">
#square {
width: 600px;
height: 600px;
border: 1px solid black;
}
#minSquare {
position: relative;
margin: 5%;
width: 500px;
height: 500px;
border: 1px solid black;
background-color: yellow;
/*overflow: hidden;*/
}
#first {
position: absolute;
height: 100%;
width: 500px;
margin-top: -2%;
z-index: 1;
}
#second {
position: absolute;
height: 100%;
width: 500px;
margin-left: 4%;
z-index: 2;
perspective: 200px;
}
.one {
box-sizing: border-box;
width: 5%;
height: 5%;
background-color: red;
border: 1px solid black;
}
.one:hover {
/* */
/*perspective: 100px;*/
transform-origin: right;
transition: transform 0.5s;
transform: rotateY(60deg);
background-color: white;
}
</style>
</head>
<body>
<div id="square">
<div id="minSquare">
<div id="first">
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
</div>
</div>
</div>
<script type="text/javascript">
window.onload = function() {
$(function() {
$("#minSquare").append('<div id="second">');
$("#second").css({
"width": "100%",
"height": "100%"
});
var widthOne = $(".one").width();
var heightOne = $(".one").height();
console.log("width of One block =" + widthOne);
console.log("heigh of One block =" + heightOne);
var rowWidth = $("#second").width();
var rowHeight = $("#second").height();
console.log("all Long #second = " + rowHeight);
var full_height = $(".one").outerHeight();
while (rowHeight > full_height) {
$("#second").append('<div class="one">');
full_height = 0;
$("#second > div ").each(function() {
full_height += this.offsetHeight
})
}
})
};
</script>
</body>
</html>
|
Цитата:
Ещё вопрос по горизонтальному заполнению. Как сделать что б генерируемый код выглядел так: <div id="square"> <div id="minSquare"> <div class="column"> <div class="one"></div> <div class="one"></div> <div class="one"></div> <div class="one"></div> <div class="one"></div> ++++ И так далие, пока сумма heigh div-s class="one" < Heigh div id="minSquare" +++ </div> <div id="column"> ~ div-s class="one"~ </div> Количество дивов <div id="column"> с потомками "one" должно быть столько что б они перекрывали по ширине div id="minSquare" </div> </div> Выглядеть приблизительно так. Единственное что перекрытие у каждого нового <div id="column"> z-index +1 ![]() ![]() Тут у меня проблема возникла в том что у меня class="column" имеет .column { position: absolute; height: 100%; width: 100%; } и каждый новый столбец должен иметь смещение по горизонтале а каждый парный ещё и по вертикале var newZindex = 1; // каждый новый столбец перекрывает предыдущий var newMarginLeft = 4; // смещение каждого столбца вправо на 4% var newMarginTop = -2; // каждый парный div с классом colomn должен подниматься вверх на -2%; $('.column').css({ "margin-left" : "newMarginLeft" * i + "%" , "margin-top" : "newMarginTop" * i + "%" , // тут у меня вопрос как проверять на четность. Думал как-то привязать к z-index "z-index" : "newZindex" * i }); Ещё вопрос как сделать проверку на то что б сумма ширины всех колонок с классом .column была меньше ширины div id="minSquare", была мысль как Вы сделать var len = (rowWidth/widthOne|0); for (var i=0; i<len; i++) но тут такое не прокатит, я ведь пишу .column {width: 100%;}, да и абсолютное позиционирование + они на разных уровнях z-index .вообщем Одни вопросы. |
Black_Star,
пас ... вам к специалисту по css |
Black_Star,
на последок ... :)
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
#square {
width: 600px;
height: 600px;
border: 1px solid black;
}
#minSquare {
position: relative;
margin: 5%;
width: 500px;
height: 500px;
border: 1px solid black;
background-color: yellow;
/*overflow: hidden;*/
display: flex;
flex-wrap: wrap;
}
.one {
float: left;
box-sizing: border-box;
width: 5%;
height: 5%;
background-color: red;
border: 1px solid black;
}
.one:nth-child(2n) {
margin-top: -4px;
z-index: 10;
margin-left: -2px;
}
.one:hover {
/*perspective: 100px;*/
transform-origin: right;
transition: transform 0.5s;
transform: rotateY(60deg);
background-color: white;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script>
$(function() {
var div = $('#minSquare');
var rowWidth = div.width();
var rowHeight = div.height();
var one = $('<div>',{'class' : 'one'}).appendTo(div);
var widthOne = one.outerWidth(true);
var heightOne = one.outerHeight(true);
var len = (rowHeight/heightOne|0) * (rowWidth/widthOne|0)-1;
for (var i=0; i<len; i++) {
div.append(one.clone())
}
})
</script>
</head>
<body>
<div id="square">
<div id="minSquare"></div>
</div>
</body>
</html>
|
Спасибо за помощь. Вот что на выходи вышло :)
https://codepen.io/BlackStar1991/pen/JRVRYm |
| Часовой пояс GMT +3, время: 05:04. |