ホームページ > ウェブフロントエンド > jsチュートリアル > ドラッグ可能な列幅のデモ例 table_javascript スキル

ドラッグ可能な列幅のデモ例 table_javascript スキル

WBOY
リリース: 2016-05-16 17:47:50
オリジナル
1274 人が閲覧しました
コードをコピー コードは次のとおりです:







































































序号 操作 标题 执行人 开始时间 结束时间 天数
1 编辑 任务标题:阿斯卡是大家啊 Firefox 2012-07-15 2012-08-15 32
2 编辑 任务标题:阿斯卡是大家啊 Firefox 2012-07-15 2012-08-15 32
3 编辑 任务标题:阿斯卡是大家啊 Firefox 2012-07-15 2012-08-15 32
4 编辑 任务标题:阿斯卡是大家啊 Firefox 2012-07-15 2012-08-15 32
5 编辑 任务标题:阿斯卡是大家啊 Firefox 2012-07-15 2012-08-15 32




(function(){ //テーブルヘッダーを修正、一下実行类を封入可能
var leftScrollPanel = $("#left-scroll-panel");
var ganntBody = $("#gannt_grid> ;tbody");
var fixedThead = leftScrollPanel.prev(".fixed-header-tb");
if(!fixedThead.length){
fixedThead = $('
');
fixedThead.append(ganntBody.prev());
leftScrollPanel.before(fixedThead);
}else{
/ /gannt ボディの再描画時にテーブル ヘッドを再度作成しません。
//これは関数 render で作成されないためです。
ganntBody.prev().remove();
var tds = ganntBody. find("tr:first>td");
var ths = fixThead.find("th");
$.each(tds,function(index,td){ //jq width() または css('width') には 1px の視差がある可能性があります。attr width
thWidth = ths.eq(index).attr("width");
(thWidth!=unknown); && $(td).attr("width",thWidth);
});
(function(){//テーブルヘッダーのサイズ変更
var sideOffset = {
left:null,
right:null,
td:null,
tdLocked:null,
tdLeft:null,
tdRight:null
};
var pos = {
resizeTime:0,
beginPos:0
}; .fixed-header-tb").find("tr:first");
var headCellTagName = "th";
var bodyHead = $("#gannt_grid>tbody").find("tr:first") ");
var minInterVal = 0;
var minWidth = 30;
var borderBeside = 5;
var notResizeCells = [0,1,6];
var freeCells = [2] ;
varforceSize = false;
var resizing = false;
var frag = false; ;
varindex = o.td.index();
if($.inArray(index,notResizeCells)>-1){
frag = true; ==0||$.inArray(index-1,notResizeCells)>-1)&&o.left<=borderBeside){
frag = true;
}else if((index==o.td.兄弟().length||$.inArray(index 1,notResizeCells)>-1)&&o.right<=borderBeside){
frag = true;
}else if(o.left>borderBeside&&o.right>) ;borderBeside){
frag = true;
}
フラグを返します。
};
var stopResize = function(){
if(!resizing){return ;}
resizing = false;
resizeAllow = false;
sideOffset = {
left:null、
right:null、
td:null、
tdLocked:null、
tdLeft:null、
tdRight:null
};
};
var isFreeCell = function(td){
return ForceSize==false && $.inArray(td.index(),freeCells)!=-1;
};
tableHead.bind({
mousemove:function(e){
var th = $(e.target).closest(headCellTagName);
if(!th.length){
return;
}
if(!resizing){
sideOffset.td = th;
sideOffset.left = e.pageX - th.offset().right = th.width()-(e.pageX-th.offset().left);
if(forbiddenResize()){
resizeAllow = false;
sideOffset.td.css("cursor", "デフォルト");
}else{
sideOffset.td.css("cursor","e-resize");
pos.resizeTime = new Date()* 1;
pos.beginPos = e.pageX;
return;
}
th = sideOffset.tdLocked; 🎜>if(new Date()-pos.resizeTimereturn;
}else{
pos.resizeTime = new Date()*1; = (e.pageX-pos.beginPos);
if(!offset){
return;
}else{
pos.beginPos = e.pageX; leftWidth = sideOffset.tdLeft.width();
var rightWidth = sideOffset.tdRight.width();
if(offset<&leftWidth==minWidth){
}else if(offset>) ;0&&rightWidth==minWidth){
return;
}
var fixedLWidth,fixedRWidth;
if(leftWidth-Math.abs(offset)fixedLWidth = minWidth;
fixedRWidth = rightWidth - (minWidth-leftWidth);
}else if(rightWidth-offset0){
fixedRWidth = minWidth;
fixedLWidth = leftWidth - (minWidth-rightWidth);
}else{
fixedLWidth = leftWidth オフセット;
fixedRWidth = rightWidth-offset;
}
varAdjustCells = [
{cell:sideOffset.tdLeft,width:fixedLWidth},
{cell:sideOffset.tdRight,width:fixedRWidth}
];
if(offsetadjustCells =AdjustCells.reverse();
}
var inOneTable = bodyHead.parents("table:first").get(0)==tableHead.parents("table:first").get(0);
$.each(adjustCells,function(i,cellConf){
if(isFreeCell(cellConf.cell)){return;}
cellConf.cell.attr("width",cellConf.width);
if(!inOneTable){
bodyHead.children().eq(cellConf.cell.index()).attr("width",cellConf.width);
}
});
},
mousedown:function(){
if(!resizeAllow){
return;
}
sideOffset.tdLocked = SideOffset.td;
if(sideOffset.leftsideOffset.tdRight = sideOffset.td;
sideOffset.tdLeft = sideOffset.td.prev();
}else{
sideOffset.tdRight = sideOffset.td.next();
sideOffset.tdLeft = SideOffset.td;
}
サイズ変更 = true;
false を返します。
}
});
$(document).bind("mouseup",stopResize);
})();



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート