Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (6)

Наибольший вклад в теги

Все теги (28)

Лучшие ответы пользователя

Все ответы (171)
  • Как сделать весы на CSS?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    Если не особо заморачиваться, то можно так сделать. Прочие плюшки и рюшки, уже сами добавляйте.
    Ответ написан
    1 комментарий
  • Как называется скрипт обучения по использованию элементов страницы сайта?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    Кроме intro.js:
    1. Product Tour3
    2. SiteHelp.js
    3. jQuery Guide
    4. FAQtoid
    5. Shepherd
    6. Hopscotch
    7. Bootstrap Tour
    Еще десяток найти можно точно.
    Ответ написан
    Комментировать
  • Такой код будет правильным?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    Особо беспокоится не нужно. По сути, сценарий метода закончится не начавшись, т.к. "анимируемое свойство" элемента, уже будет в финальной его стадии. А вот ваш код, можно было бы слегка оптимизировать.
    1. Так как методы должны применяться только, если ширина окна меньше 768px, то условие хорошо бы сделать до установки обработчика события.
    2. Кешировать элемент(ы) '.iconset-phone', дабы при каждом срабатывании события, не приходилось выполнять их поиск на странице
    В общем, можно сделать как-то так:
    $(function() {
        if ($(window).width() < 768) {
            var iconset = $('.iconset-phone');
            $(window).on('scroll', function() {
                iconset[$(this).scrollTop() > 0 ? 'slideUp' : 'slideDown']();
            });
        }
    });
    Ответ написан
    Комментировать
  • Как выделить несколько ячеек таблицы?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    Делал я когда-то подобное, но задача была сделать выделение ячеек, как при одиночном нажатии, так и при зажатом Shift или Ctrl. Если такой вариант устроит, то вот пример в песочнице.
    Показать код jQuery
    var td = $('#timeGrid td'),
        selection = {
            single: function(el) {
                td.not(el).removeClass(this.cl);
                this.ctrl(el);
            },
            shift: function(el) {
                if (typeof this.last !== 'number') {
                    return this.single(el);
                }
                var till = $(el).index(this.slcr),
                    from = this.last;
                if (from > till) till = [from, from = till][0];
                td.not(td.eq(this.last)).removeClass(this.cl);
                td.slice(from, till).add(el).addClass(this.cl);
            },
            ctrl: function(el) {
                $(el).addClass(this.cl);
                this.last = $(el).index(this.slcr);
                console.log(this.last);
            },
            slcr: '#timeGrid td',
            cl: 'pressedTime',
            last: null
        };
    td.on('click', function(e) {
        method = !e.shiftKey && !e.ctrlKey ? 'single' : (e.shiftKey ? 'shift' : 'ctrl');
        selection[method](this);
    });



    P.S. Хотя, сейчас немного доделал и вроде бы получилось, как вы хотели. Смотрим пример

    Показать код jQuery
    var table = $('#timeGrid'),
        td = $('td', table),
        selection = {
            single: function(el) {
                td.not(el).removeClass(this.cl);
                this.ctrl(el);
            },
            shift: function(el) {
                if (typeof this.last !== 'number') {
                    return this.single(el);
                }
                var till = $(el).index(this.slcr),
                    from = this.last;
                if (from > till) till = [from, from = till][0];
                td.not(td.eq(this.last)).removeClass(this.cl);
                td.slice(from, till).add(el).addClass(this.cl);
            },
            ctrl: function(el) {
                $(el).addClass(this.cl);
                this.last = $(el).index(this.slcr);
            },
            slcr: '#timeGrid td',
            cl: 'pressedTime',
            last: null
        };
    var pressed = false;
    td.on({
        mousedown: function(e) {
            method = !e.shiftKey && !e.ctrlKey ? 'single' : (e.shiftKey ? 'shift' : 'ctrl');
            selection[method](this);
            pressed = true;
        },
        mouseenter: function() {
            if (pressed) {
                selection.shift(this);
            }
        }
    });
    $(document).on('mouseup', '*', function(e) {
        pressed = false;
    });

    Ответ написан
    5 комментариев
  • Как переместить ряд в начало tbody?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    Не нужно ни клонировать элемент, ни удалять. Всего одна строка ( jsfiddle.net/st2m9cd5 ):
    row.parentNode.insertBefore(row, row.parentNode.rows[0]);
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (6)