Рандомный вывод блоков
Здравствуйте! Если выводить меньше блоков, чем есть всего, то ротация работает. Если выводить все блоки, тогда ротации нет. Помогите, пожалуйста, исправить ошибки. Спасибо!
$(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, время: 20:24. |