成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分享一個(gè)jQuery的拖動(dòng)排序插件

zzbo / 1528人閱讀

摘要:基于的拖動(dòng)排序插件代碼地址核心代碼由于有些瀏覽器的圖片和鏈接是默認(rèn)可以拖動(dòng)的,所以屏蔽掉的事件只允許鼠標(biāo)左鍵拖動(dòng)禁止在表單元素里面拖動(dòng)滾動(dòng)條的位置向上排序向下排序用法水平有限,歡迎提出寶貴意見一起交流學(xué)習(xí)

基于jQuery的拖動(dòng)排序插件

代碼地址:https://github.com/ylb1992/dr...
核心代碼:

(function($) {
    "use strict";
    $.fn.dragSort = function(options) {
        var settings = $.extend(true, {
            targetEle: "li",
            replaceStyle: {
                "background-color": "#f9f9f9",
                "border": "1px dashed #ffffd"
            },
            dragStyle: {
                "position": "fixed",
                "box-shadow": "10px 10px 20px 0 #eee"
            }
        }, options);

        return this.each(function() {
            
            // 由于有些瀏覽器的圖片和鏈接是默認(rèn)可以拖動(dòng)的,所以屏蔽掉document的dragstart事件 
            document.ondragstart = function() {
                return false;
            }

            var thisEle = $(this);
            thisEle.on("mousedown.dragSort", settings.targetEle, function(event) {

                var selfEle = $(this);

                // 只允許鼠標(biāo)左鍵拖動(dòng)
                if(event.which !== 1) {
                    return;
                }

                // 禁止在表單元素里面拖動(dòng)
                var tagName = event.target.tagName.toUpperCase();
                if(tagName === "INPUT" || tagName === "TEXTAREA" || tagName === "SELECT") {
                    return;
                }

                var moveEle = $(this);

                var offset = selfEle.offset();
                var rangeX = event.pageX - offset.left;
                var rangeY = event.pageY - offset.top;

                var replaceEle = selfEle.clone()
                    .css("height", selfEle.outerHeight())
                    .css(settings.replaceStyle)
                    .empty();
                settings.dragStyle.width = selfEle.width();
                var move = true;

                $(document).on("mousemove.dragSort", function(event) {
                    if (move) {
                        moveEle.before(replaceEle).css(settings.dragStyle).appendTo(moveEle.parent());
                        move = false;
                    }

                    var thisOuterHeight = moveEle.outerHeight();

                    // 滾動(dòng)條的位置
                    var scrollTop = $(document).scrollTop();
                    var scrollLeft = $(document).scrollLeft();


                    var moveLeft = event.pageX - rangeX - scrollLeft;
                    var moveTop = event.pageY - rangeY - scrollTop;



                    var prevEle = replaceEle.prev();
                    var nextEle = replaceEle.next().not(moveEle);

                    moveEle.css({
                        left: moveLeft,
                        top: moveTop
                    });


                    // 向上排序
                    if (prevEle.length > 0 && moveTop + scrollTop < prevEle.offset().top + prevEle.outerHeight() / 2) { 
                        replaceEle.after(prevEle);
                    //向下排序
                    } else if (nextEle.length > 0 && moveTop + scrollTop > nextEle.offset().top - nextEle.outerHeight() / 2) { 
                        replaceEle.before(nextEle);
                    }
                });

                $(document).on("mouseup.dragSort", function(event) {
                    $(document).off("mousemove.dragSort mouseup.dragSort")
                    if (!move) {
                        replaceEle.before(moveEle.removeAttr("style")).remove();
                    }
                });
            });
        });
    };
})(jQuery)

用法:

$("#wrap").dragSort();

水平有限,歡迎提出寶貴意見一起交流學(xué)習(xí)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83239.html

相關(guān)文章

  • Web前端常用插件

    摘要:彈窗視頻嵌入插件幻燈片圖片切換手機(jī)端響應(yīng)式日期控件上傳圖片控件校驗(yàn)控件分頁(yè)靜態(tài)分頁(yè)動(dòng)態(tài)分頁(yè)相冊(cè)效果控件多級(jí)下拉圖片延遲加載或響應(yīng)式管理模板插件庫(kù)大轉(zhuǎn)盤九宮格效果整屏滾動(dòng)滾動(dòng)效果用于移動(dòng)項(xiàng)目的光滑菜單瀏覽器端格式化工具千手觀音 彈窗 1.blockUI2.overlay 3.sweetAlert 視頻 1.jwplayer2.video.js html53.swfobject Flas...

    quietin 評(píng)論0 收藏0
  • 分享一個(gè)可用于拖動(dòng)排序vue組件

    摘要:最近要做拖拽相關(guān)的功能,本來(lái)想自己寫,忽然想起來(lái)之前在輪子工廠有更新過(guò),還是很好用滴。介紹一款可任意拖動(dòng)排序的插件。支持桌面和移動(dòng)端,拖拽過(guò)渡動(dòng)畫美觀。 最近要做拖拽相關(guān)的功能,本來(lái)想自己寫,忽然想起來(lái)之前在輪子工廠有更新過(guò),vue-dragging還是很好用滴。 介紹 vue-dragging -- 一款可任意拖動(dòng)排序的vue插件。支持桌面和移動(dòng)端,拖拽過(guò)渡動(dòng)畫美觀。支持vue1和v...

    MasonEast 評(píng)論0 收藏0
  • 用dragsort +bootstrap+php實(shí)現(xiàn) table拖動(dòng)自動(dòng)保持排序,前面加序號(hào)及時(shí)更新

    摘要:插件美化實(shí)現(xiàn)拖拽排序,保持序號(hào)不變,但真實(shí)排序保持變化。代碼說(shuō)明為自定義請(qǐng)求,定義了數(shù)據(jù)接收處理和發(fā)送給后臺(tái)方法。里面有具體處理數(shù)據(jù)的樣式以及處理發(fā)送數(shù)據(jù)保存到數(shù)據(jù)庫(kù)的小。其他文件順序加載就好。 php+ajax+dragsort插件+bootstrap美化實(shí)現(xiàn)拖拽排序,保持序號(hào)不變,但真實(shí)排序保持變化。showImg(https://segmentfault.com/img/bVqK...

    wing324 評(píng)論0 收藏0
  • 拖放排序插件Sortable.js

    摘要:介紹是一款輕量級(jí)的拖放排序列表的插件雖然體積小,但是功能很強(qiáng)大下載地址官方特點(diǎn)支持觸屏設(shè)備和大部分瀏覽器以下的就不支持了,原因都懂得可以從一個(gè)列表容器中拖拽一個(gè)列表單元到其他容器或本列表容器中進(jìn)行排序移動(dòng)列表單元時(shí)有動(dòng)畫支持拖放操作和可選擇 介紹 Sortable.js是一款輕量級(jí)的拖放排序列表的js插件(雖然體積小,但是功能很強(qiáng)大)下載地址:https://github.com/Ru...

    tomorrowwu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<