实现div可以调整高度(div实现resize)
实现div可以调整高度(div实现resize)
一、div 实现resize(类似textarea)
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>div实现textarea效果</title>
<style>
#textarea {
height: 200px;
width: 300px;
padding: 4px;
border: 1px solid #888;
resize: vertical;
overflow: auto;
} #textarea:empty:before {
content: attr(placeholder);
color: #bbb;
}
</style>
</head>
<body>
<div id="textarea" contenteditable="true" placeholder="请输入内容..."></div>
</body>
</html>
二、监听div的resize事件
<!DOCTYPE html>
<html>
<head>
<title>div监听resize事件</title>
<style>
.container {
position: relative;
width: 500px;
height: 300px;
background-color: black;
padding: 4px;
resize: vertical;
overflow: auto;
}
.size-watch {
width: 100%;
height: 100%;
position: absolute;
visibility:hidden;
margin: 0;
padding: 0;
border: 0;
} </style> </head>
<body >
<div class="container" id="mapDiv" >
hello
</div>
<script>
function riseze (el, cb) {
// 创建iframe标签,设置样式并插入到被监听元素中
var iframe = document.createElement('iframe');
iframe.setAttribute('class', 'size-watch');
el.appendChild(iframe); // 记录元素当前宽高
var oldWidth = el.offsetWidth;
var oldHeight = el.offsetHeight; // iframe 大小变化时的回调函数
function sizeChange () {
// 记录元素变化后的宽高
var width = el.offsetWidth;
var height = el.offsetHeight;
// 不一致时触发回调函数 cb,并更新元素当前宽高
if (width !== oldWidth || height !== oldHeight) {
cb({width: width, height: height}, {width: oldWidth, height: oldHeight});
oldWidth = width;
oldHeight = height;
}
} // 设置定时器用于节流
var timer = 0;
// 将 sizeChange 函数挂载到 iframe 的resize回调中
iframe.contentWindow.onresize = function () {
clearTimeout(timer);
timer = setTimeout(sizeChange, 20);
};
}
//var el = document.getElementById("mapDiv");
var el = document.querySelector('.container');
riseze(el, (val, oldVal) => {
console.log(`size changed!new: ${JSON.stringify(val)}, old: ${JSON.stringify(oldVal)}`);
});
</script>
</body>
</html>
参考网站:
1、https://blog.csdn.net/liya_nan/article/details/81742370
2、https://segmentfault.com/a/1190000016550156
实现div可以调整高度(div实现resize)的更多相关文章
- jquery动态改变div宽度和高度
效果体验:http://keleyi.com/keleyi/phtml/jquery/23.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD X ...
- div中iframe高度自适应问题
网页分为上.中.下三部分,上.下高度固定中间高度自适应:中间分为左.右两部分,左边宽度固定,右边宽度自适应.现在右侧div是宽度和高度都是自适应,右侧div里有个IFrame,想让IFrame自适应外 ...
- 子div用了float浮动之后,如何撑开父元素,让父元素div自动适应高度的问题
方法一: html: <div id="all1"> <div id="left1">1</div> <div id= ...
- div+css总结—FF下div不设置高度背景颜色或外边框不能正常显示的解决方法(借鉴)
原地址:http://blog.sina.com.cn/s/blog_60b35e830100qwr2.html 在使用div+css进行网页布局时,如果外部div有背景颜色或者边框,而不设置其高度, ...
- 前端页面div float 后高度 height 自适应的问题
最近在画项目页面的时候遇到了一个左侧div一旦加上float:left 属性后,设置其高度height:100% 不起作用,后来网上查了半天也没有找到很好的解决方案,只在csdn里发现了这个马上记录下 ...
- DIV+CSS常见问题:DIV如何设置一个像素高度?
CSS如何控制DIV实现1像素高度呢?问题看起来很简单,但万恶的IE6会让你很麻烦,不过解决办法很多,本文将介绍最简单的一种:DIV{height:1px;line-height:1px;font-s ...
- Chrome&FF&Opera&下DIV不设置高度显示背景颜色和边框的办法
今天在排版的时候,外层的div不写高度的话背景颜色和边框没法办法显示,但是在IE下面就可以,这个有三个解决办法. 第一: 直接给最外层的div设置高度(不推荐). 第二: 在内部每个div后添加一个清 ...
- div有最小高度且自适应高度
DIV最小高度且自适应高度 在IE6中,如果子容器的高度超过父容器的时候,父容器会被子容器撑开,所以我们可以直接设置一个height的高度值即可.但是在IE7和firefox就不行了,它不会自动撑 ...
- div没有设置高度时背景颜色不显示(浮动)
在使用div+css进行网页布局时,如果外部div有背景颜色或者边框,而不设置其高度,在IE浏览器下显示正常.但是使用Firefox/opera浏览时却出现最外层Div的背景颜色和边框不起作用的问题. ...
随机推荐
- [Ubuntu]18安装navicat 破解版&官方版本
破解版本: 一.下载破解版的navicat 链接:https://pan.baidu.com/s/1ulptSderoG0EbEQpO3Adww提取码:8oc3 二.解压到桌面 在下载压缩文件之后, ...
- python之scrapy模块scrapy-redis使用
1.redis的使用,自己可以多学习下,个人也是在学习 https://www.cnblogs.com/ywjfx/p/10262662.html官网可以自己搜索下. 2.下载安装scrapy-red ...
- 异步IO和协程
1-1.并行:真的多任务执行(CPU核数>=任务数):即在某个时刻点上,有多个程序同时运行在多个CPU上 1-2.并发:假的多任务执行(CPU核数<任务数):即一段时间内,有多个程序在同一 ...
- android stdio 首次安装配置
http://www.cnblogs.com/smyhvae/p/4390905.html 不启用 加快模拟器调试 这个玩意儿打开老是报什么 android 1.0的问题 导致编译不起来 直接关了 S ...
- iOS创建带删除线和价钱符号的Label
效果显示如下: 只需要子类化Label,重写DrawRect()方法即可: #import "MyLabel.h" @implementation MyLabel - (insta ...
- lumen添加中间件实现cookie自动加密解密
在项目根路径下执行命令:安装illuminate/cookie包 1.composer require illuminate/cookie 2.找到同版本的laravel下的\vendor\larav ...
- Git学习教程三之分支管理
实战流程: 1:代码库克隆一份至本地 2:新分支操作 2.1 在需要的文件中创建并指向新的分支方便写代码 git checkout -b <name> 2 ...
- vue data中的对象的属性如何使用watch监听
在写项目的时候遇到了一个问题,就是需要动态监听data中一个对象的属性的变化.遇到了许多坑,在此过程中也发现了两种解决方案. 一.通过deep属性实现 data() { return { parent ...
- 鸟哥私房菜基础篇:磁碟配额(Quota)与进阶文件系统管理习题
猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0420quota.php 1-在前一章的第一个大量新增帐号范例中, 如果我想要让每个用户均具有 soft ...
- 如何在picture上显示透明Label