div边框拖拽改变宽度

css盒子如下图:

注意:

 刚开始测试效果不是很好,原因行内块元素之间有缝隙

消除行内块元素左右之间的间隙:给父元素设置为弹性布局flex

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box {
            width: 90%;
            height: 90vh;
            border: solid 1px black;
            display: flex; /*消除行内块元素左右之间的间隙:给父元素设置为弹性布局*/
        }

        .left {
            width: 49%;
            height: 100%;
            background: lightgrey;
            float: left;
        }

        .resize {
            width: 2%;
            height: 100%;
            background-color: orange;
            cursor: w-resize;
            float: left;
        }

        .right {
            width: 49%;
            height: 100%;
            background: lightgrey;
            float: left;
        }
    </style>
</head>
<body>
<div>
    <div class="box" id="box">
        <div class="left" id="left">左边</div>
        <div class="resize" id="resize"></div>
        <div class="right" id="right">右边</div>
    </div>
</div>

<script>
    window.onload = function () {
        let box = document.getElementById('box');
        let left = document.getElementById('left');
        let resize = document.getElementById('resize');
        let right = document.getElementById('right');

        let w = box.offsetWidth;//获取 div 元素的宽度,包含内边距(padding)和边框(border)
        let rw = resize.offsetWidth;//获取 div 元素的宽度,包含内边距(padding)和边框(border)

        //按下鼠标事件
        resize.onmousedown = function (e) {
            let startX = e.clientX;//鼠标指针的水平坐标
            resize.left = resize.offsetLeft;//分割线节点元素的左边界的偏移值
            // 鼠标拖动事件
            document.onmousemove = function (e) {
                let change = e.clientX - startX;//鼠标移动的偏移值
                let moveLen = resize.left + change;//鼠标移动后,分割线节点元素的左边界的偏移值
                resize.style.left = moveLen;
                left.style.width = moveLen + 'px';
                right.style.width = (w - moveLen - rw) + 'px';// 容器宽度 - 左边区域的宽度 - 分割线的宽度 = 右边区域的宽度
            }
            // 鼠标松开事件
            document.onmouseup = function (evt) {
                evt.stopPropagation();
                document.onmousemove = null;
                document.onmouseup = null;
                //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
                resize.releaseCapture && resize.releaseCapture();
            }
            //该函数在属于当前线程的指定窗口里设置鼠标捕获
            resize.setCapture && resize.setCapture();
            //对于上面出现的setCapture()和releaseCapture()的用法。必须成对出现。
        }
    }
</script>
</body>
</html>

jquey方式

注意:鼠标按下才开始记录坐标值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
    <style>
        body {
            padding: 20px;
        }

        th, td {
            width: 100px;
        }

        .drag-1 {
            display: inline-block;
            border-left: 3px solid red;
            height: 25px;
            position: fixed;
            left: 130px;
            cursor: w-resize;
        }

        .drag-2 {
            display: inline-block;
            border-left: 3px solid red;
            height: 25px;
            position: absolute;
            left: 233px;
            cursor: w-resize;
        }
    </style>
</head>
<body>
<div>
    <div class="drag-1"></div>
    <div class="drag-2"></div>
    <table border="1" style="border-collapse: collapse;">
        <thead>
        <tr>
            <th class="col-1">表头1</th>
            <th class="col-2">表头2</th>
            <th class="col-3">表头3</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td class="col-1">数据1</td>
            <td class="col-2">数据2</td>
            <td class="col-3">数据3</td>
        </tr>
        <tr>
            <td class="col-1">数据1</td>
            <td class="col-2">数据2</td>
            <td class="col-3">数据3</td>
        </tr>
        </tbody>
    </table>
</div>

<script>
    $(function () {
        drag1();
        drag2();
    });

    function drag1() {
        let resize = document.getElementsByClassName('drag-1')[0];
        //按下鼠标事件
        resize.onmousedown = function (e) {
            let startX = e.clientX;//鼠标指针的水平坐标
            let drag_1 = $('.drag-1').offset().left;
            let drag_2 = $('.drag-2').offset().left;
            let col_1 = $('.col-1').width();
            // 鼠标拖动事件
            document.onmousemove = function (e) {
                let change = e.clientX - startX;//鼠标移动的偏移值
                $('.drag-1').offset({'left': drag_1 + change})
                $('.drag-2').offset({'left': drag_2 + change})
                $('.col-1').width(col_1 + change);
            }
            // 鼠标松开事件
            document.onmouseup = function (evt) {
                evt.stopPropagation();
                document.onmousemove = null;
                document.onmouseup = null;
                //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
                resize.releaseCapture && resize.releaseCapture();
            }
            //该函数在属于当前线程的指定窗口里设置鼠标捕获
            resize.setCapture && resize.setCapture();
            //对于上面出现的setCapture()和releaseCapture()的用法。必须成对出现。
        }
    }

    function drag2() {
        let resize = document.getElementsByClassName('drag-2')[0];
        //按下鼠标事件
        resize.onmousedown = function (e) {
            let startX = e.clientX;//鼠标指针的水平坐标
            let drag_2 = $('.drag-2').offset().left;
            let col_2 = $('.col-2').width();
            // 鼠标拖动事件
            document.onmousemove = function (e) {
                let change = e.clientX - startX;//鼠标移动的偏移值
                $('.drag-2').offset({'left': drag_2 + change})
                $('.col-2').width(col_2 + change);
            }
            // 鼠标松开事件
            document.onmouseup = function (evt) {
                evt.stopPropagation();
                document.onmousemove = null;
                document.onmouseup = null;
                //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
                resize.releaseCapture && resize.releaseCapture();
            }
            //该函数在属于当前线程的指定窗口里设置鼠标捕获
            resize.setCapture && resize.setCapture();
            //对于上面出现的setCapture()和releaseCapture()的用法。必须成对出现。
        }
    }

</script>
</body>
</html>

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Highcharts中文帮助文档(带例子) Chart 图标区选项 Chart图表区选项用于设置图表区相关属性。 参数 描述 默认值 backgroundColor 设置图表区背景色 #FFFFFF borderWidth 设置图表边框宽度 0 borderRadius 设置图表边框圆角角度 5 renderTo 图表放置的容器,一般在html中放置一个DIV,获取DIV的id属性值 null defaultSeriesType 默认图表类型line, spline, area, areaspline, column, bar, pie , scatter 0 width 图表宽度,默认根据图表容器自适应宽度 null height 图表高度,默认根据图表容器自适应高度 null margin 设置图表与其他元素之间的间距,数组,如[0,0,0,0] [null] plotBackgroundColor 主图表区背景色,即X轴与Y轴围成的区域的背景色 null plotBorderColor 主图表区边框的颜色,即X轴与Y轴围成的区域的边框颜色 null plotBorderWidth 主图表区边框宽度 0 shadow 是否设置阴影,需要设置背景色backgroundColor。 false reflow 是否自使用图表区域高度和宽度,如果没有设置width和height时,会自适应大小。 true zoomType 拖动鼠标进行缩放,沿x轴或y轴进行缩放,可以设置为:'x','y','xy' '' events 事件回调,支持addSeries方法,click方法,load方法,selection方法等的回调函数。 Color 颜色选项 Color颜色选项用于设置图表的颜色方案。 参数 描述 默认值 color 用于展示图表,折线/柱状/饼状等图的颜色,数组形式。 array Highcharts已经默认提供了多种颜色方案,当要显示的图形多于颜色种类时,多出的图形会自动从第一种颜色方案开始选取。自定义颜色方案的方法:
用法: $(“#box”).easydrag();//给指定的标签绑定拖动效果,也可以是Class $(“#box”).setHandler(‘handler’);//指定触发拖动的元素,download best apps for iphone 5handler是该元素的idhttp://www.newipadipa.com/ ,后面我们需要修改它 首先这个插件真的很好用(废话),短短2行代码就能让页面中的div动起来。但是如果要拖动很多div的时候 ,我们还是要稍微做出修改才能正常使用。 首先我的弹窗div在弹出的时候是默认在页面正中的,但是要使用这个插件被拖动div就要使 用”position:absolute”的属性定位,这让我们的居中非常困难。解决思路:在触发弹窗之前用js获取当前屏 幕的分辨率然后将div居中。 js代码: { var div_width=Number(jQuery(‘#box’).css(‘width’)); var sc_width=(Number(window.screen.width)/2-(div_width/2)); //div距离浏览器左边框的距离为屏幕宽 度的一半-div宽度的一半 jQuery(‘#box).css(‘left’,sc_width); } 好了,初始化之后就是拖动了,如果需要拖动div不多的话这样就可以了。但是我写的页面要拖动div较多 ,而且这个插件只能用id号给元素绑定触发拖动的属性,如果一个id一个id的绑定事件的话会造成代码冗余 。所以我们要修改一下源文件jquery.easydrag.handler.beta2.js:找到 function(handlerId) 这个函数, 将里面的$(“#”+handlerId)都改成$(“.”+handlerId)就可以了。好吧,这样就可以了,下面是实例,高手们请 无视好了。。。
精通CSS+DIV网页样式与布局 视频教材主要内容 迅雷下载地址: 目录 第1部分 CSS基础知识篇 第1章 CSS的初步体验 1.1 CSS的概念 1.1.1 标记的概念 1.1.2 传统HTML的缺点 1.1.3 CSS的引入 1.1.4 如何编辑CSS 1.1.5 浏览器与CSS 1.2 使用CSS控制页面 1.2.1 行内样式 1.2.2 内嵌式 1.2.3 链接式 1.2.4 导入样式 1.2.5 各种方式的优先级问题 1.3 体验CSS 1.3.1 从零开始 1.3.2 加入CSS控制 1.3.3 控制图片 1.3.4 CSS的注释 第2章 CSS的基本语法 2.1 CSS选择器 2.1.1 标记选择器 2.1.2 类别选择器 2.1.3 ID选择器 2.2 选择器声明 2.2.1 集体声明 2.2.2 选择器的嵌套 2.3 CSS的继承 2.3.1 父子关系 2.3.2 CSS继承的运用 第3章 用CSS设置丰富的文字效果 3.1 CSS文字样式 3.1.1 字体 3.1.2 文字大小 3.1.3 文字颜色 3.1.4 文字粗细 3.1.5 斜体 3.1.6 文字的下划线、顶划线和删除线 3.1.7 英文字母大小写 3.2 文字实例一:模拟Google公司Logo 3.3 文字实例二:制作页面的五彩标题 3.4 CSS段落文字 3.4.1 段落的水平对齐方式 3.4.2 段落的垂直对齐方式 3.4.3 行间距和字间距 3.4.4 首字放大 3.5 段落实例:百度搜索 第4章 用CSS设置图片效果 4.1 图片样式 4.1.1 图片边框 4.1.2 图片缩放 4.2 图片的对齐 4.2.1 横向对齐方式 4.2.2 纵向对齐方式 4.3 图文混排 4.3.1 文字环绕 4.3.2 设置图片与文字间距 4.4 图文实例:八仙过海 第5章 用CSS设置网页中的背景 5.1 背景颜色 5.1.1 页面背景色 5.1.2 用背景色给页面分块 5.2 背景图片 5.2.1 页面的背景图 5.2.2 背景图的重复 5.2.3 背景图片的位置 5.2.4 固定背景图片 5.2.5 添加多个背景图片 5.2.6 背景样式综合设置 5.3 背景综合一:我的个人主页 5.4 背景综合二:古词《念奴娇·赤壁怀古》 第6章 用CSS设置表格与表单的样式 6.1 控制表格 6.1.1 表格中的标记 6.1.2 表格的颜色 6.1.3 表格的边框 6.2 表格实例一:隔行变色 6.3 表格实例二:鼠标经过时变色的表格 6.4 表格实例三:日历 6.5 CSS与表单 6.5.1 表单中的元素 6.5.2 像文字一样的按钮 6.5.3 七彩的下拉菜单 6.6 综合实例一:直接输入的Excel表格 6.7 综合实例二:模仿新浪网民调查问卷 第7章 用CSS设置页面和浏览器的元素 7.1 丰富的超链接特效 7.1.1 动态超链接 7.1.2 按钮式超链接 7.1.3 浮雕式超链接 7.2 鼠标特效 7.2.1 CSS控制鼠标箭头 7.2.2 鼠标变幻的超链接 7.3 页面滚动条 第8章 用CSS制作实用的菜单 8.1 项目列表 8.1.1 列表的符号 8.1.2 图片符号 8.2 无需表格的菜单 8.3 菜单的横竖转换 8.4 菜单实例一:百度导航条 8.5 菜单实例二:流行的Tab菜单 第9章 CSS滤镜的应用 9.1 滤镜概述 9.2 通道(Alpha) 9.3 模糊(Blur) 9.4 运动模糊(Motion Blur) 9.5 透明色(Chroma) 9.6 下落的阴影(Dropshadow) 9.7 翻转变换(Flip) 9.8 光晕(Glow) 9.9 灰度(Gray) 9.10 反色(Invert) 9.11 遮罩(Mask) 9.12 阴影(Shadow) 9.13 X射线(X-ray) 9.14 浮雕纹理(Emboss和Engrave) 9.15 波浪(Wave) 第2部分 CSS+DIV美化和布局篇 第10章 理解CSS定位与div布局 10.1 div标记与span标记 10.1.1 概述 10.1.2 div与span的区别 10.2 盒子模型 10.2.1 盒子模型的概念 10.2.2 border 10.2.3 padding 10.2.4 margin 10.3 元素的定位 10.3.1 float定位 10.3.2 position定位 10.3.3 z-index空间位置 10.4 定位实例一:轻轻松松给图片签名 10.5 定位实例二:文字阴影效果 第11章 CSS+div布局方法剖析 11.1 CSS排版观念 11.1.1 将页面用div分块 11.1.2 设计各块的位置 11.1.3 用CSS定位 11.2 固定宽度且居中的版式 11.2.1 方法一 11.2.2 方法二 11.3 左中右版式 11.4 块的背景色问题 11.5 排版实例:电子相册 11.5.1 搭建框架 11.5.2 幻灯片模式 11.5.3 详细信息模式 11.6 div排版与传统的表格方式排版的分析 第12章 CSS+div美化与布局实战 12.1 框架搭建 12.2 实例一:蓝色经典 12.3 实例二:清明上河图 12.4 实例三:交河故城 12.5 自动选择CSS样式 第3部分 CSS混合应用技术篇 第13章 CSS与JavaScript的综合应用 13.1 JavaScript概述 13.1.1 JavaScript简介 13.1.2 JavaScript的特点 13.1.3 JavaScript与CSS 13.2 JavaScript语法基础 13.2.1 数据类型和变量 13.2.2 表达式及运算符 13.2.3 基本语句 13.3 实例一:输入时高亮显示的Excel表格 13.4 实例二:由远到近的文字 13.5 实例三:跑马灯特效 13.6 实例四:图片淡入淡出 13.7 实例五:CSS实现PPT幻灯片 13.8 实例六:灯光效果 13.9 实例七:舞台灯光 13.10 实例八:探照灯 13.11 实例九:鼠标文字跟随 第14章 CSS与XML的综合运用 14.1 XML基础 14.1.1 XML的特点 14.1.2 XML与HTML 14.1.3 XML基本语法 14.2 XML链接CSS文件 14.3 XML文字阴影效果 14.4 XML古诗字画 14.5 XML实现隔行变色的表格 第15章 CSS与Ajax的综合应用 15.1 Ajax概述 15.1.1 什么是Ajax 15.1.2 Ajax的关键元素 15.1.3 CSS的重要地位 15.2 Ajax入门 15.2.1 创建XMLHttpRequest对象 15.2.2 发出Ajax请求 15.2.3 处理服务器响应 15.2.4 加入CSS样式 15.3 Ajax实例:能够自由拖动布局区域的网页 第4部分 综合案例篇 第16章 我的博客 16.1 分析构架 16.1.1 设计分析 16.1.2 排版构架 16.2 模块拆分 16.2.1 导航与Banner 16.2.2 左侧列表 16.2.3 内容部分 16.2.4 footer脚注 16.3 整体调整 第17章 小型工作室网站 17.1 分析构架 17.1.1 设计分析 17.1.2 首页排版 17.1.3 内容页构架 17.2 模块拆分 17.2.1 搭建首页 17.2.2 首页图片 17.2.3 内容页面 17.2.4 footer脚注 17.3 整体调整 第18章 企业网站 18.1 分析构架 18.1.1 设计分析 18.1.2 排版构架 18.2 模块拆分 18.2.1 Logo与顶端链接 18.2.2 左侧导航与搜索 18.2.3 主体内容 18.2.4 内容Banner 18.2.5 新闻快递 18.2.6 公司咨询 18.2.7 英文刊物 18.3 整体调整 第19章 网上购物网站 19.1 分析构架 19.1.1 设计分析 19.1.2 排版构架 19.2 模块分析 19.2.1 Banner图片 19.2.2 导航菜单 19.2.3 鲜花导购 19.2.4 主体内容 19.3 整体调整 第20章 旅游网站 20.1 分析构架 20.1.1 设计分析 20.1.2 排版构架 20.2 模块拆分 20.2.1 Banner图片与导航菜单 20.2.2 左侧分栏 20.2.3 中部主体 ……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值