Как позволить, изменяют размер вертикально DIV только с jQuery - никакие плагины?

Может быть, это может вдохновить вас, попробуйте привести в соответствие с соглашениями jbb:

https://docs.openstack.org/infra/jenkins-job-builder/definition.html#inclusion-tags

- job: name: test-job-include-raw-1 builders: - shell: !include-raw: include-raw001-hello-world.sh

6
задан MM. 29 June 2009 в 23:46
поделиться

3 ответа

Вы делаете что-то глупое: вы пытаетесь сделать это самому.

Выслушайте меня, выслушайте меня: Javascript во всех браузерах - это ужасно, ужасно. Есть много движков во многих версиях с множеством различных операционных систем, каждая из которых имеет множество тонкостей, и все они делают работу с Javascript адской. Существует вполне веская причина, по которой такие библиотеки, как jQuery (и их расширения) стали популярными: многие великие программисты потратили много часов, абстрагируя все эти ужасные несоответствия, поэтому мы не делаем этого. Мне не о чем беспокоиться.

Я не уверен насчет вашей пользовательской базы, возможно, вы обслуживаете старых домохозяек, у которых все еще есть коммутируемое соединение. Но по большей части в наши дни 25 КБ удаляются при начальной загрузке страницы (поскольку она будет кэшироваться впоследствии) для спокойствия, что это будет работать во всех браузерах последовательно, - это небольшая цена. Когда дело доходит до Javascript, не существует такой вещи, как "простое" изменение размера, поэтому лучше использовать UI.

13
ответ дан 8 December 2019 в 04:31
поделиться

Я согласен с Паоло в использовании пользовательского интерфейса, но вот некоторые изменения в вашем коде, чтобы заставить его работать:

$(document).ready(function(){
    var resizing = false;
    var frame = $("#frame");

    $(document).mouseup(function(e) {
        resizing = false;
    });

    $("#frame-grip").mousedown(function(e) {
        e.preventDefault();
        resizing = true;
    });

    $(document).mousemove(function(e) {
        if(resizing) {
          var origHeightFrame = frame.height();
          var origPosYGrip = $("#frame-grip").offset().top;
          var gripHeight = $("#frame-grip").height();
          frame.height(e.pageY - origPosYGrip + origHeightFrame - gripHeight/2);
        }
    });
});
3
ответ дан 8 December 2019 в 04:31
поделиться

Вы можете сэкономить, вызывая бездействующий обработчик, когда вы не изменяете размер, путем привязка функции mousemove только при перетаскивании:

$(document).ready(function(){
    var resizing = function(e) {
        var frame = $("#frame");
        var origHeightFrame = frame.height();
        var origPosYGrip = $("#frame-grip").offset().top;
        var gripHeight = $("#frame-grip").height();
        frame.height(e.pageY - origPosYGrip + origHeightFrame - gripHeight/2);
        return false;
    }

    var stopResizing = function(e) {
        $(document).unbind("mouseover", resizing);
    }

    $("#frame-grip").mouseup(stopResizing);

    $("#frame-grip").mousedown(function(e) {
        e.preventDefault();
        $(document).bind("mouseover", resizing).mouseup(stopResizing);
    });

});

(пример на http://jsbin.com/ufuqo )

2
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: