Динамически сменяющий друг друга текст
Здравствуйте, уважаемые форумчане!
Есть маленький сайтик на html+css, на нем в заголовке есть афоризм (цитата). Стоит задача сделать так, чтобы цитат было много и они периодически сменяли друг друга, то есть при загрузке страницы появляется первая, затем после некоторого времени вторая сменяет первую, затем третья сменяет вторую и т.д. Почитав немного понял, что здесь нужны jQuery и Javascript. В общем пришел к такому варианту решения проблемы: есть функция, которая сменяет один текст на другой методом jQuery .html(), я подумал, что если например создать массив, где каждый элемент и будет цитатой, а затем в цикле просто вызвать функцию, где параметром будет элемент массива. Сама функция сменяет один текст на другой единожды, но при добавлении цикла старый текст сменяется на последний элемент массива. Также я пробовал все это делать через метод jQuery .each(), но там ситуация была несколько иная, но результата также добиться не получилось. С Javascript и jQuery никогда раньше не сталкивался поэтому прошу сильно не гневиться, и как мне кажется в данном случае я по своей неопытности где-то не до конца или полностью не понимаю логику работы jQuery и Javascript. Заранее спасибо за помощь/наводку/подсказку/вразумляющую ссылку.
<div id="elem">old text</div>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
function textChange(change_text){
$('#elem').animate({'opacity':0}, 500, function(){
$('#elem').html(change_text);
$('#elem').animate({'opacity':1}, 500);
})
}
var arr = ["new text1", "new text2", "new text3", "new text4"];
for (var i=0; i<arr.length; i++) {
textChange(arr[i]);
}
</script>
|
читайте setTimeout/setInterval
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head><body>
<div id="elem">old text</div>
<script>
function textChange(change_text) {
$('#elem').animate({'opacity': 0}, 500, function() {
$('#elem').html(change_text) ;
$('#elem').animate({'opacity': 1}, 500, function() {
if(++i==arr.length) return ;
setTimeout(function() {
textChange(arr[i]) ;
}, 1000) ;
}) ;
}) ;
} ;
var i = 0 ;
var arr = ["new text1", "new text2", "new text3", "new text4"] ;
setTimeout(function() {textChange(arr[i]);}, 1000) ;
</script>
</body>
|
Спасибо, огромное!
|
изменить шрифт и цвет текста
Здравствуйте! Пожалуйста, не гневайтесь, я абсолютный чайник, но делаю свой сайт на викс, все искала способ добавить сменяющие друг друга абзацы (рецензии на мои выступления). Приведенный выше скрипт отлично работает. Вопрос: как изменить размер шрифт и цвет текста?
Также, возможно ли было бы сделать так, чтобы после последнего текста начался первый "по кругу", и так до бесконечности? Не могли бы вы "вписать" в этот код? Огромное спасибо! |
dinklin,
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<style type="text/css">
#elem{
color: #006400;
font-size: 24px;
}
</style>
</head><body>
<div id="elem">old text</div>
<script>
function textChange(change_text) {
$('#elem').animate({'opacity': 0}, 500, function() {
$('#elem').html(change_text) ;
$('#elem').animate({'opacity': 1}, 500, function() {
i = ++i % arr.length;
setTimeout(function() {
textChange(arr[i]) ;
}, 1000) ;
}) ;
}) ;
} ;
var i = 0 ;
var arr = ["new text1", "new text2", "new text3", "new text4"] ;
setTimeout(function() {textChange(arr[i]);}, 1000) ;
</script>
</body>
|
рони,
Из опыта, удобнее цитаты вклеить в теги <p> с общим обрамлением все скрыть, открывать нужный... Дабы пользователю не трогать скрипт, ибо при добавки в массив типично часто проблемы, с запятыми, кавычками и переносом строк |
| Часовой пояс GMT +3, время: 08:04. |