可调整大小的jQuery - 检测滚动开始的位置

时间:2018-03-14 10:24:11

标签: javascript jquery

我正在构建自定义日历,我有以下问题:因为我必须在该日历上创建不同的事件,在某些日期开始和结束,我需要调整它们(左和右),我需要知道我是从左侧还是从右侧开始调整大小,所以我知道如何设置这些日期。

基本上,当我从开始调整大小并从最后调整大小时,它不会选择正确的日期。

编辑:我的可拖动元素也会获得某种顶级/左侧值,这些值会使所有内容变得混乱,而且我无法将其调整为左侧超过其起始宽度(右侧它会执行它的操作)应该)..它减小宽度( - 47px)而不是增加宽度。

这是我现在可以调整大小的代码:

$(".draggable").resizable({
        classes: {
            "ui-resizable": "highlight"
        },
        containment: '.calendar-row',
        grid: [47, 10],
        handles: 'e, w',
        resize: function (event, ui) {
            lastEvent = event;

        },

        start: function (event, ui) {
            uiEvent = true;
            $( event.originalEvent.target ).one('click', function(e){ e.stopImmediatePropagation(); } );
        },

        stop: function (event, ui) {
            setTimeout(function(){
                uiEvent = false;
            }, 300);
            $( event.originalEvent.target ).one('click', function(e){ e.stopImmediatePropagation(); } );

            if(isChrome || isEdge)
            {
                var resizedDate = new Date($(lastEvent.toElement).attr('data-date'));

                // left to right
                if(ui.size.width > ui.originalSize.width)
                {

                    console.log($(lastEvent.toElement).attr('id'));
                    console.log($(lastEvent.toElement).attr('data-date'));

                }
                else{
                    var elemFromPoint = document.elementFromPoint(lastEvent.pageX, lastEvent.pageY).previousElementSibling;
                    console.log($(elemFromPoint).attr('id'));
                    console.log($(elemFromPoint).attr('data-date'));
                }
            }

            if(isFirefox)
            {
                var resizedDate = new Date($(lastEvent.target).attr('data-date'));
                $(lastEvent.target).hide();

                // left to right
                if(ui.size.width > ui.originalSize.width)
                {
                    var elemFromPoint = document.elementFromPoint(lastEvent.pageX, lastEvent.pageY);

                    console.log($(elemFromPoint).attr('id'));
                    console.log($(elemFromPoint).attr('data-date'));
                }
                else{

                    var elemFromPoint = document.elementFromPoint(lastEvent.pageX, lastEvent.pageY).previousElementSibling;

                    console.log($(elemFromPoint).attr('id'));
                    console.log($(elemFromPoint).attr('data-date'));
                }
                $(lastEvent.target).show();
            }

        }
    });

0 个答案:

没有答案