Друкований текст на екрані (Javascript)
Раніше цей скрипт стояв на цьому сайті, але одного разу я вирішив його забрати. Не тому, що він погано працював, а тому, що з певних міркувань я вважав його зайвим. Але щоб скрипт зберігся, я вирішив створити цю посаду. Велика ймовірність, що він мені ще знадобиться.
Скрипт нижче імітує друкування заголовків статей на екрані як посилання на саму статтю. Заголовки вказуються в скрипті і вказуються УРЛи до них. Скрипт створює посилання з переданих даних та друкує посилання в одному рядку по черзі.
А це код скрипту:
Рекомендую: <a id="Ticker" href="http://example.com/default_link">Тут можна вписати дефолтне посилання.</a>
<script type="text/javascript">
var CharTimeout = 50; // Швидкість друкування
var StoryTimeout = 2000; // час очікування перед перемиканням
var Summaries = новий Array();
var SiteLinks = новий Array();
Summaries[0] = 'Плагін Webmaster Yandex для WordPress';
SiteLinks[0] = 'http://wp-kama.ru/?p=4015';
Summaries[1] = 'Kama Thumbnail: плагін WordPress для створення картинок-мініатюр запису';
SiteLinks[1] = 'http://wp-kama.ru/id_142/kama-thumbnail.html';
Summaries[2] = 'Налаштовуємо robots.txt для WordPress';
SiteLinks[2] = 'http://wp-kama.ru/id_803/pishem-pravilnyiy-robotstxt-dlya-wordpress.html';
Summaries[3] = 'WP-Cumulus: 3D хмара міток на flash (покращена російська версія)';
SiteLinks[3] = 'http://wp-kama.ru/?p=4271';
Summaries[4] = 'Плагін для захисту від спаму в коментарях WordPress';
SiteLinks[4] = 'http://wp-kama.ru/id_95/plagin-dlya-blokirovki-spama-v-kommentariyah-dlya-wordpress.html';
Summaries[5] = 'Плагін для легкого керування сайтом на WordPress (версія 3)';
SiteLinks[5] = 'http://wp-kama.ru/note/plagin-dlya-legkogo-upravleniya-saytom-na-wordpress-versiya-3';
Summaries[6] = 'Автоматичне розтягування тексту на javascript і jQuery';
SiteLinks[6] = 'http://wp-kama.ru/id_112/avtomaticheskoe-rastyagivanie-polya-textarea-kommentariya-versiya-2.html';
/* Друкування тексту - Тіккер
-------------------------------------------------- --------------
var CharTimeout = 20;
var StoryTimeout = 7000;
var Summaries = новий Array();
var SiteLinks = новий Array();
Summaries[0] = "CMS для простих сайтів GetSimple російською мовою";
SiteLinks[0] = "#link1";
Summaries[1] = "Spectrum - розкішна тема для WordPress російською мовою";
SiteLinks[1] = "#link2";
startTicker();
*/
function startTicker(){
massiveItemCount = Number(Summaries.length); //кількість елементів масиву
// Визначаємо значення запуску
CurrentStory = -1;
CurrentLength = 0;
// Розташування об'єкта
AnchorObject = document.getElementById("Ticker");
runTheTicker();
}
// Основний цикл тікера
function runTheTicker(){
var myTimeout;
// Перехід до наступного елементу
if(CurrentLength == 0){
CurrentStory++;
CurrentStory = CurrentStory% massiveItemCount;
StorySummary = Summaries[CurrentStory].replace(/"/g,'-');
AnchorObject.href = SiteLinks[CurrentStory];
}
// Маємо поточний текст в анкор з друкуванням
AnchorObject.innerHTML = StorySummary.substring(0,CurrentLength) + znak();
// Перетворимо довжину для підрядки та визначаємо таймер
if(CurrentLength != StorySummary.length){
CurrentLength++;
myTimeout = CharTimeout;
} else {
CurrentLength = 0;
myTimeout = StoryTimeout;
}
// Повторюємо цикл із урахуванням затримки
setTimeout("runTheTicker()", myTimeout);
}
// Генератор підстановки знака
function znak(){
if(CurrentLength == StorySummary.length) return "";
else return "|";
}
startTicker();
</script>Пояснення до коду
Параметри CharTimeout = 50;і StoryTimeout = 2000;– це налаштування:
CharTimeout– швидкість друкуванняStoryTimeout– час очікування перед перемиканням з одного посилання на інше.
Блок
Summaries[0] = 'Плагін Webmaster Yandex для WordPress'; SiteLinks[0] = 'http://wp-kama.ru/?p=4015'; ... Summaries[6] = 'Автоматичне розтягування тексту на javascript і jQuery'; SiteLinks[6] = 'http://wp-kama.ru/id_112/avtomaticheskoe-rastyagivanie-polya-textarea-kommentariya-versiya-2.html';
можна отримувати динамічні в WordPress. Допустимо, можна отримувати записи з довільним полем “Рекомендую” та вивести їх у потрібному форматі. Для WordPress код буде таким:
<?php
$query = new WP_Query( 'meta_key=Рекомендую' );
$ arnum = 0;
while ( $query->have_posts() ) {
$query->the_post();
echo "
Summaries[$arnum] = '". addslashes( get_the_title() ) ."';
SiteLinks[$arnum] = '". get_permalink() ."';
";
$arnum++;
}
wp_reset_query();
?>Просто текст, що друкується
Якщо мова зайшла про друкування тексту на екрані, то напевно правильно було б навести приклад простого друкування звичайного або незвичайного тексту, тут від автора залежить. Як і раніше: спочатку приклад, а потім код:
<div id="my-text">
Цей текст друкується сам. І не важливо, що ви не дивитеся на нього чи навіть не
дивіться взагалі будь-куди. Він продовжуватиме друкуватися зі стабільною швидкістю:
одна літера/50 мілісекунд. <br><br>
Як бачите, можна надрукувати навіть перенесення рядків. <br><br>
В іншому це не друкування, а виведення вже готового тексту в стилі друкарської машинки
це цікаво і іноді приваблює читачів, тому візьміть на озброєння цей
скрип. До того ж, він дуже простий.
</div>
<script>
function printText( el ){
let letterTimeout = 20
let text = el.innerHTML
let i = 1
let print__fn = function(){
if( i <= text.length ){
el.innerHTML = text.substr(0, i);
setTimeout( arguments.callee, letterTimeout );
}
i++;
}
print__fn() // init
};
// init
let el = document.getElementById( 'my-text' )
printText(el);
</script>