Heim Web-Frontend js-Tutorial 一个可拖拽列宽表格实例演示_javascript技巧

一个可拖拽列宽表格实例演示_javascript技巧

May 16, 2016 pm 05:47 PM
拖拽

复制代码 代码如下:







































































序号 操作 标题 执行人 开始时间 结束时间 天数
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



<script> <BR>(function(){ //fixed table header ,还可以封装一下做成类 <BR>var leftScrollPanel = $("#left-scroll-panel"); <BR>var ganntBody = $("#gannt_grid>tbody"); <BR>var fixedThead = leftScrollPanel.prev(".fixed-header-tb"); <BR>if(!fixedThead.length){ <BR>fixedThead = $('<table class="fixed-header-tb">'); <BR>fixedThead.append(ganntBody.prev()); <BR>leftScrollPanel.before(fixedThead); <BR>}else{ <BR>//do not create table head again when gannt body repaint, <BR>//because it is not created in function render <BR>ganntBody.prev().remove(); <BR>} <BR>var tds = ganntBody.find("tr:first>td"); <BR>var ths = fixedThead.find("th"); <BR>var thWidth; <BR>$.each(tds,function(index,td){ <BR>//jq width() or css('width') may has 1px disparity, use attr width <BR>thWidth = ths.eq(index).attr("width"); <BR>(thWidth!=undefined) && $(td).attr("width",thWidth); <BR>}); <BR>})(); <BR>(function(){//table header resize <BR>var sideOffset = { <BR>left:null, <BR>right:null, <BR>td:null, <BR>tdLocked:null, <BR>tdLeft:null, <BR>tdRight:null <BR>}; <BR>var pos = { <BR>resizedTime:0, <BR>beginPos:0 <BR>}; <BR>var tableHead = $(".fixed-header-tb").find("tr:first"); <BR>var headCellTagName = "th"; <BR>var bodyHead = $("#gannt_grid>tbody").find("tr:first"); <BR>var minInterVal = 0; <BR>var minWidth = 30; <BR>var borderBeside = 5; <BR>var notResizeCells = [0,1,6]; <BR>var freeCells = [2]; <BR>var forceSize = false; <BR>var resizeAllow = false; <BR>var resizing = false; <BR>var forbiddenResize = function(){ <BR>var frag = false; <BR>var o = sideOffset; <BR>var index = o.td.index(); <BR>if($.inArray(index,notResizeCells)>-1){ <BR>frag = true; <BR>}else if((index==0||$.inArray(index-1,notResizeCells)>-1)&&o.left<=borderBeside){ <BR>frag = true; <BR>}else if((index==o.td.siblings().length||$.inArray(index+1,notResizeCells)>-1)&&o.right<=borderBeside){ <BR>frag = true; <BR>}else if(o.left>borderBeside&&o.right>borderBeside){ <BR>frag = true; <BR>} <BR>return frag; <BR>}; <BR>var stopResize = function(){ <BR>if(!resizing){return ;} <BR>resizing = false; <BR>resizeAllow = false; <BR>sideOffset = { <BR>left:null, <BR>right:null, <BR>td:null, <BR>tdLocked:null, <BR>tdLeft:null, <BR>tdRight:null <BR>}; <BR>}; <BR>var isFreeCell = function(td){ <BR>return forceSize==false && $.inArray(td.index(),freeCells)!=-1; <BR>}; <BR>tableHead.bind({ <BR>mousemove:function(e){ <BR>var th = $(e.target).closest(headCellTagName); <BR>if(!th.length){ <BR>return; <BR>} <BR>if(!resizing){ <BR>sideOffset.td = th; <BR>sideOffset.left = e.pageX - th.offset().left; <BR>sideOffset.right = th.width()-(e.pageX-th.offset().left); <BR>if(forbiddenResize()){ <BR>resizeAllow = false; <BR>sideOffset.td.css("cursor","default"); <BR>}else{ <BR>resizeAllow = true; <BR>sideOffset.td.css("cursor","e-resize"); <BR>pos.resizedTime = new Date()*1; <BR>pos.beginPos = e.pageX; <BR>} <BR>return; <BR>} <BR>if(sideOffset.tdLocked){ <BR>th = sideOffset.tdLocked; <BR>} <BR>if(new Date()-pos.resizedTime<minInterVal){ <BR>return; <BR>}else{ <BR>pos.resizedTime = new Date()*1; <BR>} <BR>var offset = (e.pageX-pos.beginPos); <BR>if(!offset){ <BR>return; <BR>}else{ <BR>pos.beginPos = e.pageX; <BR>} <BR>var leftWidth = sideOffset.tdLeft.width(); <BR>var rightWidth = sideOffset.tdRight.width(); <BR>if(offset<0&&leftWidth==minWidth){ <BR>return; <BR>}else if(offset>0&&rightWidth==minWidth){ <BR>return; <BR>} <BR>var fixedLWidth,fixedRWidth; <BR>if(leftWidth-Math.abs(offset)<minWidth&&offset<0){ <BR>fixedLWidth = minWidth; <BR>fixedRWidth = rightWidth - (minWidth-leftWidth); <BR>}else if(rightWidth-offset<minWidth&&offset>0){ <BR>fixedRWidth = minWidth; <BR>fixedLWidth = leftWidth - (minWidth-rightWidth); <BR>}else{ <BR>fixedLWidth = leftWidth+offset; <BR>fixedRWidth = rightWidth-offset; <BR>} <BR>var adjustCells = [ <BR>{cell:sideOffset.tdLeft,width:fixedLWidth}, <BR>{cell:sideOffset.tdRight,width:fixedRWidth} <BR>]; <BR>if(offset<0){ <BR>adjustCells = adjustCells.reverse(); <BR>} <BR>var inOneTable = bodyHead.parents("table:first").get(0)==tableHead.parents("table:first").get(0); <BR>$.each(adjustCells,function(i,cellConf){ <BR>if(isFreeCell(cellConf.cell)){return;} <BR>cellConf.cell.attr("width",cellConf.width); <BR>if(!inOneTable){ <BR>bodyHead.children().eq(cellConf.cell.index()).attr("width",cellConf.width); <BR>} <BR>}); <BR>}, <BR>mousedown:function(){ <BR>if(!resizeAllow){ <BR>return; <BR>} <BR>sideOffset.tdLocked = sideOffset.td; <BR>if(sideOffset.left<=5){ <BR>sideOffset.tdRight = sideOffset.td; <BR>sideOffset.tdLeft = sideOffset.td.prev(); <BR>}else{ <BR>sideOffset.tdRight = sideOffset.td.next(); <BR>sideOffset.tdLeft = sideOffset.td; <BR>} <BR>resizing = true; <BR>return false; <BR>} <BR>}); <BR>$(document).bind("mouseup",stopResize); <BR>})(); <BR></script>


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie implementiert man mit JavaScript die Drag-and-Zoom-Funktion von Bildern? Wie implementiert man mit JavaScript die Drag-and-Zoom-Funktion von Bildern? Oct 27, 2023 am 09:39 AM

Wie implementiert man mit JavaScript die Drag-and-Zoom-Funktion von Bildern? In der modernen Webentwicklung ist das Ziehen und Zoomen von Bildern eine häufige Anforderung. Durch die Verwendung von JavaScript können wir Bildern ganz einfach Zieh- und Zoomfunktionen hinzufügen, um ein besseres Benutzererlebnis zu bieten. In diesem Artikel stellen wir anhand spezifischer Codebeispiele vor, wie Sie JavaScript zum Implementieren dieser Funktion verwenden. HTML-Struktur Zunächst benötigen wir eine grundlegende HTML-Struktur, um Bilder anzuzeigen und hinzuzufügen

Tipps und Best Practices für die Drag-and-Drop-Auswahl und -Platzierung in Vue Tipps und Best Practices für die Drag-and-Drop-Auswahl und -Platzierung in Vue Jun 25, 2023 am 10:13 AM

Vue ist ein beliebtes JavaScript-Framework, das sich zum Erstellen von Single-Page-Anwendungen (SPA) eignet. Es unterstützt Drag-and-Drop-Auswahl- und Platzierungsfunktionen durch Anweisungen und Komponenten und bietet Benutzern ein besseres interaktives Erlebnis. In diesem Artikel werden die Techniken und Best Practices für die Drag-and-Drop-Auswahl und -Platzierung in Vue vorgestellt. Drag-Anweisung Vue bietet eine v-ziehbare Anweisung, mit der problemlos Drag-Effekte erzielt werden können. Dieser Befehl kann auf jedes Element angewendet werden und der Ziehstil kann angepasst werden.

Praktische Vue-Fähigkeiten: Verwenden Sie die V-On-Anweisung, um Mausziehereignisse zu verarbeiten Praktische Vue-Fähigkeiten: Verwenden Sie die V-On-Anweisung, um Mausziehereignisse zu verarbeiten Sep 15, 2023 am 08:24 AM

Praktische Fähigkeiten von Vue: Verwenden Sie die v-on-Anweisung, um Mausziehereignisse zu verarbeiten. Vorwort: Vue.js ist ein beliebtes JavaScript-Framework. Aufgrund seiner Einfachheit, Benutzerfreundlichkeit und Flexibilität ist es für viele Entwickler die erste Wahl. Bei der Entwicklung von Vue-Anwendungen ist der Umgang mit Benutzerinteraktionsereignissen eine wesentliche Fähigkeit. In diesem Artikel wird erläutert, wie Sie die v-on-Direktive von Vue verwenden, um Mausziehereignisse zu verarbeiten, und es werden spezifische Codebeispiele bereitgestellt. Erstellen Sie eine Vue-Instanz: Führen Sie zunächst die Bibliotheksdatei Vue.js in die HTML-Datei ein: &

So verwenden Sie Vue zum Implementieren von Drag-and-Drop-Sortiereffekten So verwenden Sie Vue zum Implementieren von Drag-and-Drop-Sortiereffekten Sep 20, 2023 pm 03:01 PM

So verwenden Sie Vue zum Implementieren von Drag-and-Drop-Sortiereffekten Vue.js ist ein beliebtes JavaScript-Framework, das uns beim Erstellen hochgradig interaktiver Front-End-Anwendungen helfen kann. In Vue können wir problemlos Drag-and-Drop-Sortiereffekte implementieren, sodass Benutzer Daten durch Ziehen von Elementen sortieren können. In diesem Artikel wird erläutert, wie Sie mit Vue Drag-and-Drop-Sortiereffekte implementieren, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir eine Instanz von Vue erstellen und ein Array definieren, um die zu sortierenden Daten zu speichern. Im Beispiel werden wir

Wie kopiere und verschiebe ich Drag-and-Drop-Elemente in Vue? Wie kopiere und verschiebe ich Drag-and-Drop-Elemente in Vue? Jun 25, 2023 am 08:35 AM

Vue ist ein beliebtes JavaScript-Framework, das eine praktische Drag-and-Drop-Funktion bietet, mit der wir Elemente einfach kopieren und verschieben können. Schauen wir uns als Nächstes an, wie man Drag-and-Drop-Elemente in Vue kopiert und verschiebt. 1. Grundlegende Implementierung von Drag-and-Drop-Elementen Um Drag-and-Drop-Elemente in Vue zu kopieren und zu verschieben, müssen Sie zunächst die grundlegende Drag-and-Drop-Funktion des Elements implementieren. Die spezifische Implementierungsmethode lautet wie folgt: Fügen Sie die Elemente hinzu, die in die Vorlage gezogen werden müssen: &lt;divclass="drag-elem"

So verwenden Sie Layui, um Bildzieh- und Zoomeffekte zu erzielen So verwenden Sie Layui, um Bildzieh- und Zoomeffekte zu erzielen Oct 24, 2023 am 09:16 AM

So erzielen Sie mit Layui Bildzieh- und Zoomeffekte. Im modernen Webdesign ist der interaktive Effekt von Bildern zu einem wichtigen Mittel geworden, um die Vitalität und Benutzererfahrung von Webseiten zu steigern. Unter diesen sind Bildzieh- und Zoomeffekte eine der gebräuchlichsten und beliebtesten Interaktionsmethoden. In diesem Artikel wird erläutert, wie Sie mithilfe des Layui-Frameworks Bildzieh- und Zoomeffekte erzielen, und es werden spezifische Codebeispiele bereitgestellt. 1. Führen Sie das Layui-Framework und die zugehörigen Abhängigkeiten ein: Zuerst müssen wir das Layui-Framework und die zugehörigen Abhängigkeiten in die HTML-Datei einführen. Dies kann über das folgende Codebeispiel eingeführt werden

Verwendung und Wirkung der Drag-and-Drop-Sortierfunktion in Vue-Dokumenten Verwendung und Wirkung der Drag-and-Drop-Sortierfunktion in Vue-Dokumenten Jun 20, 2023 am 09:22 AM

Vue ist heute eines der beliebtesten Frontend-Frameworks. Es bietet eine Fülle von Funktionen und Tools, die uns bei der bequemen Entwicklung verschiedener Webanwendungen unterstützen. Eine sehr nützliche Funktion ist Drag & Drop, mit der Benutzer Elemente von einer Stelle auf der Seite an eine andere ziehen können. Vue bietet einige integrierte Befehle und Funktionen, die das Erstellen und Verwalten von Drag-and-Drop-Vorgängen, einschließlich Drag-and-Drop-Sortierfunktionen, vereinfachen. In diesem Artikel werden die Verwendung und Wirkung der Drag-and-Drop-Sortierfunktion im Vue-Dokument vorgestellt. Was ist die Drag-Sort-Funktion? Die Drag-Sortierfunktion ist V

So implementieren Sie die Drag-and-Drop-Sortierfunktion in Uniapp So implementieren Sie die Drag-and-Drop-Sortierfunktion in Uniapp Jul 06, 2023 pm 12:31 PM

So implementieren Sie die Drag-and-Drop-Sortierfunktion in uniapp. Drag-and-Drop-Sortierung ist eine gängige Benutzerinteraktionsmethode, mit der Benutzer die Reihenfolge von Elementen durch Ziehen ändern können. In uniapp können wir die Drag-and-Drop-Sortierfunktion implementieren, indem wir die Komponentenbibliothek und einige grundlegende Drag-Ereignisse verwenden. Im Folgenden wird anhand von Codebeispielen ausführlich erläutert, wie die Drag-and-Drop-Sortierfunktion in uniapp implementiert wird. Schritt 1: Erstellen Sie eine einfache Listenseite. Zuerst müssen wir eine einfache Listenseite erstellen, um die Elemente anzuzeigen, die sortiert werden müssen. Sie können & verwenden

See all articles