前言
如标题所示,本章分三部分:
- 介绍 CSS
resize
属性; - 可调整右下角
resize
滑块样式,如隐藏; - 监听高宽调整事件;
CSS resize 属性
出现在某些元素底角的可拖动调整大小的滑块
Html
<div id="test" class="test"></div>
复制
CSS
.test { width: 150px; height: 160px; background: #ccc; resize: both; overflow: auto; }
复制
- resize 属性有4种类型:
none
无法调整(默认);both
可调整高度和宽度;horizontal
仅调整宽度;vertical
仅能调整高度;
- 代码第
6
行,必须 设置overflow
属性,否则resize
属性无效。可以是auto/hidden/scroll
; - 不是所有元素都可调整,如:
img
、table
等是无法使用resize
属性;
效果图
调整右下角滑块样式
使用伪元素 -webkit-resizer
,可在此查看浏览器兼容情况
隐藏
仅需使用 background
属性的透明度设置 transparent
。
.test::-webkit-resizer { background: transparent; }
复制
改变颜色
如下图可看到滑块的大小只有红色区域的高宽。目前没有找到可以改变高宽的方式,如有谁知道,可告知!感谢!
.test::-webkit-resizer { background: red; }
复制
监听高宽调整事件
window.onresize
只能侦听窗口的变化,而 div
等元素的监听是没有直接的方法。
可使用插件之元素调整监测器:element-resize-detector
安装
npm i element-resize-detector
复制
使用
// 被监听的元素 const element = document.getElementById("test"); // 引入 const elementResizeDetector = require("element-resize-detector"); // 初始化 const detector = elementResizeDetector(); // 监听 detector.listenTo(element, (el)=>{ const width = el.offsetWidth; const height = el.offsetHeight; console.log(`宽${width},高:${height},元素对象:${el}`); });
复制