JAVASCRIPT+DHTML实现表格拖动(固定写法)

利用js+css+html实现固定table的列头不动 本文分享了利用js+css+html实现固定table的列头不动的实例代码。小编认为具有很好的参考价值,感兴趣的朋友可以看下 立即下载
 

http://blog.youkuaiyun.com/hunkdong/archive/2005/08/11/451169.aspx

 

自已做的,本来想在网上找前辈们做的,可是总找不到这种例子,要么找出来的太复杂,

要么就没法用,索性自己写了一个.看看还可以用!贡献出来,估计和我一样的菜鸟用的着!

 

代码如下:

<html>

<style>

    body{      

        font-size:9pt;

    }  

    table,th,td{

        font-size:9pt;

    }

    .lsitTalbe{

        table-layout:fixed;

        width:30%;

        border-collapse:collapse;

        border-color:#507010;

        color:#003300;

    }

    .pageda{

        font-family:Webdings;

        font-size:12pt;

        color:#CCCCCC;

        cursor:default;

    }

    .pageua{

        font-family:Webdings;

        font-size:12pt;

    }

    .even{

        background:#e8f8d0;

    }

    .odd{

        background:#f8fcf0;

    }

    .header{

        background:a0dc40;

        color:003300;

    }

 </style>

<head>

    <TITLE>JAVASCRIPT+DHTML实现表格拖动DEMO</TITLE>

    <META NAME="Generator" CONTENT="EditPlus">

    <META NAME="Author" CONTENT="Hunk Dong">

</head>

<body>

<br>

JAVASCRIPT+DHTML实现表格拖动 按住&nbsp;<b>列1</b>&nbsp;即可拖动

<hr width="30%" align="left">

<table class="lsitTalbe" border="1" cellspacing="1" cellpadding="1" onmousedown="mousedown()"   onmouseup="mouseup()"   onmousemove="mousemove()" >

    <tr class="header">

        <th width="10%">列1</th>

        <th width="10%">列2</th>

        <th width="40%">列3</th>

        <th width="40%">列4</th>

    <tr>

    <tr class="even" id="tr_1">   

       

        <TD style="cursor:move" title="按住可拖动">1</TD>

        <TD ><INPUT class=inputStyle id=chkTaskItem_3 type=checkbox value=3 name=chkTaskItem></TD>

        <TD ><INPUT class=inputStyle id=txtTaskName_3 type=txtTaskName  size=25 name=txtTaskName value="test1"></TD>

        <TD >test1</TD>    

    </tr>

   

     <tr class="odd" id="tr_2"> 

        <TD style="cursor:move" title="按住可拖动">2</TD>

        <TD ><INPUT class=inputStyle id=chkTaskItem4 type=checkbox value=4 name=chkTaskItem></TD>

        <TD ><INPUT class=inputStyle id=txtTaskName_4 type=txtTaskName  size=25 name=txtTaskName value="test2"></TD>

        <TD >test2</TD>      

    </tr>

 

     <tr class="even" id="tr_3">

      

        <TD style="cursor:move" title="按住可拖动">3</TD>

         <TD ><INPUT class=inputStyle id=chkTaskItem_5 type=checkbox value=5 name=chkTaskItem></TD>

        <TD ><INPUT class=inputStyle id=txtTaskName_5 type=txtTaskName  size=25 name=txtTaskName value="test3"></TD>

        <TD >test3</TD>  

    </tr>

</table>

</body>

</html>

 

<script language="javaScript">

    var srcRowIndex;

    var targetRowIndex;

    var bDragMode ;

    var objDragItem ;

    var el;

 

    function window.onload(){

        initAdditionalElements();

    }

 

    function initAdditionalElements(){

        objDragItem = document.createElement("DIV");

        with(objDragItem.style){                    

            backgroundColor = "buttonshadow";

            cursor = "default";

            position = "absolute";

            filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=50)";

            zIndex = 3001;

            display  ="none";        

        }

        window.document.body.insertAdjacentElement("afterBegin", objDragItem);

    }   

 

 

    function mousedown(){   

        el = window.event.srcElement;

        if(el==null||el.tagName!="TD") return false;     

        if(el.cellIndex!=0 || el.parentNode.rowIndex<2) return false;

       

        srcRowIndex =  el.parentElement;      

 

        bDragMode = true ;       

        if (objDragItem!=null){

            with(objDragItem){

                innerHTML = el.parentElement.innerHTML;

                style.height = el.parentElement.offsetHeight;

                style.width  = el.parentElement.offsetWidth;

            }

        }

        el.setCapture();

    }

   

    function mouseup(){ 

   

        if(el==null || el.cellIndex!=0 || el.parentNode.rowIndex<2) return false;       

       

        targetRowIndex = el.parentElement;

        srcRowIndex.swapNode(targetRowIndex);

 

        bDragMode = false ;

        objDragItem.style.display  ="none";   

    }

 

   function mousemove(){

        el = window.event.srcElement;

       

        window.event.cancelBubble = false;

        cliX = window.event.clientX;

        cliY = window.event.clientY;

        if(bDragMode && objDragItem!=null){

            with(objDragItem){

                style.display  ="";

                style.posLeft = cliX +1;

                style.posTop  = cliY - offsetHeight/2;

            } 

        }

    }

</script>

 

直接Copy下来就可以用,欢迎大家一起讨论: dongpin9685@163.com

5、模型预测控制与分布式MPC控制结构解析 本文深入解析了模型预测控制(MPC)中的双模式预测控制及其稳定性理论,并探讨了分布式MPC的不同控制结构。内容涵盖MPC的基本公式化、性能指标、优化问题以及相关算法步骤,同时比较了集中式MPC、单层分布式MPC和分层分布式MPC的优缺点和适用场景。最后通过流程图和表格形式总结了双模式MPC的算法步骤和控制结构选择思路,并提供了操作建议,以帮助在实际工业系统中更好地应用MPC技术。 阅读详情

相关推荐

CloudCompare点云变换保姆级教程:从平移、旋转到绕任意点旋转,一次搞定

本文提供CloudCompare点云变换的全面教程,涵盖从基础平移、旋转到绕任意点旋转的高级技巧。通过详细的操作步骤和实战案例,帮助用户掌握点云数据处理的核心技能,提升三维模型对齐和变换的效率与精度。

weixin_28717969的博客 291

JAVASCRIPT+DHTML实现表格拖动

本文系作者原创,如要转贴,请保留以下信息:http://blog.youkuaiyun.com/hunkdong/archive/2005/08/11/451169.aspx 自已做的,本来想在网上找前辈们做的,可是总找不到这种例子,要么找出来的太复杂,要么就没法用,索性自己写了一个.看看还可以用!贡献出来,估计和我一样的菜鸟用的着! 代码如下:    body{               font-siz

汉克的专栏 3030

Pentaho安装与配置

Pentaho安装与配置前言一、下载二、配置1.JDK环境2.添加mysql-jdbc驱动三、启动 前言 Pentaho Data Integration (PDI):前身是Kettle。Pentaho提供了提取、转换和加载(ETL)功能,该功能使用统一且与最终用户和物联网技术相关且可访问的格式简化了捕获、清理和存储数据的过程。 功能:提供报表的制作、分析、仪表板、数据集成、数据采集、商业智能平台等强大功能。 一、下载 官网地址:http://www.pentaho.com/ 不过已经访问不到了

小太阳DENGJIE的博客 3606

html表格到层的相对位置,html,左右拖动表格.doc

html,左右拖动表格篇一:html表格布局实例[html]表格布局之实例版| [<前面我们讲了html表格的基础知识,今天我们通过一个实例让大家更清晰的了解下表格的用途。例如:我们做一个简单的网站布局,代码如下:bordercolor=#00ff99产生如下的表格:这是一张整体的表格,第一行和第四行分别跨度了三列,这里用colspan=3来限制,而第二行的“搜索框”占用了两列的位置,用co...

weixin_30707165的博客 248

深入解析Android Qcom Camera HAL3架构与Camx线程模块

本文深入解析了Android Qcom Camera HAL3架构与Camx线程模块的核心原理。文章以高通芯片平台为例,剖析了从按下快门到生成照片的完整Camera流程分析,重点阐述了Camx框架中线程池、消息队列及Fence同步机制如何协同工作,以实现高效、稳定的多线程并发图像处理,为相机性能优化提供理论基础。

weixin_29184075的博客 221

OpenAI Function Calling 实战:让 Agent 自动调用外部 API 接口

在 2023 年 6 月之前,大语言模型(LLM)的能力边界是清晰的:它能说会道,能写诗作赋,也能帮你润色文案。但如果你问它"北京现在天气怎么样",它要么答不上来,要么基于过时的训练数据给你一个错误答案。原因很简单——LLM 的训练数据是有截止日期的,它活在"过去"。2023 年 6 月,OpenAI 在 GPT-4 的更新中引入了 Function Calling 功能,彻底改变了这一局面。Function Calling(也叫 Tool Use 或工具调用)是一种让 LLM 与外部系统交互的机制。

2201_76125393的博客 88

HTML_CSS_JavaScript笔记

以下内容为学习毕向东HTML_CSS_JavaScript视频教程时做的笔记 网页显示版面有些乱   下载原笔记 HTML HTML:(Hype Text Markup Language)超文本标记语言,是最基本的网页语言。代码由标签组成,不区分大小写。 由开始,结束,分头部分(head)和

优快云博客 1870

SAP Group Reporting入门指南(8)--业务操作

关于资产负债表类的匹配,系统预设了SGR01和SGR02两个方法,主要区别在于数据的来源范围,SGR01取自ACDOCA和ACDOCU,如果是0F类型的就会直接显示日记账分录(期间是000的除外,这类凭证是年结结转的,系统不再跨年追溯),如果是其他类型就显示合并分录。这里是我觉得SAP还需要优化的地方。基于ICMR的抵消任务中通常将抵销差异细分为交易差异、货币换算差异和其他差异,这在基于重分类抵消任务是无法实现的,基于重分类抵消只知道一个差异总额,很难从合并抵消凭证看出差异的来源,也没有审计线索可言。

bflyfish的博客 276

js中的null值------一个问题的解决方案

   String errorMessage = (String) request.getAttribute("errorMessage");  %>  " />function alertErrorMessage(){   var em = $("#errorMessage").val();  if(em != "null"){   alert(em);   //alert(em.lengt

msg_java2011的专栏 5745

基于电阻分压 + 电压跟随器的直流母线电压采样电路

摘要:本文介绍了一种基于电阻分压和电压跟随器的直流母线电压采样电路设计。该电路通过R38(240kΩ)和R41(20kΩ)组成的分压网络将高电压(如48V)降至3V,再经GS8331运放构成的电压跟随器进行隔离缓冲,最后通过RC滤波输出给ADC采集。重点分析了关键元件的选型要求:分压电阻需高精度、低温度系数;运放需高输入阻抗、低失调电压;滤波电容需稳定性好。该设计适用于工业电源、新能源BMS、变频器等需要高精度电压采样的应用场景。

qq_37999850的博客 890

YOLO26优化:注意力魔改 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 490

js查看对象类型

alert(typeof());

msg_java2011的专栏 2078

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3750

JS eval()函数

  eval()函数        JavaScript有许多小窍门来使编程更加容易。    其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。    举个小例子:        var the_unevaled_answer = "2 + 3";    var the_evaled_answer = eval("2 + 3"

msg_java2011的专栏 1892

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

js indexOf("") toUpperCase()

indexOf("") var str="Hello world!" document.write(str.indexOf("Hello") + "") document.write(str.indexOf("World") + "") document.writ

msg_java2011的专栏 1243

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript toFixed() parseFloat() 函数

<br />toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。<br />parseFloat() 函数可解析一个字符串,并返回一个浮点数。<script type="text/javascript"> document.write(parseFloat("10")) document.write(parseFloat("10.00")) document.write(parseFloat("10.33")) document.write(parseFloat("3

msg_java2011的专栏 1179

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

document.all的用法

document.all的意思是文档的所有元素,也就是说它包含了当前网页的所有元素。它是以数组的形式保存元素的属性的,所以我们可以用document.all["元素名"].属性名="属性值"来动态改变元素的属性。用这条语句,可以做出许许多多动态网页效果,如:动态变换图片、动态改变文本的背景、动态改变网页的背景、动态改变图片的大小、动态改变文字的大小各颜色等等。你简直可以动态控制所有网页元素。 1.

msg_java2011的专栏 994

overlib的使用

overlib 是一个生成提示框与弹出菜单等页面效果的一段非常优秀的JS代码。它可以简单的通过设置一些参数或命令来改变弹出页面的款式、皮肤与形状,不但如此,它还提供了非常简单的扩展功能。    overLIB 使用非常的简单。  一、在 标签内添加:  二、在标签内添加

msg_java2011的专栏 963

onMouseOver|onMouseOut事件

当鼠标移到链接文本上时,就会触发onMouseOver事件 当鼠标光标离开某窗体元素时,就会触发onMouseOut事件

msg_java2011的专栏 762

onkeydown事件

定义和用法onkeydown 事件会在用户按下一个键盘按键时发生。语法onkeydown="SomeJavaScriptCode"参数描述SomeJavaScriptCode必需。规定该事件发生时执行的 JavaScript。

msg_java2011的专栏 639

history.go(..)

history.go(1)前进 history.go(0)刷新 history.go(-1)后退   开窗时刷新 关闭时刷新

msg_java2011的专栏 581

event.keycode值大全

event.keycode值大全1 keycode 8 = BackSpace BackSpace 2 keycode 9 = Tab Tab 3 keycode 12 = Clear 4 keycode 13 = Enter 5 keycode 16 = Shift_L 6 keycode 17 = Control_L 7 keycode 18 = Alt_L 8

msg_java2011的专栏 580

Window.ShowModalDialog使用

基本介绍:          showModalDialog()                              (IE 4+ 支持)          showModelessDialog()                         (IE 5+ 支持)

msg_java2011的专栏 539

js中的this关键字

在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义确定的。JavaScript也提供了这个this关键字,不过用起来就比经典OO语言中要"混乱"的多了。    下面就来看看,在JavaScript中各种this的使用方法有什么混乱之处?    1、在HTML元素事件属性中in

msg_java2011的专栏 538

js中的日期处理

create_time=$d(create_time_value).value;//var date_create_time=new Date(create_time);var date =new Date(2011,06,23,24,00,00);//new一个js Date对象 对象的日期是:2011/6/23 24:00:00var date_create_times=Dat

msg_java2011的专栏 518

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 140
上一篇: js的with语句使用方法
下一篇: CSS样式02
msg_java2011
博客等级 码龄15年 18粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值