精华内容
下载资源
问答
  • oDragTable.js 拖动表格单元格改变列宽或行高,兼容全浏览器,一句代码调用,原创代码,下载文件中包含JS源代码和示例代码。
  • 本控件为一个DataGridView用户控件,可以实现在DataGridView进行单元格的任意拖动操作。 本程序开发环境: c# vs2008 测试环境:Windows 2003 windows xp
  • 本文实例讲述了JS拖动选择table里的单元格。分享给大家供大家参考,具体如下:用JS 实现类似Excel里面动态选择单元格的例子,从网上得到的例子,先记录在这里,以后参考用。www.jb51.net JS拖动选择table里的单元格....

    本文实例讲述了JS拖动选择table里的单元格。分享给大家供大家参考,具体如下:

    用JS 实现类似Excel里面动态选择单元格的例子,从网上得到的例子,先记录在这里,以后参考用。

    www.jb51.net JS拖动选择table里的单元格

    .table-container {

    width: 100%;

    overflow-y: auto;

    _overflow: auto;

    margin: 0 0 1em;

    background-color:white;

    }

    table {

    border: 0;

    border-collapse: collapse;

    }

    table td, table th {

    border: 1px solid #999;

    padding: .5em 1em;

    }

    /*添加IOS下滚动条 */

    .table-container::-webkit-scrollbar {

    -webkit-appearance: none;

    width: 14px;

    height: 14px;

    }

    .table-container::-webkit-scrollbar-thumb {

    border-radius: 8px;

    border: 3px solid #fff;

    background-color: rgba(0, 0, 0, .3);

    }

    /*对齐*/

    .table-time div {

    text-align: center;

    min-width: 104px;

    }

    .table-time, tr th {

    background-color: #DBE5F1;

    }

    .table-time {

    cursor: default !important;

    }

    .div-right {

    text-align: right;

    }

    .div-unSelect {

    background-color: #D8D8D8;

    }

    .div-Select {

    background-color: #92D050;

    }

    .div-ISelect {

    background-color: #FBD4B4;

    }

    /*图例*/

    ul li {

    list-style: none;

    float: left;

    }

    .table-container td {

    cursor: pointer;

    }

    $(function () {

    initForm();

    var monday = moment().startOf('isoWeek');

    $("#txtMonday").val(monday.format("YYYY-MM-DD"));

    renderWeek(monday);

    })

    function initForm() {

    //初始化行

    var duration = ["9:30~10:15", "10:30~11:15", "11:30~12:15", "13:30~14:15", "14:30~15:15", "15:30~16:15"];

    $("tr td").parent().remove();

    //TODO:从后台获得结果

    for (var i = 0; i < duration.length; i++) {

    var tempRow = "

    "

    + "

    "

    + "

    " + (i + 1) + "
    "

    + "

    " + duration[i] + "
    "

    + "

    "

    + "

    " + "
    已约:1人
    " + ""

    + "

    " + "
    已约:0人
    ?
    " + ""

    + "

    " + "
    已约:1人
    ?
    " + ""

    + "

    " + "
    已约:0人
    ?
    " + ""

    + "

    " + "
    已约:0人
    ?
    "

    + "

    "

    + "

    " + "
    已约:0人
    ?
    "

    + "

    "

    + "

    " + "
    已约:0人
    ?
    "

    + "

    "

    + "

    ";

    $("table tbody").append(tempRow);

    }

    var isMouseDown = false,

    isHighlighted,

    tickets = [];

    //添加点击事件

    $(".select").mousedown(function () {

    isMouseDown = true;

    var currentTD = $(this);

    if (currentTD.hasClass("div-unSelect")) {

    //alert("该时间段已关闭禁止选择");

    return;

    }

    if (currentTD.hasClass("table-time")) {

    //alert("这是时间段禁止选择");

    return;

    }

    var countDiv = $(currentTD.children()[0]);

    var correctDiv = $(currentTD.children()[1]);

    var count = 0;

    if (currentTD.hasClass("div-ISelect")) {

    currentTD.removeClass("div-ISelect");

    count = Number(countDiv.attr("count")) - 1;

    correctDiv.html("?");

    } else {

    currentTD.addClass("div-ISelect");

    count = Number(countDiv.attr("count")) + 1;

    correctDiv.html("√");

    }

    countDiv.attr("count", count);

    countDiv.html("已约:" + countDiv.attr("count") + "人");

    isHighlighted = $(this).hasClass("div-ISelect");

    selected();

    return false; // prevent text selection

    })

    .mouseover(function (e) {

    if (checkHover(e, this)) {

    if (isMouseDown) {

    var currentTD = $(this);

    if (currentTD.hasClass("div-unSelect")) {

    //alert("该时间段已关闭禁止选择");

    return;

    }

    if (currentTD.hasClass("table-time")) {

    //alert("这是时间段禁止选择");

    return;

    }

    var countDiv = $(currentTD.children()[0]);

    var correctDiv = $(currentTD.children()[1]);

    var count = 0;

    if (currentTD.hasClass("div-ISelect")) {

    currentTD.removeClass("div-ISelect");

    count = Number(countDiv.attr("count")) - 1;

    correctDiv.html("?");

    } else {

    currentTD.addClass("div-ISelect");

    count = Number(countDiv.attr("count")) + 1;

    correctDiv.html("√");

    }

    countDiv.attr("count", count);

    countDiv.html("已约:" + countDiv.attr("count") + "人");

    selected();

    }

    }

    });

    $(document)

    .mouseup(function () {

    isMouseDown = false;

    //alert('Deselected');

    });

    }

    function selected() {

    //tickets = $("div-ISelect").map(function () {

    // return $(this).text();

    //});

    //console.log(tickets.get().join());

    }

    //初始化日期

    function renderWeek(monday) {

    $("#txtMonday").val(monday.format("YYYY-MM-DD"));

    获得这一周的所有日期

    var myArray = new Array()

    myArray[0] = monday.format("MM-DD");

    for (var i = 1; i < 7; i++) {

    var temp = moment(myArray[i - 1]).add(1, "days").format("MM-DD");

    myArray[i] = temp;

    }

    $("tr th:gt(0)").each(function (i) {

    var weekString = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];

    $(this).html("" + weekString[i] + " " + myArray[i] + "");

    });

    $("caption").html(monday.format("YYYY-MM-DD") + "~" + monday.add(6, 'days').format("YYYY-MM-DD"));

    }

    //上一周

    function lastWeek() {

    initForm();

    var currentDay = moment($("#txtMonday").val());

    var lastMonday = currentDay.add(-1, 'weeks').startOf('isoWeek');//上周一

    renderWeek(lastMonday);

    }

    //下一周

    function nextWeek() {

    initForm();

    var currentDay = moment($("#txtMonday").val());

    var nextMonday = currentDay.add(1, 'weeks').startOf('isoWeek');//上周一

    renderWeek(nextMonday);

    }

    //全选

    function selectAll() {

    $("tr td").each(function () {

    var currentTD = $(this);

    if (currentTD.hasClass("div-ISelect") || currentTD.hasClass("div-unSelect") || currentTD.hasClass("table-time")) {

    return;

    }

    var countDiv = $(currentTD.children()[0]);

    var correctDiv = $(currentTD.children()[1]);

    var count = 0;

    currentTD.addClass("div-ISelect");

    count = Number(countDiv.attr("count")) + 1;

    correctDiv.html("√");

    countDiv.attr("count", count);

    countDiv.html("已约:" + countDiv.attr("count") + "人");

    });

    }

    //判断是否重复mouseover

    function checkHover(e, target) {

    if (getEvent(e).type == "mouseover") {

    return !contains(target, getEvent(e).relatedTarget || getEvent(e).fromElement) && !((getEvent(e).relatedTarget || getEvent(e).fromElement) === target);

    } else {

    return !contains(target, getEvent(e).relatedTarget || getEvent(e).toElement) && !((getEvent(e).relatedTarget || getEvent(e).toElement) === target);

    }

    } function getEvent(e) {

    return e || window.event;

    }

    function contains(parentNode, childNode) {

    if (parentNode.contains) {

    return parentNode != childNode && parentNode.contains(childNode);

    } else {

    return !!(parentNode.compareDocumentPosition(childNode) & 16);

    }

    }

    我是表格标题
    周一周二周三周四周五周六周日
    • 表示已有教练预约
    • 表示当前已预约,同时以“√”表示
    • □表示可预约
    • 表示未开放

    运行效果:

    0c831b3dac4c9cf6c870b3d198cde9ae.png

    感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

    希望本文所述对大家jQuery程序设计有所帮助。

    展开全文
  • js实现单元格拖拽效果

    千次阅读 2019-01-13 17:49:52
    //选中,文字也会拖动 去除默认行为 } document.onmouseup = function() { var disArr =[]; var newArr =[]; for(var i = 0; i ; i++) { var disx = dragNode.offsetLeft - aItems[i]....
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    	<style type="text/css">
    		* {
    			margin: 0;
    			padding: 0;
    		}
    		
    		#box {
    			position: relative;
    		}
    		
    		#box div {
    			position: absolute;
    			width: 100px;
    			height: 100px;
    			border-radius: 15px;
    			text-align: center;
    			line-height: 100px;
    			font-size: 50px;
    			cursor: pointer;
    		}
    	</style>
    </head>
    
    <body>
    	<div id="box"></div>
    	<script type="text/javascript">
    		//生成结构
    		var oDiv = document.getElementById("box");
    		var ml = mt = 10;
    		//行列结构
    		for(var i = 0; i < 3; i++) { //行
    			for(var j = 0; j < 3; j++) { //列
    				var aDiv = document.createElement("div");
    				oDiv.appendChild(aDiv);
    				aDiv.style.left = j * (aDiv.offsetWidth + ml) + "px";
    				aDiv.style.top = i * (aDiv.offsetHeight + mt) + "px";
    
    				//背景颜色随机
    				aDiv.style.backgroundColor = "rgb(" + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + ")";  //256=(256-0+1)+0;
    			}
    		}
    		//添加文字
    		var str = "ABCDEFGHI";
    		var aItems = oDiv.children;
    		for(var i = 0; i < str.length; i++) {
    			aItems[i].innerText = str[i];
    		}
    		//拖拽
    		for(var i = 0; i < aItems.length; i++) {
    			aItems[i].onmousedown = function(e) {
    				var evt = e || event;
    				var x = evt.offsetX;
    				var y = evt.offsetX;
    				var dragNode = this;
    
    				var cloneNode = dragNode.cloneNode();
    				oDiv.replaceChild(cloneNode, dragNode);
    				cloneNode.style.border = "1px dashed #ccc";
    				oDiv.appendChild(dragNode);
    				dragNode.style.zIndex = 1;
    
    				document.onmousemove = function(e) {
    					var evt = e || event;
    					var _left = evt.clientX - x;
    					var _top = evt.clientY - y;
    
    					dragNode.style.left = _left + "px";
    					dragNode.style.top = _top + "px";
    
    					return false; //选中,文字也会拖动  去除默认行为
    				}
    				document.onmouseup = function() {
    					var disArr =[];
    					var newArr =[];
    					for(var i = 0; i < aItems.length-1; i++) {
    						var disx = dragNode.offsetLeft - aItems[i].offsetLeft;
    						var disy = dragNode.offsetTop - aItems[i].offsetTop;
    						var dis= Math.sqrt(Math.pow(disx, 2) + Math.pow(disy, 2));
    			 			disArr.push(dis);
    						newArr.push(dis);
    					}
    
    					disArr.sort(function(a, b) {
    						return a - b;
    					});
    					var minval = disArr[0];
    					
    					var minIndex = newArr.indexOf(minval);
    
    					dragNode.style.left = aItems[minIndex].style.left;
    					dragNode.style.top = aItems[minIndex].style.top;
    					aItems[minIndex].style.left = cloneNode.style.left;
    					aItems[minIndex].style.top = cloneNode.style.top;
    					
    					oDiv.removeChild(cloneNode);
    					
    					document.onmousemove = null;
    					document.onmouseup = null;
    
    				}
    				return false;
    			}
    		}
    	</script>
    </body>
    
    展开全文
  • vue页面的table标签进行单元格拖拽

    千次阅读 2019-05-08 13:29:43
    //获取整个拖拽的td单元格数据 dataindex是我自己加上的属性,代表数据在整个list的位置 //下面方法获取单元格移动到了那个位置 this.endIndex = event.target.getAttribute("dataindex"); }, //拖拽结束,进行...

    先上代码

    <td :dataIndex="index" draggable="true"  @dragend="drop($event)" @dragover="allowDrop($event)" :style="subInfo.flg ? 'border: solid 1px;width: 150px;text-align: center;height: 75px;background: #f43838;' : 'border: solid 1px;width: 150px;text-align: center;height: 75px;'"
                       v-if="subInfo.view && week.label === subInfo.week" v-for="(subInfo,index) in result">
                    <span :dataIndex="index"  v-if="subInfo.curriculumList !== undefined " v-text="subInfo.curriculumList.subjectName + '/' + subInfo.curriculumList.teacherName "></span>
    </td>
    
    //拖拽移动中,获取移动到那个位置
          allowDrop(event) {
    
    //获取整个拖拽的td单元格数据  dataindex是我自己加上的属性,代表数据在整个list的位置
    
    //下面方法获取单元格移动到了那个位置
            this.endIndex = event.target.getAttribute("dataindex");
    
          },
    //拖拽结束,进行数据处理使用
    
          drop(event) {
    
    //下面方法获取拖拽数据的list位置
    this.beginIndex = event.target.getAttribute("dataindex");
    
    
    }

     

    其中主要使用  

    dataIndex="index" //因为里面还有span标签,所以给span也要加上,不然获取数据时候可能获取不到

    draggable="true"   //开启拖拽

    @dragend="drop($event)"  //拖拽结束

    @dragover="allowDrop($event)" // 拖拽移动

    @dragStart="drag($event)" //拖拽开始;我没用到

     

    小弟vue没用多久,如有问题,还请大家指出,谢谢

    展开全文
  • 返回目录 以下知识源码位置: [Git: ... ... ...本节概要:单元格区域鼠标左键拖动单元格,选择点亮区域内的单元格,效果如下: 0.基础知识: ...

    返回目录

     

     

    以下知识源码位置: [Git:  https://gitee.com/zhouweng/mini_sheet  version=530cdfd4873cbcdcf59e5884e9a67573a799c0d9]

    源代码回滚版本,参考这里[ https://blog.csdn.net/u010593516/article/details/113767587 ]

     

    本节概要:单元格区域鼠标左键拖动单元格,选择点亮区域内的单元格,效果如下:

     

     

     

    0.基础知识:

      window.requestAnimationFrame() /  window.cancelAnimationFrame() 

      以上函数参考: https://www.w3cschool.cn/fetch_api/fetch_api-f2j72yau.html

     

    1.修改文件:

    1.1.store/index.js: 增加两个参数

       jfautoscrollTimeout : 向window.cancelAnimationFrame()传递此值以取消刷新回调请求

       luckysheet_select_status : 判断用户是否鼠标点选了某个单元格

    1.2.controllers/select.js: 通过从 handler.js传递过来的Store.luckysheet_select_save 把选定的单元格样式点亮

     

    1.3.controllers/handler.js: 在HTML的document上增加mousemove和mouseup

      Line34-109:

        mousemove: 这里用到了今天的关键知识点,HTML5的屏幕绘制的 window.requestAnimationFrame()和window.cancelAnimationFrame() 

                           在用户点击鼠标左键移动的时候,反复调用 mouseRender() 方法,将相对应的单元格高亮显示

      Line28-32:

        mouseup: 把 Store.luckysheet_select_status 设置为false,这样鼠标拖动的时候,样式就不会变化了 

      Line 134

        在 鼠标左键按下的时候,把 Store.luckysheet_select_status 设置为 true,这样 mousemove就可以进入刷新屏幕模式。

     

    今天的内容到此为止。

     

    展开全文
  • 表格拖动插件 封装的表格table,想要拖动每一行,用Sortable import Sortable from 'sortablejs'; // 下方此处得放在挂载后 Sortable.create(ele, { disabled: false, ghostClass: 'sortable-ghost', // 样式 ...
  • 主要介绍了jQuery实现拖动调整表格单元格大小的代码实例,本文直接给出实现代码,需要的朋友可以参考下
  • uni-app使用vantUI的van-swipe-cell滑动单元格 <checkbox-group @change="checkboxChange"> <view v-for="(item,index) in productList" :key="index"> <!-- 我的项目需求只需要一个左滑右边显示...
  • jsFiddle更新:http://jsfiddle.net/qvxBb/2/禁用正常选择,如下所示:.myselect {-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: moz-none;...
  • 上下屏幕分两屏,中间横向是可以拖动 多个页面调用互不影响滑动流畅 效果如下 实现过程 首先下载directives 然后在main中引入js文件 directives可以再 在 miss55776 公众号 发送 【vue拖拽】即可获取 ...
  • 绝对引用 可以选中B1 用F4快捷键自己就给加绝对引用符号了 然后回车 复制或者拖拽 转载于:https://www.cnblogs.com/baxianhua/p/9995530.html
  • 给定以下几组数,拖动单元格的填充柄不能自动得到序列是___D___。A、 一月、二月 B、甲、乙、丙 C、 1、5、9、13 D、 A 、B 、C.(提示:应该选D。C是可以实现的,例如在连续的两个单元格中输入1和5,然后同时选取...
  • qt tableview拉伸单元格

    2018-02-07 10:21:32
    qt tableview拉伸单元格 源码编译通过
  • 1、给表格 UITableView 添加单元格移动功能(1)给表格添加长按功能,长按后表格进入编辑状态(2)在编辑状态下,可以看到单元格后面出现拖动按钮(3)鼠标按住拖动按钮,可以拖动单元格到任意位置(4)拖动完毕后,还会触发...
  • 按住Shift键,用鼠标左键拖拽单元格右下角的填充柄,到等差数列 最后一个数值所在单元格 新的《计算机软件保护条件》自2002年1月1日起开始执行,软件著作权自 软件之日起产生。 A ?开发完成B ?注册登记C ?公开发表D ...
  • A 、用鼠标左键拖曳单元格右下角的填充柄 B 、按住Alt 键,用鼠标左键拖曳单元格右下角的填充柄 C 、按住Shift 键,用鼠标左键拖曳单元格右下角的填充柄 D 、按住Ctrl 键,用鼠标左键拖曳单元格右下角的填充柄 17....
  • 需要实现dataGridView中的 CellMouseMove、DragDrop、CellMouseDown、SelectionChanged、DragEnter 5个事件。 代码如下: ... //下方为鼠标拖动表格事件 private void dataGridView1_CellMouseMove(ob
  • 首先我们找到ueditor——>ueditor.all.js的文件再找到UE.commands['inserttable']的这个方法,看以下代码对其进行修改:UE.commands['inserttable'] = {queryCommandState: function () {return ...
  • 小伙伴你们你们平时在使用Excel的过程中,遇到过需要给Excel进行合并单元格的情况吗?那么小伙伴你们知道该如何各设置Excel设置合并单元格的操作方法吗?要是不知道话,那么就让小编来将合并单元格的操作方法来分享...
  • 该楼层疑似违规已被系统折叠隐藏...A数值型B字符型C日期时间型D以上都是3统计满足条件的单元格数目的函数时( )。AIFBCOUNTIFCSUMDTODAY4表示与区域B2:C3是相同区域的选项是( B )。AB2,B3,C2BA1:C3 B2:D4CA1:C3,B...
  • WPF Datagrid 合并单元格

    2018-01-16 23:41:08
    WPF Datagrid 合并单元格 复杂表头 支持位置拖动、 列宽度拖动,组内列会按比例自动调整 ;
  • 在WPS表格中,我们经常会用到合并单元格。在很多情况下,使用合并单元格会使表格更加醒目、条理。但你遇到过提取合并单元格的数据的问题吗?如图1所示,左侧为某位老师辛辛苦苦建立的学生成绩汇总表,郁闷的是现在...
  • excel怎么合并单元格方法今天有网友在QQ上问了笔者一个excel合并单元格的问题,找不到怎么合并了。下面针对这个问题,笔者今天就把“excel怎么合并单元格”的方法和步骤详细的说下,希望对那些刚用excel软件还不太...
  • 单元格的引用主讲人:李军《计算机应用 》单元格的引用在制作前要分析表格及插入函数与公式的要点,然后再进行相应的操作。本案例的制作要点包括插入列、插入公式、复制公式、插入函数、复制函数等操作。单元格的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,270
精华内容 6,508
关键字:

怎么拖动单元格