→

Блог им. igorok →  У кого сколько в пятнашки?

Выложил пятнашки на JQuery
У меня получилось 74.
А у вас?
Только честно:)
0

JavaScript программирование →  Jquery UI: sortable и сохранение позиции айтема

Как по мне, документация к JQuery достаточно сыроватая и неудобная. Для того что бы разобраться с документацией по UI, необходимо достаточно много пописать использованием JQuery, т.е. дойти до такого уровня, когда документация уже не нужна:)
Рассмотрим юзер интерфейс Sortable. Исходя из документации и примера, все кажется понятным, проблемы и непонятки могут возникнуть в случае, когда возникнет необходимость сохранить последовательность наших айтемов.

Решение:

<style>
  #test-list { list-style: none; padding: 0; margin: 0 40px; }
  #test-list li { margin: 0 0 10px 0; background: #eaf3fa; padding: 15px; }
  #test-list .handle { float: left; margin-right: 10px; cursor: move; }
  #test-log { padding: 5px; border: 1px solid #ccc; }
</style>
<script type="text/javascript" src="{ latest jquery release }"></script>
<script type="text/javascript" src="{ ui core }"></script>
<script type="text/javascript" src="{ ui sortable }"></script>
<script type="text/javascript">
  // When the document is ready set up our sortable with it's inherant function(s)
  $(document).ready(function() {
    $("#test-list").sortable({
      handle : '.handle',
      update : function () {//здесь делаем действие, которое нам нужно, например аяксовый вызов сохранения
        $("input#test-log").val($('#test-list').sortable('serialize'));
      }
    });
});
</script>
<ul id="test-list">
  <li id="listItem_1"><img src="arrows.png" class="handle" alt="move" />Item 1 with a link to <a href="http://www.google.co.uk/" rel="nofollow">Google</a></li>
  <li id="listItem_2"><img src="arrow.png" class="handle" alt="move" />Item 2</li>
  <li id="listItem_3"><img src="arrow.png" class="handle" alt="move" />Item 3</li>
  <li id="listItem_4"><img src="arrow.png" class="handle" alt="move" />Item 4
    <p>Perhaps you want to add a form in here?</p>
    <p>Text:<br /><input type="text" /></p>
    <p>And a textarea<br /><textarea></textarea></p>
  </li>
</ul>
<label for="test-log"><strong>Resultant order of list</strong></label>
<input type="text" size="70" id="test-log" />


В данном примере данные сириализуются и заносятся в текстовое поле с id=«test-log»
0

JavaScript программирование →  Симуляция задержки между fade in/out эффектами в JQuery

Jquery хорош тем, что позволяет пименять так называемые «цепочные решения».

Решение в лоб:

$("#foo").show().hide();


Показывает и скрывает элемент с id=«foo».

Fade-in-fade-out


Если нужно красиво показать блок и так же красиво его скрыть, используем fade-in-fade-out эффект:

$(document).ready(function() {
        $("#foo").fadeIn(2000).fadeOut(2000);
});


В течении 2 секунд (2000 мс) блок будет проявляться, потом в течении 2 секунд блок будет скрываться. Если нам необходимо установить задержку между fadeIn и fadeOut, тогда делаем так:

$(document).ready(function() {
        $("#foo").fadeIn(2000).delay(5000).fadeOut(2000);
});


Установлена задержка в 5 секунд.

Фокусы с задержкой без delay


Для проявления полупрозрачности (50% — второй параметр) с задержкой в 3 секунды можно воспользоваться следующим кодом:

$("#foo").fadeTo(3000, 0.5);


Рассмотрим пример задержки:
1. Проявить элемент в течении двух секунд (прозрачность от 0 до 1)
2. Задержать прозрачность на уровне 1 в течении 5 секунд
3. Прятать блок в течении 2 секунд (прозрачность с 1 до 0)

Решение:
$(document).ready(function() {
        $("#foo").fadeIn(2000).fadeTo(5000, 1).fadeOut(2000);
});


Задержка перед стартом


$(document).ready(function() {
        $("#foo").fadeTo(3000, 0).fadeIn(2000)
        .fadeTo(5000, 1).fadeOut(2000);
});
1

JavaScript программирование →  Изменение размера шрифта в теле HTML документа

Иногда приходится выполнять достаточно непонятные задания заказчика или описанные в ТЗ. Одним из маразмов является онлайн изменение размера шрифта тела HTML. Зачем это надо я не знаю. Наверно, просто эффектная, никому ненужная фишка.
Сделаем это при помощи яваскриптового фреймворка JQuery и ихнего же UI, что бы было красивее:)

Итак, имеем три кнопки:


<div id="cahnge-font-size">
        <input class="ui-state-default ui-corner-all" id="decreaseFont" type="button" name="#" value="Меньше">
        <input class="ui-state-default ui-corner-all" id="resetFont" type="button" name="#" value="Нормально">
        <input class="ui-state-default ui-corner-all" id="increaseFont" type="button" name="#" value="Больше">
</div>
 


Яваскрипт будет выглядеть так:


<script type="text/javascript">
$(document).ready(function(){
        //      Reset Font Size
        var originalFontSize = $('html').css('font-size');
        $("#resetFont").click(function(){
                $('html').css('font-size', originalFontSize);
        });
        //      Increase Font Size
        $("#increaseFont").click(function(){
                var currentFontSize = $('html').css('font-size');
                var currentFontSizeNum = parseFloat(currentFontSize, 10);
                var newFontSize = currentFontSizeNum*1.2;
                $('html').css('font-size', newFontSize);
                return false;
        });
        //      Decrease Font Size
        $("#decreaseFont").click(function(){
                var currentFontSize = $('html').css('font-size');
                var currentFontSizeNum = parseFloat(currentFontSize, 10);
                var newFontSize = currentFontSizeNum*0.8;
                $('html').css('font-size', newFontSize);
                return false;
        });
});
</script>
 
0

Фреймворки →  Проблемы отображения Datepicker в Dialog (JQuery фреймворк)

Наверно, это баг:) Когда вызываешь диалоговое окно (в моем случае оно было модальным) и в нем пытаешься вызвать Datepicker(календарик для выбора даты), то календарик оказывается под диалоговым окном. Естественно, пользоваться таким календариком не очень удобно:)

Первое, что пришло в голову — z-index. Оно и естественно, как фиксить?

Из того, что нашел — все сводилось к допиливанию кода именно JQuery, я противник такого варварства, т.к. не известно, где это может всплыть (это же говно:)).

Сделал так:

$(function() {
        $("#date_publish").datepicker();//собственно вызов нашего календаря
        $("#ui-datepicker-div").css("z-index", 1000000); //задаем z-index
});
0

Фреймворки →  плагин Star Rating для JQuery

Есть такой интересный плуг для организации оценок всего чего угодно в один клик под яваскриптовый фреймворк JQuery.

Здесь можно скачать и посмотреть на него.
http://plugins.jquery.com/project/MultipleFriendlyStarRating

http://www.fyneworks.com/jquery/star-rating/

Проблема с которой я столкнулся — невозможность задизейблить звезды после того, как пользователь проголосовал. Как минимум это приводит к заблуждению пользователя.

Решение:


$('.auto-submit-star').rating({
                callback: function(value, link){
                        // 'this' is the hidden form element holding the current value
                        // 'value' is the value selected
                        // 'element' points to the link element that received the click.
                        $("#form-rating").ajaxSubmit({
                                success:function(data) {
                                        //именно здесь начинаем дизейблить звезды
                                        $("div", "#form-rating")
                                        .removeClass("star_live")
                                        .addClass("star_readonly")
                                        .unbind("mouseover")
                                        .unbind("mouseout")
                                        .unbind("click");
                                        //здесь закончили
                                        $('#message').text("Your vote was counted");
                                },
                                error:function(data) {
                                        form.fadeOut("slow");
                                        $('#message').text("Error!");
                                }
                        });
                }
        });
 
1

Фреймворки →  Новый раздел Jquery плагины и решения

Jquery плагины и решения — открыт новый раздел. Здесь будут публиковаться интересные решения использования Java Script фреймворка JQuery и плагинов под него.
0
←  сюда    туда  →
1 2