ホームページ ウェブフロントエンド jsチュートリアル マウスドラッグソートLiまたはjqueryで実装されたTable_jquery

マウスドラッグソートLiまたはjqueryで実装されたTable_jquery

May 16, 2016 pm 04:50 PM
選別 マウスドラッグ

1. フロントエンドページ

コードをコピーします コードは次のとおりです:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="拖アニメーション排序LiまたはTable.aspx.cs" Inherits="拖アニメーション排序LiまたはTable" %>




广告管理























value="保存顺序" />

提示:按住鼠标拖动链接,之后单击保存按钮就可以完成对链接的排列










2、CSS样式

[css] view plaincopy在CODE上查看代码片派生到我的代码片

body,div,dl,dt, dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding: 0;}
table{border-collapse:collapse;border-spacing:0;}
ol,ul{list-style:none;}

a{color:#333;text-装飾:なし;}
a:hover{color:#f30;text-decoration:underline}

body{font-family:"宋体",Arail,verdana;font-size:12px;line -高さ:1.5em;色:#222;背景:#fff ;}


.clearfix:after{content:".";display:block;height:0;clear:both;visibility :hidden;}
.clearfix{display:block;}
* html .clearfix{height:1%;}
.clear{clear:both;}

/*文本对齐*/
.tr{text-align:right}
.tl{text-align:left;}
.tc{text-align:center;}

/*浮動* /
.fn-fl{float:left;}
.fn-fr{float:right;}

.m5{margin:5px;} .m10{margin:10px;}
.mt5 { margin-top:5px;}.mr5 { margin-right:5px;}.mb5 { margin-bottom:5px;}.ml5 { margin-left:5px;}
.mt10 { margin- top:10px;}.mr10 { margin-right:10px;}.mb10 { margin-bottom:10px;}.ml10 { margin-left:10px;}

.p5{padding:5px;} 。 p10{padding:10px;}
.pt5 {padding-top:5px;}.pr5 {padding-right:5px;}.pb5 {padding-bottom:5px;}.pl5 {padding-left:5px;}
.pt10 {padding-top:10px;}.pr10 {padding-right:10px;}.pb10 {padding-bottom:10px;}.pl10 {padding-left:10px;}

。 mt30{margin-top:30px;}.mb30{margin-bottom:30px;}
.pt30{padding-top:30px;}.pb30{padding-bottom:30px;}

/*無效状態态*/
input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] {background-color: #eee;cursor: not-allowed; box-shadow:none;opacity:0.5}

/*下拉列表*/
select{border:1px Solid #ccc;border-radius:3px;padding:1px 2px;}

/*输入框*/
input:-moz-placeholder,textarea:-moz-placeholder {color: #999999;}
input:-ms-input-placeholder,textarea:-ms-input-プレースホルダー {color: #999999;}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder {color: #999999;}

.txt,textarea,input[ type="text"]、input[type="password"] {ボーダー: 1px ソリッド #ccc;box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) インセット;トランジション: ボーダー 0.2s リニア 0s、 box-shadow 0.2s リニア 0s;border-radius:3px;padding:2px 3px;}
.txt:focus,textarea:focus,input[type="text"]:focus, input[type="password" ]:focus {border: 1px Solid #2C5193;box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(44, 81, 147, 0.6);}
.txta {font-size:12px;line-height:18px;}
.txt20{width:20px;}
.txt30{width:30px;}
.txt50{width:50px;}
.txt75{幅:75px;}
.txt85{幅:85px;}
.txt100{幅:100px;}
.txt125{幅:125px;}
.txt150{幅:150px ;}
.txt175{width:175px;}
.txt200{width:200px;}
.txt250{width:250px;}
.txt280{width:280px;}
。 txt300{width:300px;}
.txt350{width:350px;}
.txt400{width:400px;}

/*标準表格*/
.fn-table{width :100%;}
.fn-table>tbody>tr>td{padding:3px;background:#fff;border:1px Solid #CEDCED;}
.fn-table>tbody>tr>th{背景:#E3F5FF;パディング:2px;ボーダー:1px ソリッド #CEDCED;font-weight:bold;}

.fn-table-space>tbody>tr:nth-child(2n 1)>td {background:#efefef;}

/*细線表格*/
.fn-table-line>tbody>tr>td{}

/*鼠标hover表格*/
.fn-table-mouse>tbody>tr:nth-child(2n 1)>td{background:#efefef;}
.fn-table tr.on>tbody>tr>td,.fn -table-mouse>tbody>tr:hover>td{background:#FCF8E3;}

/*功能表格*/
.fn-table-function>tbody>tr>td:nth-child (2n 1){background:#E3F5FF;text-align:right;font-weight:bold;}
.fn-table-function>tbody>tr>td:first-child{background:#E3F5FF;text- align:right;font-weight:bold;}

/*干净表格*/
.fn-table-clear{}
.fn-table-clear>tbody>tr>td{ padding:3px;background:#fff;border:none;}
.fn-table-clear>tbody>tr>th{background:#E3F5FF;padding:3px;border:none;}

/*iframe 头部样式,仅後台部分案例*/
.fn-iframe-hd{padding:2px 5px;background:#2C5193;margin-bottom:30px;line-height:22px;height:22px;color :#fff;位置:固定;左:0;上:0;幅:100%;}
.fn-iframe-hd .close{background:url(/Manager/Themes/images/icons/closed.png ) リピートなし center center;float:right;width:14px;height:13px;cursor:pointer;padding:4px 5px;margin-right:10px;}
.fn-iframe-hd .close:hover{opacity :0.8;}
.fn-iframe-hd .tt{float:left;font-weight:bold;}

/*标標準Tab选项卡*/
.fn-tab .hd li{float:left;margin-right:2px;padding:2px 5px;border:1px Solid #2C5193;border-radius :5px 5px 0 0;カーソル:ポインタ;背景:#2C5193;色:#fff;}
.fn-tab .hd li.on{背景:#4B8AF9;色:#fff;ボーダー:1px 実線 #4B8AF9 ;border-bottom:0;}
.fn-tab .bd{border:1px Solid #ddd;padding:3px;margin-top:-1px;}
.fn-tab .bd div.item{ display:none;}
.fn-tab .bd div.on{display:block;}

/*搜索框*/
.fn-searchbar{border:1px Solid #CEDCED; padding:2px;border-radius:3px;}
.fn-searchbar input,.fn-searchbar select{vertical-align:middle;}

/*分页*/
.fn- pager{background:#E3F5FF;border:1px Solid #CEDCED;margin:0 0 5px;border-top:0;}
.fn-pager div{line-height:26px;white-space:nowrap;word- Break:break-all;}
.fn-pager input{margin-left:5px;}
.fn-pager a{border:1px Solid #E3F5FF;padding:3px 5px;}
.fn -pager span.on{background:#2C5193;border:1px Solid #2C5193;color:#fff;padding:3px 5px;font-weight:bold;}
.fn-pager a:hover{background:#2C5193 ;border:1px Solid #2C5193;color:#fff;}
.fn-pager input,.fn-pager select,.fn-pager a,.fn-pager span{vertical-align:middle;}
.fn-pagerExt{float:right;margin-top:-22px;}
.fn-pagerExt input{vertical-align:middle;}

/*按钮*/
.btn ,.fn-pager input[type='submit']{border-radius:3px;padding:1px 2px;border:1px Solid #B3B3B3;cursor:pointer;background-image: Linear-gradient(tobottom, #fff, #e6e6e6);ボックスシャドウ: 0 1px 0 rgba(255, 255, 255, 0.2) インセット、0 1px 2px rgba(0, 0, 0, 0.05);color:#666;line-height:20px;vertical-align:middle; text-decoration:none;padding:1px 3px ;}
a.btn{padding:3px 6px;}
.btn:hover{background:#eee;text-decoration:none;}

.btn-on,.fn-pager input[type='submit']{background-image:linear-gradient(下へ,#4b8af9,#2C5193);color:#fff;border-color:rgba(0, 0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.1);背景色:#2C5193;ボーダー:1px ソリッド #2C5193 ;}
.btn-on: hover,.fn-pager input[type='submit']:hover{background:#4b8af9;color:#fff;}

.btn-gray{background:linear-gradient(下へ,#ccc ,#efefef);color:#fff;ボーダーカラー:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.1);カーソル:許可されていません;}
.btn-gray:hover{background:#eee;text-decoration:none;}

.btn:active{box-shadow:inset 0 1px 2px rgba(0,0,0 ,.25),inset 0 1px 3px rgba(0,0,0,0.15);}

#tooltip{position: 絶対;border: 1px ソリッド #333;background: #f7f5d1;padding: 2px 5px ;color: #333;display: none;width: 500px;}
#tooltip{position:absolute;color:#333;display:block;background-color:#fff;border:1px Solid #555;box-シャドウ:0 0 10px rgba(0,0,0,.3);ボーダー半径:5px;パディング:3px;最小幅:160px;最小高さ:80px;}
#tooltip img{ボーダー半径:5px;}

/*文字大小*/
.font12{font-size:12px;}
.font13{font-size:13px;}
.font14{font-サイズ:14px;}
.font15{font-size:15px;}
.font16{font-size:16px;}
.font17{font-size:17px;}
.font18{ font-size:18px;}
/*文字颜色*/
.font-red{color:Red;}
.font-green{color:Green;}
.font-white{ color:White;}
.font-gray{color:Gray;}

/*鼠标标记*/
.hand{cursor:pointer;}


3、主要js

jquery.js

ui.core.js

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片

/*
* jQuery UI 1.7.1
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* MIT に基づくデュアル ライセンス(MIT-LICENSE.txt)
* および GPL (GPL-LICENSE.txt) ライセンス。
*
* http://docs.jquery.com/UI
*/
;jQuery.ui || (function($) {

var _remove = $.fn.remove,
isFF2 = $.browser.mozilla && (parseFloat($.browser.version)
//ヘルパー関数と ui オブジェクト
$.ui = {
version: "1.7.1",

// $.ui.plugin は非推奨です。代わりにプロキシ パターンを使用してください。
プラグイン: {
add: function(module, option, set) {
var proto = $.ui[module].prototype;
for(var i in set) {
proto .plugins[i] = proto.plugins[i] ||
proto.plugins[i].push([option, set[i]]); >call: function(instance, name, args) {
var set =instance.plugins[name];
if(!set || !instance.element[0].parentNode) { return; >
for (var i = 0; i if (instance.options[set[i][0]]) {
set[i][1] .apply(instance.element, args);
}
}
}
},

には以下が含まれます: function(a, b) {
return document.compareDocumentPosition
? a.compareDocumentPosition(b) & 16
: a !== b && a.contains(b);

hasScroll: function(el, a) {

//オーバーフローが非表示の場合、要素には余分なコンテンツがある可能性がありますが、ユーザーはそれを非表示にしたいと考えています
if ($(el).css('overflow') == 'hidden') { return false ;

var スクロール = (a && a == 'left') ? 'scrollLeft' : 'scrollTop'、
は = false;

if (el[scroll] > 0) { return true; }

// TODO: どのケースが実際にこれが発生するのかを判断します
// 要素にスクロールが設定されていない場合は、
// スクロールを設定できるかどうかを確認してください
el[スクロール] = 1;
は = (el[scroll] > 0);
el[スクロール] = 0;
リターンは;
},

isOverAxis: function(x,reference, size) {
//x 座標が "b" 要素軸を超えているかどうかを決定します
return (x >reference) && ( x },

isOver: function(y, x, top, left, height, width) {
//x、y 座標が "b" 要素を超えているかどうかを判断します
return $ .ui.isOverAxis(y, 上, 高さ) && $.ui.isOverAxis(x, 左, 幅);
},

keyCode: {
BACKSPACE: 8,
CAPS_LOCK: 20,
COMMA: 188,
CONTROL: 17,
DELETE: 46,
DOWN: 40、
END: 35、
ENTER: 13、
ESCAPE: 27、
HOME: 36、
INSERT: 45、
LEFT: 37、
NUMPAD_ADD: 107、
NUMPAD_DECIMAL: 110、
NUMPAD_DIVIDE: 111、
NUMPAD_ENTER: 108、
NUMPAD_MULTIPLY: 106、
NUMPAD_SUBTRACT: 109、
PAGE_DOWN: 3 4、
PAGE_UP: 33、
PERIOD: 190、
RIGHT: 39、
SHIFT: 16、
SPACE: 32、
TAB: 9、
UP: 38
}
};

// WAI-ARIA 正規化
if (isFF2) {
var attr = $.attr,
removeAttr = $.fn.removeAttr,
ariaNS = "http:/ /www.w3.org/2005/07/aaa",
ariaState = /^aria-/,
ariaRole = /^wairole:/;

$.attr = function(elem, name, value) {
var set = value !== 未定義;

return (name == 'role'
? (set
? attr.call(this, elem, name, "wairole:" value)
: (attr.apply(this 、引数) || "").replace(ariaRole, ""))
: (ariaState.test(name)
? (set
? elem.setAttributeNS(ariaNS,
name.replace) (ariaState, "aaa:"), value)
: attr.call(this, elem, name.replace(ariaState, "aaa:")))
: attr.apply(this, argument))) ;
};

$.fn.removeAttr = function(name) {
return (ariaState.test(name)
? this.each(function() {
this.removeAttributeNS(ariaNS, name .replace(ariaState, ""));
}) :removeAttr.call(this, name));
};
}

//jQuery プラグイン
$.fn.extend({
remove: function() {
// Safari には実際に DOM 要素を削除するネイティブの削除イベントがあります。
// したがって、トリガー (#3037) の代わりに、triggerHandler を使用する必要があります。
$("*", this).add(this).each(function() {
$(this). triggerHandler("remove");
return _remove.apply(this, argument )
},

enableSelection: function() {
return this
.attr('unselectable', 'off')
.css('MozUserSelect', '')
.unbind('selectstart.ui');

disableSelection : function() {
これを返します
.attr('unselectable', 'on')
.css('MozUserSelect', 'none')
.bind('selectstart.ui', function() { return false; });
},

scrollParent: function() {
var スクロールペアレント; (/(static|相対)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
scrollParent = this.parents().filter (function() {
return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($ .curCSS(this,'overflow',1) $.curCSS(this,'overflow-y',1) $.curCSS(this,'overflow-x',1));
}).eq(0);
} else {
scrollParent = this.parents().filter(function() {
return (/(auto|scroll)/).test($.curCSS(this,'overflow',1 ) $.curCSS(this,'overflow-y',1) $.curCSS(this,'overflow-x',1));
}

return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(ドキュメント) : スクロール親;
}
});


//追加のセレクター
$.extend($.expr[':'], {
data: function(elem, i, match) {
return !! $.data(elem, match[3]);
},

focusable: function(element) {
var nodeName = element.nodeName.toLowerCase(),
tabIndex = $ .attr(element, 'tabindex');
return (/input|select|textarea|button|object/.test(nodeName)
? !element.disabled
: 'a' == ノード名 | | 'area' == nodeName
? element.href || !isNaN(tabIndex)
: !isNaN(tabIndex))
// 要素とそのすべての祖先が表示される必要があります
/ / ブラウザはエリアが非表示であると報告する可能性があります
&& !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length>},

tabbable: function(element) {
var tabIndex = $.attr(element, 'tabindex');
return (isNaN(tabIndex) || tabIndex >= 0) && $(element) ).is(':focusable');
}
});


// $.widget は jQuery プラグインを作成するファクトリーです
// プラグイン コードから定型コードを取り出します
function getter(namespace, plugin, method, args) {
function getMethods(type) {
varmessages = $[namespace][plugin][type] || [];
return (typeofmessages == 'string' ?methods.split(/,?s /) :methods);
}

varmethods = getMethods('getter');
if (args.length == 1 && typeof args[0] == 'string') {
methods = Methods.concat(getMethods('getterSetter'));
}
return ($.inArray(メソッド, メソッド) != -1);
}

$.widget = function(name, prototype) {
var namespace = name.split(".")[0];
name = name.split(".")[1];

// プラグインメソッドを作成
$.fn[name] = function(options) {
var isMethodCall = (typeof options == 'string'),
args = Array.prototype .slice.call(引数, 1);

// 内部メソッドの呼び出しを防止します
if (isMethodCall && options.substring(0, 1) == '_') {
return this;
}

// ゲッター メソッドを処理します
if (isMethodCall && getter(namespace, name, options, args)) {
var instance = $.data(this[0], name );
return (インスタンス ? インスタンス[オプション].apply(instance, args)
: 未定義);
}

// 初期化および非ゲッター メソッドを処理します
return this.each(function() {
var instance = $.data(this, name);

// コンストラクター
(!instance && !isMethodCall &&
$.data(this, name, new $[namespace][name](this, options))._init()); 🎜>// メソッド呼び出し
(instance && isMethodCall && $.isFunction(instance[options]) &&
instance[options].apply(instance, args));
};

// ウィジェット コンストラクターを作成
$[namespace] = $[namespace] || {};
$[namespace][name] = function(element, options) {
var self = this;

this.namespace = ネームスペース;
this.widgetName = 名前;
this.widgetEventPrefix = $[名前空間][名前].eventPrefix ||名前;
this.widgetBaseClass = ネームスペース '-' 名前;

this.options = $.extend({},
$.widget.defaults,
$[namespace][name].defaults,
$.metadata && $.metadata. get(要素)[名前]、
オプション);

this.element = $(element)
.bind('setData.' name, function(event, key, value) {
if (event.target == element) {
return self._setData(key, value);
}
})
.bind('getData.' name, function(event, key) {
if (event.target == 要素) ) {
return self._getData(key);
}
})
.bind('remove', function() {
return self.destroy();
} );
};

// ウィジェット プロトタイプを追加
$[namespace][name].prototype = $.extend({}, $.widget.prototype,prototype);

// TODO: ウィジェット プロトタイプ
// およびプラグイン プロトタイプ
$[namespace][name].getterSetter = 'option'; の getter プロパティと getterSetter プロパティをマージします。
};

$.widget.prototype = {
_init: function() {},
destroy: function() {
this.element.removeData(this.widgetName)
。 RemoveClass(this.widgetBaseClass '-disabled' ' ' this.namespace '-state-disabled')
.removeAttr('aria-disabled');
},

オプション: function(key, value) {
var options = key,
self = this;

if (キーの種類 == "文字列") {
if (値 === 未定義) {
return this._getData(key);
}
オプション = {};
オプション[キー] = 値;
}

$.each(options, function(key, value) {
self._setData(key, value);
});
},
_getData: function(key) {
return this.options[key];
},
_setData: function(key, value) {
this.options[key] = 値;

if (key == '無効') {
this.element
[値 ? 'addClass' : 'removeClass'](
this.widgetBaseClass '-disabled' ' '
this.namespace '-state-disabled')
.attr("aria-disabled", value);
}
},

enable: function() {
this._setData('disabled', false);
},
無効: function() {
this._setData('無効', true);
},

_trigger: function(type, events, data) {
var callback = this.options[type],
eventName = (type == this.widgetEventPrefix
? タイプ: this.widgetEventPrefix タイプ);

イベント = $.Event(event);
event.type = イベント名;

// 元のイベント プロパティを新しいイベントにコピーします
// これは、$.Event の代わりに $.event.fix を呼び出すことができれば起こります
// しかし、その機能はありませんイベントを複数回強制的に修正する方法
if (event.originalEvent) {
for (var i = $.event.props.length, prop; i;) {
prop = $.イベント.props[--i];
イベント[プロップ] = イベント.オリジナルイベント[プロップ];
}
}

this.element.trigger(event, data);

return !($.isFunction(callback) && callback.call(this.element[0],event,data) === false
||event.isDefaultPrevented());
}
};

$.widget.defaults = {
無効: false
};


/**マウスインタラクションプラグイン **/

$.ui.mouse = {
_mouseInit: function() {
var self = this;

this.element
.bind('mousedown.' this.widgetName, function(event) {
return self._mouseDown(event);
})
.bind( 'click.' this.widgetName, function(event) {
if(self._preventClickEvent) {
event.stopImmediatePropagation(); }
});

// IE でのテキスト選択を禁止します
if ($.browser.msie) {
this._mouseUnselectable = this.element.attr('unselectable');
this.element.attr('選択不可', 'オン');
}

this.started = false;
},

// TODO: マウスの 1 つのインスタンスを破棄しても、
// マウスの他のインスタンスが混乱しないようにしてください
_mouseDestroy: function() {
this.element.unbind( '.' this.widgetName);

// IE でテキストの選択を復元します
($.browser.msie
&& this.element.attr('unselectable', this._mouseUnselectable));
},

_mouseDown: function(event) {
// 複数のウィジェットに MouseStart を処理させないでください
// TODO: なぜoriginalEvent を使用しなければならないのかを理解してください
event.originalEvent = イベント.オリジナルイベント || {};
if (event.originalEvent.mouseHandled) { return; }

// マウスアップを見逃した可能性があります (ウィンドウ外)
(this._mouseStarted && this._mouseUp(event));

this._mouseDownEvent = イベント;

var self = this,
btnIsLeft = (event.that == 1),
elIsCancel = (typeof this.options.cancel == "string" ? $(event.target). parents().add(event.target).filter(this.options.cancel).length : false);
if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
return true;
}

this.mouseDelayMet = !this.options.lay;
if (!this.mouseDelayMet) {
this._mouseDelayTimer = setTimeout(function() {
self.mouseDelayMet = true;
}, this.options.delay);
}

if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted = (this._mouseStart(event) !== false);
if (!this._mouseStarted) {
event.preventDefault();
true を返します。
}
}

// これらのデリゲートはコンテキストを維持する必要があります
this._mouseMoveDelegate = function(event) {
return self._mouseMove(event);
};
this._mouseUpDelegate = function(event) {
return self._mouseUp(event);
};
$(document)
.bind('mousemove.' this.widgetName, this._mouseMoveDelegate)
.bind('mouseup.' this.widgetName, this._mouseUpDelegate);

//PreventDefault() は、ここでテキストの選択を防ぐために使用されます -
// ただし、Safari では、これにより選択ボックスが選択できなくなります
// そのため、この修正は
($.browser.safari ||event.preventDefault()); が必要でした。

event.originalEvent.mouseHandled = true;
true を返します。
},

_mouseMove: function(event) {
// IE マウスアップ チェック - マウスがウィンドウの外に出たときにマウスアップが発生しました
if ($.browser.msie && !event.button ) {
return this._mouseUp(event);
}

if (this._mouseStarted) {
this._mouseDrag(event);
returnevent.preventDefault();
}

if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted =
(this._mouseStart(this._mouseDownEvent, イベント) != = false);
(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
}

return !this._mouseStarted;
},

_mouseUp: function(event) {
$(document)
.unbind('mousemove.' this.widgetName, this._mouseMoveDelegate)
.unbind('マウスアップ。' this.widgetName、this._mouseUpDelegate);

if (this._mouseStarted) {
this._mouseStarted = false;
this._preventClickEvent = (event.target == this._mouseDownEvent.target);
this._mouseStop(イベント);
}

false を返します。
},

_mouseDistanceMet: function(event) {
return (Math.max(
Math.abs(this._mouseDownEvent.pageX -event.pageX),
Math. abs(this._mouseDownEvent.pageY -event.pageY)
) >= this.options. distance
);
},

_mouseDelayMet: function(event) {
return this.mouseDelayMet;
},

// これらはプレースホルダー メソッドであり、プラグインを拡張することでオーバーライドされます。
_mouseStart: function(event) {},
_mouseDrag: function(event) {},
_mouseStop: function(event) {},
_mouseCapture: function(event) { return true; }
};

$.ui.mouse.defaults = {
キャンセル: null,
距離: 1,
遅延: 0
};

})(jQuery);


ui.sortable.js


[javascript] view plaincopy在CODE上查看代码片派生到我的代码片

/*
* jQuery UI Sortable 1.7.1
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* MIT に基づくデュアル ライセンス (MIT-LICENSE.txt) )
* および GPL (GPL-LICENSE.txt) ライセンス。
*
* http://docs.jquery.com/UI/Sortables
*
* 依存:
* ui.core.js
*/
(関数($) {

$.widget("ui.sortable", $.extend({}, $.ui.mouse, {
_init: function() {

var o = this.options;
this.containerCache = {};
this.element.addClass("ui-sortable");

// アイテムを取得します
this.refresh( );

//項目がフローティングであるかどうかを判断してみましょう
this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css ('float')) : false;

//親のオフセットを決定しましょう
this.offset = this.element.offset()

//インタラクション用のマウス イベントを初期化します。
this._mouseInit();

},

destroy: function() {
this.element
.removeClass("ui-sortable ui-sortable-disabled")
.removeData("sortable")
。 unbind(".sortable");
this._mouseDestroy();

for ( var i = this.items.length - 1; i >= 0; i-- )
this.items[i].item.removeData("sortable-item");
},

_mouseCapture: function(event, overrideHandle) {

if (this.reverting) {
return false;
}

if(this.options.disabled || this.options.type == 'static') return false;

//最初に項目データを 1 回更新する必要があります
this._refreshItems(event);

//クリックされたノード (またはその親の 1 つ) が this.items
var currentItem = null、self = this、nodes = $(event.target) 内の実際の項目であるかどうかを調べます。 parents().each(function() {
if($.data(this, 'sortable-item') == self) {
currentItem = $(this);
return false;
}
});
if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);

if(!currentItem) は false を返します。
if(this.options.handle && !overrideHandle) {
var validHandle = false;

$(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this ==event.target) validHandle = true; });
if(!validHandle) は false を返します。
}

this.currentItem = currentItem;
this._removeCurrentsFromItems();
true を返します。

},

_mouseStart: function(event, overrideHandle, noActivation) {

var o = this.options, self = this;
this.currentContainer = this;

//refreshItems の呼び出しは MouseCapture
this.refreshPositions(); に移動されているため、refreshPositions を呼び出すだけで済みます。

//可視ヘルパーを作成して追加します
this.helper = this._createHelper(event);

//ヘルパーのサイズをキャッシュします
this._cacheHelperProportions();

/*
* - 位置生成 -
* このブロックは位置に関連するすべてを生成します。これはドラッグ可能の中核です。
*/

//元の要素のマージンをキャッシュします
this._cacheMargins();

//次のスクロール親を取得します
this.scrollParent = this.helper.scrollParent();

//ページ上の要素の絶対位置から余白を引いたもの
this.offset = this.currentItem.offset();
this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
};

// オフセットを取得した後にのみ、ヘルパーの位置を絶対位置に変更できます
// TODO: 相対ソートを可能にする方法を見つける必要があります
this.helper.css (「位置」、「絶対」);
this.cssPosition = this.helper.css("位置");

$.extend(this.offset, {
click: { //要素
left を基準にして、クリックが発生した場所:event.pageX - this.offset.left,
top:event.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset() //これは絶対位置から実際の位置を引いた相対位置です計算 - 相対位置ヘルパー
}) にのみ使用されます。

//元の位置を生成します
this.originalPosition = this._generatePosition(event);
this.originalPageX = イベント.pageX;
this.originalPageY = イベント.pageY;

//'cursorAt' が指定されている場合、ヘルパーを基準にしてマウス オフセットを調整します。
if(o.cursorAt)
this._adjustOffsetFromHelper(o.cursorAt);

//以前の DOM 位置をキャッシュします
this.domPosition = { prev: this.currentItem.prev()[0],parent: this.currentItem.parent()[0] };

//ヘルパーがオリジナルでない場合は、ドラッグ中に何の役割も果たさないようにオリジナルを非表示にします。この方法では何も悪いことは起こりません。
if(this.helper[0] != this.currentItem[0]) {
this.currentItem.hide();
}

// プレースホルダーを作成します
this._createPlaceholder();

//オプションで指定されている場合は包含を設定します。
if(o.containment)
this._setContainment();

if(o.cursor) { // カーソルオプション
if ($('body').css("cursor")) this._storedCursor = $('body').css("カーソル");
$('body').css("cursor", o.cursor);
}

if(o.opacity) { // 不透明度オプション
if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity" );
this.helper.css("不透明度", o.opacity);
}

if(o.zIndex) { // zIndex オプション
if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex" );
this.helper.css("zIndex", o.zIndex);
}

//スクロールの準備
if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
this.overflowOffset = this.scrollParent.offset();

//コールバックを呼び出す
this._trigger("start",event,this._uiHash());

//ヘルパー サイズを再キャッシュします
if(!this._preserveHelperProportions)
this._cacheHelperProportions();


//「activate」イベントを可能なコンテナにポストします
if(!noActivation) {
for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", イベント, self._uiHash(this)); }
}

//可能なドロップ可能オブジェクトを準備します
if($.ui.ddmanager)
$.ui.ddmanager.current = this;

if ($.ui.ddmanager && !o.dropBehaviour)
$.ui.ddmanager.prepareOffsets(this,event);

this.dragging = true;

this.helper.addClass("ui-sortable-helper");
this._mouseDrag(イベント); // ドラッグを 1 回実行します。これにより、正しい位置を取得する前にヘルパーが表示されなくなります。
return true;

},

_mouseDrag: function(event) {

//ヘルパーの位置を計算します
this.position = this._generatePosition(event);
this.positionAbs = this._convertPositionTo("absolute");

if (!this.lastPositionAbs) {
this.lastPositionAbs = this.positionAbs;
}

//スクロールを実行します
if(this.options.scroll) {
var o = this.options,scrolled = false;
if(this.scrollParent[0] != ドキュメント && this.scrollParent[0].tagName != 'HTML') {

if((this.overflowOffset.top this.scrollParent[0] .offsetHeight) -event.pageY < o.scrollSensitivity)
this.scrollParent[0].scrollTop = スクロール = this.scrollParent[0].scrollTop o.scrollSpeed;
else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
this.scrollParent[0].scrollTop =scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;

if((this.overflowOffset.left this.scrollParent[0].offsetWidth) -event.pageX < o.scrollSensitivity)
this.scrollParent[0].scrollLeft = スクロール = this.scrollParent [0].scrollLeft o.scrollSpeed;
else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
this.scrollParent[0].scrollLeft =scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;

} else {

if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
scrolled = $(document).scrollTop($(document ).scrollTop() - o.scrollSpeed);
else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
scrolled = $(document).scrollTop($(document) ).scrollTop() o.scrollSpeed);

if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed );
else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
scrolled = $(document).scrollLeft($(document) ).scrollLeft() o.scrollSpeed);

}

if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
$.ui.ddmanager.prepareOffsets(this,event);
}

//位置チェックに使用される絶対位置を再生成します
this.positionAbs = this._convertPositionTo("absolute");

//ヘルパー位置を設定します
if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position .left 'px';
if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top 'px';

//
を再配置 for (var i = this.items.length - 1; i >= 0; i--) {

//変数と交差部分をキャッシュし、続行交差がない場合、
var item = this.items[i]、itemElement = item.item[0]、交差 = this._intersectsWithPointer(item);
if (!intersection) が続く;

if(itemElement != this.currentItem[0] //それ自体と交差することはできません
&& this.placeholder[intersection == 1 ? "next" : "prev"]()[0] ! = itemElement //以前に実行された無駄なアクションはありません
&& !$.ui.contains(this.placeholder[0], itemElement) //移動されたアイテムがチェックされたアイテムの親である場合はアクションはありません
&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
) {

this.direction =交差点== 1 ? "下" : "上";

if (this.options.tolerance == "ポインター" || this._intersectsWithSides(item)) {
this._rearrange(event, item);
} else {
ブレーク;
}

this._trigger("変更", イベント, this._uiHash());
休憩;
}
}

//イベントをコンテナにポストします
this._contactContainers(event);

//ドロップ可能オブジェクトと相互接続します
if($.ui.ddmanager) $.ui.ddmanager.drag(this,event);

//コールバックを呼び出します
this._trigger('sort',event,this._uiHash());

this.lastPositionAbs = this.positionAbs;
false を返します。

},

_mouseStop: function(event, noPropagation) {

if(!event) return;

//droppable を使用している場合は、ドロップについてマネージャーに通知します。
if ($.ui.ddmanager && !this.options.dropBehaviour)
$.ui.ddmanager.drop(this 、 イベント);

if(this.options.revert) {
var self = this;
var cur = self.placeholder.offset();

self.reverting = true;

$(this.helper).animate({
left: cur.left - this.offset.parent.left - self.margins.left (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
top: cur.top - this.offset.parent.top - self.margins.top (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
}、parseInt(this.options.revert, 10) || 500, function() {
self._clear(event);
});
} else {
this._clear(event, noPropagation);
}

false を返します。

},

cancel: function() {

var self = this;

if(this.dragging) {

this._mouseUp();

if(this.options.helper == "original")
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
else
this.currentItem.show();

//非アクティブ化イベントをコンテナにポストします
for (var i = this.containers.length - 1; i >= 0; i--){
this.containers[i]. _trigger("非アクティブ化", null, self._uiHash(this));
if(this.containers[i].containerCache.over) {
this.containers[i]._trigger("out", null, self._uiHash(this));
this.containers[i].containerCache.over = 0;
}
}

}

//$(this.placeholder[0]).remove();これは jQuery の方法だったはずですが、残念なことに、元のノードからすべてのイベントのバインドが解除されてしまいます。
if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
if(this.options.helper != "オリジナル" && this.helper && this.helper[0].parentNode) this.helper.remove();

$.extend(this, {
ヘルパー: null,
ドラッグ: false,
元に戻す: false,
_noFinalSort: null
});

if(this.domPosition.prev) {
$(this.domPosition.prev).after(this.currentItem);
} else {
$(this.domPosition.parent).prepend(this.currentItem);
}

true を返します。

},

serialize: function(o) {

var items = this._getItemsAsjQuery(o && o.connected);
var str = []; o = o || {};

$(items).each(function() {
var res = ($(o.item || this).attr(o.attribute || 'id') || '') .match(o.expression || (/(. )[-=_](. )/));
if(res) str.push((o.key || res[1] '[]' ) '=' (o.key && o.expression ? res[1] : res[2]));

return str.join('&');

},

toArray: function(o) {

var items = this._getItemsAsjQuery(o && o.connected);
var ret = []; o = o || {};

items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
ret を返します。

},

/* 以下のコア関数に注意してください */
_intersectsWith: function(item) {

var x1 = this.positionAbs.left,
x2 = x1 this.helperProportions.width、
y1 = this.positionAbs.top、
y2 = y1 this.helperProportions.height;

var l = item.left、
r = l item.width、
t = item.top、
b = t item.height;

var dyClick = this.offset.click.top,
dxClick = this.offset.click.left;

var isOverElement = (y1 dyClick) > t && (y1 dyClick) < b && (x1 dxClick) > l && (x1 dxClick)
if( this.options.tolerance == "ポインター"
|| this.options.forcePointerForContainers
|| (this.options.tolerance != "ポインター" && this.helperProportions[this .floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])
return isOverElement;
} else {

return (l < x1 (this.helperProportions.width / 2) // 右半分
&& x2 - (this.helperProportions.width / 2) < r / / 左半分
&& t && y2 - (this.helperProportions.height / 2)
}
},

_intersectsWithPointer: function(item) {

var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top this .offset.click.top, item.top, item.height),
isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left this.offset.click.left, item.left, item.width),
isOverElement = isOverElementHeight && isOverElementWidth,
verticalDirection = this._getDragVerticalDirection(),
horizo​​ntalDirection = this._getDraghorizo​​ntalDirection();

if (!isOverElement)
return false;

return this.floating ?
( ((horizo​​ntalDirection &&horizo​​ntalDirection == "右") ||verticalDirection == "下") ? 2 : 1 )
: (verticalDirection && (verticalDirection == "下" ? 2 : 1) );

},

_intersectsWithSides: function(item) {

var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top this.offset.click.top, item .top (item.height/2), item.height),
isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left this.offset.click.left, item.left (item.width/2), item.width)、
verticalDirection = this._getDragVerticalDirection()、
horizo​​ntalDirection = this._getDraghorizo​​ntalDirection();

if (this.floating &&horizo​​ntalDirection) {
return ((horizo​​ntalDirection == "right" && isOverRightHalf) || (horizo​​ntalDirection == "left" && !isOverRightHalf));
} else {
returnverticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
}

},

_getDragVerticalDirection: function() {
var delta = this.positionAbs.top - this.lastPositionAbs.top;
return delta != 0 && (delta > 0 ? "down" : "up");
},

_getDraghorizo​​ntalDirection: function() {
var delta = this.positionAbs.left - this.lastPositionAbs.left;
return delta != 0 && (delta > 0 ? "right" : "left");
},

refresh: function(event) {
this._refreshItems(event);
this.refreshPositions();
},

_connectWith: function() {
var options = this.options;
return options.connectWith.constructor == 文字列
? [options.connectWith]
: options.connectWith;
},

_getItemsAsjQuery: function(connected) {

var self = this;
var items = [];
var クエリ = [];
var connectWith = this._connectWith();

if(connectWith && Connected) {
for (var i = connectWith.length - 1; i >= 0; i--){
var cur = $(connectWith[i] );
for (var j = cur.length - 1; j >= 0; j--){
var inst = $.data(cur[j], 'sortable');
if(inst && inst != this && !inst.options.disabled) {
queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element ) : $(inst.options.items, inst.element).not(".ui-sortable-helper"), inst]);
}
};
};
}

queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this .currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper"), this]);

for (var i = queries.length - 1; i >= 0; i--){
queries[i][0].each(function() {
items.プッシュ(これ);
};

$(item) を返す;

},

_removeCurrentsFromItems: function() {

var list = this.currentItem.find(":data(sortable-item)");

for (var i=0; i
for (var j=0; j if(list[j] == this.items[i].item[0])
this.items.splice(i,1);
};

};

},

_refreshItems: function(event) {

this.items = [];
this.containers = [this];
var items = this.items;
var self = this;
var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], イベント, { item: this.currentItem }) : $(this.options.items, this.element), this]];
var connectWith = this._connectWith();

if(connectWith) {
for (var i = connectWith.length - 1; i >= 0; i--){
var cur = $(connectWith[i]);
for (var j = cur.length - 1; j >= 0; j--){
var inst = $.data(cur[j], 'sortable');
if(inst && inst != this && !inst.options.disabled) {
queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element [0], イベント, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
this.containers.push(inst);
}
};
};
}

for (var i = queries.length - 1; i >= 0; i--) {
var targetData = queries[i][1];
var _queries = クエリ[i][0];

for (var j=0, queriesLength = _queries.length; j < queriesLength; j ) {
var item = $(_queries[j]);

item.data('sortable-item', targetData); // ターゲットチェック用データ(マウスマネージャー)

items.push({
item: item,
instance: targetData,
width: 0, height: 0,
left : 0、トップ: 0
});
};
};

},

refreshPositions: function(fast) {

//アイテムが offsetParent の外に移動されたり、offsetParent の位置に移動されたりするため、これをやり直す必要があります。
if(this.offsetParent && this.helper) {
this.offset.parent = this._getParentOffset(); が変更されます。
}

for (var i = this.items.length - 1; i >= 0; i--){
var item = this.items[i];

//接続されているすべてのコンテナの上にいないときは、その位置の計算を無視します。
if(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this .currentItem[0])
続行;

var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;

if (!fast) {
item.width = t.outerWidth();
item.height = t.outerHeight();
}

var p = t.offset();
item.left = p.left;
item.top = p.top;
};

if(this.options.custom && this.options.custom.refreshContainers) {
this.options.custom.refreshContainers.call(this);
} else {
for (var i = this.containers.length - 1; i >= 0; i--){
var p = this.containers[i].element.offset( );
this.containers[i].containerCache.left = p.left;
this.containers[i].containerCache.top = p.top;
this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
};
}

},

_createPlaceholder: function(that) {

var self = that ||これ、o = self.options;

if(!o.placeholder || o.placeholder.constructor == String) {
var className = o.placeholder;
o.placeholder = {
element: function() {

var el = $(document.createElement(self.currentItem[0].nodeName))
.addClass(className | | self.currentItem[0].className " ui-sortable-placeholder")
.removeClass("ui-sortable-helper")[0];

if(!className)
el.style.visibility = "hidden";

el を返します。
},
update: function(container, p) {

// 1. className が「プレースホルダー オプション」として設定されている場合、サイズは強制されません。その責任はクラスにあります。
// 2. オプション 'forcePlaceholderSize を有効にすると、クラス名が指定されている場合でも強制的に実行できます。
if(className && !o.forcePlaceholderSize) return;

//要素自体が実際の高さを持たない場合 (スタイルシートからのスタイルがない場合)、ドラッグされた項目からインラインの高さを受け取ります
if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10) ); };
if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem. css('paddingRight')||0, 10)); };
}
};
}

// プレースホルダーを作成します
self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));

//実際の現在のアイテムの後に追加します
self.currentItem.after(self.placeholder);

//プレースホルダーのサイズを更新します (TODO: ロジックをファジーにします。行 316/317 を参照)
o.placeholder.update(self, self.placeholder);

},

_contactContainers: function(event) {
for (var i = this.containers.length - 1; i >= 0; i--){

if(this._intersectsWith(this.containers[i].containerCache)) {
if(!this.containers[i].containerCache.over) {

if(this.currentContainer != this.containers[i]) {

//新しいコンテナに入るとき、距離が最も短いアイテムを見つけて、その近くにアイテムを追加します
var dist = 10000; var itemWithLeastDistance = null; varbase = this.positionAbs[this.containers[i].floating ? '左' : '上'];
for (var j = this.items.length - 1; j >= 0; j--) {
if(!$.ui.contains(this.containers[i].element[0]) 、this.items[j].item[0])) 続行;
var cur = this.items[j][this.containers[i].floating ? '左' : '上'];
if(Math.abs(cur - Base) < dist) {
dist = Math.abs(cur - Base); itemWithLeastDistance = this.items[j];
}
}

if(!itemWithLeastDistance && !this.opt
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11/10で写真を撮影日ごとに並べ替える方法 Windows 11/10で写真を撮影日ごとに並べ替える方法 Feb 19, 2024 pm 08:45 PM

この記事では、Windows 11/10 で写真を撮影日順に並べ替える方法を紹介し、Windows で写真が日付順に並べ替えられない場合の対処法についても説明します。 Windows システムでは、画像ファイルを見つけやすくするために、写真を適切に整理することが重要です。ユーザーは、日付、サイズ、名前などのさまざまな並べ替え方法に基づいて写真を含むフォルダーを管理できます。さらに、必要に応じて昇順または降順を設定して、ファイルをより柔軟に整理できます。 Windows 11/10 で写真を撮影日で並べ替える方法 Windows で写真を撮影日で並べ替えるには、次の手順に従います。 [ピクチャ]、デスクトップ、または写真を配置する任意のフォルダを開きます。 リボン メニューで、

Outlook でメールを送信者、件名、日付、カテゴリ、サイズで並べ替える方法 Outlook でメールを送信者、件名、日付、カテゴリ、サイズで並べ替える方法 Feb 19, 2024 am 10:48 AM

Outlook には、作業をより効率的に管理するための多くの設定と機能が用意されています。その 1 つは、ニーズに応じてメールを分類できる並べ替えオプションです。このチュートリアルでは、Outlook の並べ替え機能を使用して、送信者、件名、日付、カテゴリ、サイズなどの基準に基づいてメールを整理する方法を学習します。これにより、重要な情報の処理と検索が容易になり、生産性が向上します。 Microsoft Outlook は、電子メールやカレンダーのスケジュールを簡単に一元管理できる強力なアプリケーションです。電子メールの送受信、整理が簡単にできるほか、内蔵のカレンダー機能により今後のイベントや予定を簡単に追跡できます。 Outlo の使い方

Python を使用した XML データのフィルタリングと並べ替え Python を使用した XML データのフィルタリングと並べ替え Aug 07, 2023 pm 04:17 PM

Python を使用した XML データのフィルタリングと並べ替えの実装 はじめに: XML は、データをタグと属性の形式で保存する、一般的に使用されるデータ交換形式です。 XML データを処理するとき、多くの場合、データのフィルタリングと並べ替えが必要になります。 Python には、XML データを処理するための便利なツールとライブラリが多数用意されています。この記事では、Python を使用して XML データをフィルタリングおよび並べ替える方法を紹介します。 XML ファイルの読み取り 始める前に、XML ファイルを読み取る必要があります。 Python には XML 処理ライブラリが多数ありますが、

PHP 開発: テーブル データのソート機能とページング機能を実装する方法 PHP 開発: テーブル データのソート機能とページング機能を実装する方法 Sep 20, 2023 am 11:28 AM

PHP 開発: テーブル データのソート機能とページング機能を実装する方法 Web 開発では、大量のデータを処理するのが一般的なタスクです。大量のデータを表示する必要があるテーブルの場合、通常、優れたユーザー エクスペリエンスを提供し、システム パフォーマンスを最適化するために、データの並べ替え機能とページング機能を実装する必要があります。この記事では、PHP を使用してテーブル データのソート機能とページング機能を実装する方法と、具体的なコード例を紹介します。ソート機能はテーブルにソート機能を実装しており、ユーザーはさまざまなフィールドに従って昇順または降順でソートできます。以下は実装フォームです

C++ プログラム: 単語の位置をアルファベット順に並べ替えます。 C++ プログラム: 単語の位置をアルファベット順に並べ替えます。 Sep 01, 2023 pm 11:37 PM

この問題では、文字列が入力として与えられ、その文字列に出現する単語を辞書順に並べ替える必要があります。これを行うには、文字列内の各単語 (スペースで区切られている) に 1 から始まるインデックスを割り当て、ソートされたインデックスの形式で出力を取得します。 String={"Hello","World"}"Hello"=1 "World"=2 入力文字列内の単語は辞書編集順であるため、出力には「12」が出力されます。いくつかの入力/結果のシナリオを見てみましょう - 入力文字列内のすべての単語が同じであると仮定して、結果を見てみましょう - 入力:{"hello","hello","hello"}結果:3 取得された結果

Java の Arrays.sort() メソッドはカスタム コンパレータによって配列をどのようにソートしますか? Java の Arrays.sort() メソッドはカスタム コンパレータによって配列をどのようにソートしますか? Nov 18, 2023 am 11:36 AM

Java の Arrays.sort() メソッドはカスタム コンパレータによって配列をどのようにソートしますか? Java では、Arrays.sort() メソッドは配列を並べ替えるのに非常に便利なメソッドです。デフォルトでは、このメソッドは昇順で並べ替えます。ただし、場合によっては、独自に定義したルールに従って配列を並べ替える必要があります。このとき、カスタムコンパレータ(Comparator)を使用する必要があります。カスタム コンパレータは、Comparator インターフェイスを実装するクラスです。

WPS スコアを並べ替える方法 WPS スコアを並べ替える方法 Mar 20, 2024 am 11:28 AM

私たちの仕事では、wps ソフトウェアをよく使用します。wps ソフトウェアではデータを処理する方法がたくさんあり、機能も非常に強力です。平均値や要約などを求める関数をよく使用します。統計データに使用できるメソッドは、WPS ソフトウェア ライブラリで誰でも利用できるように用意されています。以下では、WPS でスコアをソートする手順を紹介します。これを読んだ後、経験から学ぶことができます。 1. まず、ランク付けする必要があるテーブルを開きます。以下に示すように。 2. 次に、数式 =rank(B2, B2: B5, 0) を入力します。必ず 0 を入力してください。以下に示すように。 3. 数式を入力した後、コンピュータのキーボードの F4 キーを押すと、相対参照が絶対参照に変更されます。

エクセルで並べ替える方法 エクセルで並べ替える方法 Mar 05, 2024 pm 04:12 PM

Excel での並べ替え方法: 1. 単一列の並べ替え; 2. 複数列の並べ替え; 3. カスタム並べ替え。詳細な紹介: 1. 単一列の並べ替えは、最も一般的な並べ替え方法です。選択した列に従って並べ替えられます。2. 複数列の並べ替えは、複数の列でデータを並べ替えることを指します。通常は、最初に特定の列に従って並べ替えられます。 of、別の列で並べ替える; 3. カスタム並べ替え、ユーザーが独自のニーズに応じて並べ替え順序を定義できるようにします。

See all articles