Будущее экскалаторов

Интересный концепт экскалатора, благодаря оригинальной форме “ступенек”, можно делать экскалатор вдоль практически произвольной кривой. Кроме того, можно его сделать зацикленным. Круто вот такие бы экскалаторы в туристических местах. Еще бы и со столиками. Сел, пьешь чай, осматриваешь достопримечательности.

Источник

Новый виджет для Мудрослова

Вооружившись сакральными знаниями из предыдущих постов, переделал виджет с цитатами для мудрослова. Теперь он белый и пушистый. Загружается асинхронно, подгружает jQuery только когда надо и не портит глобальную область переменных. Как недавно выяснилось, он даже работает на IE. Цитаты грузит пачками и меняет через некоторое время. CSS можно использовать свой а можно стандартный.

Пример стандартного виджета:
Continue reading

Как делать виджет на javascript + jQuery

Я обдумываю обновление виджета для мудрослова, хочу использовать jQuery.
Понятное дело, что надо как-то прилично себя вести, так как виджет будет интегрироваться в любой произвольный сайт с разными другими скриптами. Вот нашел как самому подгрузить jQuery, если он еще не загружен (фи!)

Там по линку вообще подробное руководство как виджеты делать. Даже мне понятно!

via How to build a web widget (using jQuery) – Alex Marandon.

Асинхронная загрузка скриптов в HTML страницу

Я вот озадачился этой самой загрузкой скриптов, которая не стопала бы страницу от загрузки, и чтобы всякие onLoad вызывались не дожидаясь загрузки маловажных скриптов. Это в контексте javascript виджета для сайта Мудрослов. Хорошая статья на эту тему с объяснением подходов и правильным кодом:

http://friendlybit.com/js/lazy-loading-asyncronous-javascript/

Правильный код:

(function() {
    function async_load(){
        var s = document.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'http://yourdomain.com/script.js';
        var x = document.getElementsByTagName('script')[0];
        x.parentNode.insertBefore(s, x);
    }
    if (window.attachEvent)
        window.attachEvent('onload', async_load);
    else
        window.addEventListener('load', async_load, false);
})();