Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Автообновление комментов (https://javascript.ru/forum/jquery/35902-avtoobnovlenie-kommentov.html)

MegaMutex 26.02.2013 12:32

Автообновление комментов
 
<div class="comm">
<p class="c1">fgfgfgfgfg</p>
<p >AAAAAAADsda asdas</p>
 
<p>asdSDs asd asdas </p>
<p>a sdasd asdas</p>
<p>sad sd asdasd</p>
<p>1234567</p>
<p>sdsasdsad89 8989</p>
</div>



$(document).ready(function() {
var a=$('.comm p').length;
for(var i=1;i<=a;i++)
{
$('.comm .c'+i).next().addClass('c'+(i+1));
$('.c'+i).hide();
}
var b=i-1;
});
});

Есть скрипт, который присваивает каждому тегу <p> свой класс, потом прячет его. Нужно, чтобы через разный интервал времени (с задержкой) и с эффектом затухания (fadeIn) эти комменты по одному появлялись (как "Вконтакте" например).Пробовал разными способами ничего не вышло. Может кто посоветует, что как сделать) Только начал изучать JavaScript и Jquery, так что не ругайтесь чуть что. За ранее спасибо!

Deff 26.02.2013 12:46

<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>#КонтентРотатор p{display:none;position:absolute;}</style>
<div id="КонтентРотатор" style="width:400px;"><!-- Ротатор произвольного контента -->
<p>1-й Контент werwe</p>
<p>2-й Контент gdgddf</p>
<p>3-й Контент sfsdfsd</p>
<p>4-й Контент vcnnb;</p>
<p>N-й Контент 87986k</p>
</div>

<script language="javascript">
var sek = 3000;  // Время отображения

var Nrout=$("#КонтентРотатор p").length;
var i=0;RotatorMycontent(i);

function RotatorMycontent(i) {
$("#КонтентРотатор p").fadeOut(500);
$("#КонтентРотатор p").eq(i).fadeIn(500);

j=i+1;if(j>=Nrout){j=0};
timerID = setTimeout("RotatorMycontent(j)",sek);return;}
</script>

MegaMutex 26.02.2013 13:21

Цитата:

Сообщение от Deff (Сообщение 237262)
<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>#КонтентРотатор p{display:none;position:absolute;}</style>
<div id="КонтентРотатор" style="width:400px;"><!-- Ротатор произвольного контента -->
<p>1-й Контент werwe</p>
<p>2-й Контент gdgddf</p>
<p>3-й Контент sfsdfsd</p>
<p>4-й Контент vcnnb;</p>
<p>N-й Контент 87986k</p>
</div>

<script language="javascript">
var sek = 3000;  // Время отображения

var Nrout=$("#КонтентРотатор p").length;
var i=0;RotatorMycontent(i);

function RotatorMycontent(i) {
$("#КонтентРотатор p").fadeOut(500);
$("#КонтентРотатор p").eq(i).fadeIn(500);

j=i+1;if(j>=Nrout){j=0};
timerID = setTimeout("RotatorMycontent(j)",sek);return;}
</script>

Спасибо.

Я немного подправил и теперь стало больше похоже на то, что мне надо, но не совсем)
<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>#КонтентРотатор p{display:none;}</style>
<div id="КонтентРотатор" style="width:400px;"><!-- Ротатор произвольного контента -->
<p>1-й Контент werwe</p>
<p>2-й Контент gdgddf</p>
<p>3-й Контент sfsdfsd</p>
<p>4-й Контент vcnnb;</p>
<p>N-й Контент 87986k</p>
</div>

<script language="javascript">
var sek = 3000;  // Время отображения

var Nrout=$("#КонтентРотатор p").length;
var i=0;
RotatorMycontent(i);

function RotatorMycontent(i) {
$("#КонтентРотатор p").eq(i).fadeIn(400);

j=i+1;
if(j>=Nrout)
{j=0;}
timerID = setTimeout("RotatorMycontent(j)",sek);return;}
</script>

Сейчас комменты появляются начиная с 1-го по порядку, а можно ли, чтобы появлялся сначала последний, потом предпоследний сверху над последним и т.д. И что делает функция .eq()?

Deff 26.02.2013 14:58

<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>#КонтентРотатор p{display:none;position:absolute;}</style>
<div id="КонтентРотатор" style="width:400px;"><!-- Ротатор произвольного контента -->
<p>1-й Контент werwe</p>
<p>2-й Контент gdgddf</p>
<p>3-й Контент sfsdfsd</p>
<p>4-й Контент vcnnb;</p>
<p>N-й Контент 87986k</p>
</div>

<script language="javascript">
var sek = 3000;  // Время отображения

var Nrout=$("#КонтентРотатор p").length-1;
var i=Nrout;RotatorMycontent(i);

function RotatorMycontent(i) {
$("#КонтентРотатор p").fadeOut(500);
$("#КонтентРотатор p").eq(i).fadeIn(500);

j=i-1;if(j<0){return;}; //АвтоCтоп на первом мессаге
timerID = setTimeout("RotatorMycontent(j)",sek);return;}
</script>

Deff 26.02.2013 15:00

Цитата:

Сообщение от MegaMutex
И что делает функция .eq()?

http://jquery-docs.ru/Traversing/eq/#index

MegaMutex 26.02.2013 16:07

Цитата:

Сообщение от Deff (Сообщение 237306)

Спасибо большое! Еще вопросик) Хотелось бы чтобы каждый коммент добавлялся с разной задержкой. Я так понимаю надо использовать Math.random(). посоветуете что-нибудь?

Deff 26.02.2013 17:18

<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>#КонтентРотатор p{display:none;position:absolute;}</style>
<div id="КонтентРотатор" style="width:400px;"><!-- Ротатор произвольного контента -->
<p>1-й Контент werwe</p>
<p>2-й Контент gdgddf</p>
<p>3-й Контент sfsdfsd</p>
<p>4-й Контент vcnnb;</p>
<p>N-й Контент 87986k</p>
</div>

<script language="javascript">
var sek = 3000,  // Минимальное время отображения
MaxDelta = 7000;  // максимальная дельта времени;

var Nrout=$("#КонтентРотатор p").length-1;
var i=Nrout;RotatorMycontent(i);

function RotatorMycontent(i) {
$("#КонтентРотатор p").fadeOut(500);
$("#КонтентРотатор p").eq(i).fadeIn(500);

j=i-1;if(j<0){return;}; //АвтоCтоп на первом мессаге
var outSek = sek+parseInt(MaxDelta*Math.random())
timerID = setTimeout("RotatorMycontent(j)",outSek);return;}
</script>

MegaMutex 26.02.2013 18:49

Цитата:

Сообщение от Deff (Сообщение 237348)
<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>#КонтентРотатор p{display:none;position:absolute;}</style>
<div id="КонтентРотатор" style="width:400px;"><!-- Ротатор произвольного контента -->
<p>1-й Контент werwe</p>
<p>2-й Контент gdgddf</p>
<p>3-й Контент sfsdfsd</p>
<p>4-й Контент vcnnb;</p>
<p>N-й Контент 87986k</p>
</div>

<script language="javascript">
var sek = 3000,  // Минимальное время отображения
MaxDelta = 7000;  // максимальная дельта времени;

var Nrout=$("#КонтентРотатор p").length-1;
var i=Nrout;RotatorMycontent(i);

function RotatorMycontent(i) {
$("#КонтентРотатор p").fadeOut(500);
$("#КонтентРотатор p").eq(i).fadeIn(500);

j=i-1;if(j<0){return;}; //АвтоCтоп на первом мессаге
var outSek = sek+parseInt(MaxDelta*Math.random())
timerID = setTimeout("RotatorMycontent(j)",outSek);return;}
</script>

Круто! спасибо! буду разбираться:)


Часовой пояс GMT +3, время: 15:11.