Рандомный вывод блоков
Здравствуйте! Если выводить меньше блоков, чем есть всего, то ротация работает. Если выводить все блоки, тогда ротации нет. Помогите, пожалуйста, исправить ошибки. Спасибо!
$(function() {
var n = 5,
divs = $('#elements div'),
div;
divs.sort(function (a, b) {return Math.random() - 0.5;});
for (var i=0; i < n; ++i) {
divs.eq(i).show();
}
});
<style>#elements div {
display: none;
}</style>
<div id="elements">
<div id="container-1">
Текст 1
</div>
<div id="container-2">
Текст 2
</div>
<div id="container-3">
Текст 3
</div>
<div id="container-4">
Текст 4
</div>
<div id="container-5">
Текст 5
</div>
</div>
|
<style>#elements div {
display: none;
}</style>
<div id="elements">
<div id="container-1">
Текст 1
</div>
<div id="container-2">
Текст 2
</div>
<div id="container-3">
Текст 3
</div>
<div id="container-4">
Текст 4
</div>
<div id="container-5">
Текст 5
</div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>$('#elements div').each(function() {$(this).parent()[Math.random() > 0.5 ? 'parent' : 'append']($(this).show())});
</script>
Вариант :dance: |
случайный вывод блоков
LADYX,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
#elements div {
display: none;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var n = 5, divs = $('#elements div').get();
for ( ; n--; ) {
$(divs.splice(Math.random()*divs.length|0,1)).prependTo('#elements').show();
}
});
</script>
</head>
<body>
<div id="elements">
<div id="container-1">
Текст 1
</div>
<div id="container-2">
Текст 2
</div>
<div id="container-3">
Текст 3
</div>
<div id="container-4">
Текст 4
</div>
<div id="container-5">
Текст 5
</div>
</div>
</body>
</html>
|
Poznakomlus,
рони, да, спасибо за вашу помощь! Удачи вам! |
Цитата:
|
|
Цитата:
Ведь надо, чтобы НЕ обновлялся порядок блоков, кроме первого визита пользователя. |
VictorSlate,
если нет ничего в localStorage создать массив, перемешать сохранить вывести блоки согласно массиву. |
Цитата:
|
localStorage and random
VictorSlate,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
#elements div {
display: none;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var divs = $("#elements div").get(), len = divs.length;
var arr = localStorage.getItem("arr");
if (!arr) {
arr = [];
for (; len;) {
arr.push(Math.random() * len-- | 0);
}
localStorage.setItem("arr", JSON.stringify(arr));
} else {
arr = JSON.parse(arr);
}
arr.forEach(function(e) {
$(divs.splice(e, 1)).prependTo("#elements").show();
});
});
</script>
</head>
<body>
<div id="elements">
<div id="container-1">
Текст 1
</div>
<div id="container-2">
Текст 2
</div>
<div id="container-3">
Текст 3
</div>
<div id="container-4">
Текст 4
</div>
<div id="container-5">
Текст 5
</div>
</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 15:16. |