Maison interface Web js tutoriel 一个可拖拽列宽表格实例演示_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>


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser JavaScript pour implémenter la fonction glisser et zoomer des images ? Comment utiliser JavaScript pour implémenter la fonction glisser et zoomer des images ? Oct 27, 2023 am 09:39 AM

Comment utiliser JavaScript pour implémenter la fonction glisser et zoomer des images ? Dans le développement Web moderne, faire glisser et zoomer sur des images est une exigence courante. En utilisant JavaScript, nous pouvons facilement ajouter des fonctions de glisser et de zoom aux images pour offrir une meilleure expérience utilisateur. Dans cet article, nous présenterons comment utiliser JavaScript pour implémenter cette fonction, avec des exemples de code spécifiques. Structure HTML Tout d'abord, nous avons besoin d'une structure HTML de base pour afficher les images et ajouter

Conseils et bonnes pratiques pour la sélection et le placement par glisser-déposer dans Vue Conseils et bonnes pratiques pour la sélection et le placement par glisser-déposer dans Vue Jun 25, 2023 am 10:13 AM

Vue est un framework JavaScript populaire adapté à la création d'applications à page unique (SPA). Il prend en charge les fonctions de sélection et de placement par glisser-déposer via des instructions et des composants, offrant aux utilisateurs une meilleure expérience interactive. Cet article présentera les techniques et les meilleures pratiques pour la sélection et le placement par glisser-déposer dans Vue. Instruction de glisser Vue fournit une instruction déplaçable en V qui peut facilement obtenir des effets de glisser. Cette commande peut être appliquée à n'importe quel élément et le style de déplacement peut être personnalisé.

Compétences pratiques de Vue : utilisez l'instruction v-on pour gérer les événements de glissement de la souris Compétences pratiques de Vue : utilisez l'instruction v-on pour gérer les événements de glissement de la souris Sep 15, 2023 am 08:24 AM

Compétences pratiques de Vue : utilisez l'instruction v-on pour gérer les événements de glissement de la souris. Préface : Vue.js est un framework JavaScript populaire. Sa simplicité, sa facilité d'utilisation et sa flexibilité en font le premier choix pour de nombreux développeurs. Dans le développement d'applications Vue, la gestion des événements d'interaction utilisateur est une compétence essentielle. Cet article explique comment utiliser la directive v-on de Vue pour gérer les événements de glissement de la souris et fournit des exemples de code spécifiques. Créez une instance Vue : Tout d'abord, introduisez le fichier de bibliothèque Vue.js dans le fichier HTML : &

Comment utiliser Vue pour implémenter des effets de tri par glisser-déposer Comment utiliser Vue pour implémenter des effets de tri par glisser-déposer Sep 20, 2023 pm 03:01 PM

Comment utiliser Vue pour implémenter des effets de tri par glisser-déposer Vue.js est un framework JavaScript populaire qui peut nous aider à créer des applications frontales hautement interactives. Dans Vue, nous pouvons facilement implémenter des effets de tri par glisser-déposer, permettant aux utilisateurs de trier les données en faisant glisser des éléments. Cet article expliquera comment utiliser Vue pour implémenter des effets de tri par glisser-déposer et fournira des exemples de code spécifiques. Tout d’abord, nous devons créer une instance de Vue et définir un tableau pour stocker les données à trier. Dans l'exemple nous allons

Comment copier et déplacer des éléments par glisser-déposer dans Vue ? Comment copier et déplacer des éléments par glisser-déposer dans Vue ? Jun 25, 2023 am 08:35 AM

Vue est un framework JavaScript populaire qui fournit une fonction glisser-déposer pratique, nous permettant de copier et de déplacer facilement des éléments. Voyons ensuite comment copier et déplacer des éléments par glisser-déposer dans Vue. 1. Implémentation de base des éléments glisser-déposer Pour copier et déplacer des éléments glisser-déposer dans Vue, vous devez d'abord implémenter la fonction glisser-déposer de base de l'élément. La méthode spécifique d'implémentation est la suivante : Ajoutez les éléments qui doivent être glissés dans le modèle : &lt;divclass="drag-elem"

Comment utiliser et effectuer la fonction de tri par glisser-déposer dans les documents Vue Comment utiliser et effectuer la fonction de tri par glisser-déposer dans les documents Vue Jun 20, 2023 am 09:22 AM

Vue est l'un des frameworks front-end les plus populaires aujourd'hui. Il fournit une multitude de fonctions et d'outils pour nous aider à développer facilement diverses applications Web. Une fonctionnalité très utile est le glisser-déposer, qui permet aux utilisateurs de faire glisser des éléments d'un emplacement de la page à un autre. Vue fournit des commandes et fonctions intégrées qui facilitent la création et la gestion des opérations de glisser-déposer, y compris les fonctions de tri par glisser-déposer. Cet article présentera l'utilisation et l'effet de la fonction de tri par glisser-déposer dans le document Vue. Qu'est-ce que la fonction de tri par glisser-déposer ? La fonction de tri par glisser est V

Comment utiliser Layui pour obtenir des effets de glissement et de zoom d'image Comment utiliser Layui pour obtenir des effets de glissement et de zoom d'image Oct 24, 2023 am 09:16 AM

Comment utiliser Layui pour obtenir des effets de glissement et de zoom d'images. Dans la conception Web moderne, l'effet interactif des images est devenu un moyen important pour augmenter la vitalité et l'expérience utilisateur des pages Web. Parmi eux, les effets de glissement et de zoom d’image sont l’une des méthodes d’interaction courantes et populaires. Cet article expliquera comment utiliser le framework Layui pour obtenir des effets de glissement et de zoom d'image, et fournira des exemples de code spécifiques. 1. Présentez le framework Layui et les dépendances associées : Tout d'abord, nous devons introduire le framework Layui et les dépendances associées dans le fichier HTML. Cela peut être introduit via l'exemple de code suivant

Comment utiliser JavaScript pour implémenter la fonction de glisser-déposer pour modifier la taille des éléments ? Comment utiliser JavaScript pour implémenter la fonction de glisser-déposer pour modifier la taille des éléments ? Oct 21, 2023 am 11:34 AM

Comment utiliser JavaScript pour implémenter la fonction de glisser-déposer pour modifier la taille des éléments ? Avec le développement de la technologie Web, de plus en plus de pages Web doivent avoir la fonction de glisser-déposer pour modifier la taille des éléments. Par exemple, vous pouvez faire glisser et redimensionner un élément div pour ajuster sa largeur et sa hauteur. Cet article explique comment utiliser JavaScript pour réaliser cette fonction et fournit des exemples de code spécifiques. Avant de commencer, nous devons comprendre quelques concepts de base : les propriétés de position et de taille des éléments : en CSS, en passant par t

See all articles