html - 达到视口边框时如何禁用文本环绕?
问题描述
考虑下面的代码片段(您可以在文本外单击并拖动) - 到达视口边界时文本会换行。
let isCaptureActive = false;
let offset = {
x: 0,
y: 0
}
const fooDOM = document.querySelector('#foo');
const bodyDOM = document.body;
window.addEventListener('mousemove', e => {
if(!isCaptureActive) return;
offset.x += e.movementX;
offset.y += e.movementY;
fooDOM.style.left = offset.x + 'px';
fooDOM.style.top = offset.y + 'px';
});
window.addEventListener('mousedown', e => {
if(e.target !== fooDOM) isCaptureActive = true;
});
window.addEventListener('mouseup', e => {
isCaptureActive = false;
});
#foo {
position: absolute;
background-color: wheat;
min-width: 250px;
max-width: 500px;
}
<div id="foo">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras porta nisl justo, id rutrum lorem cursus in. Nullam dictum lobortis lorem, vitae facilisis lectus. Donec ut eros lacinia, suscipit nisl ut, convallis diam.
</div>
如何让文本忽略视口边框,就像它甚至不存在一样?
编辑:我需要能够设置元素min-width
和max-width
属性。
解决方案
let isCaptureActive = false;
let offset = {
x: 0,
y: 0
}
const fooDOM = document.querySelector('#foo');
const bodyDOM = document.body;
window.addEventListener('mousemove', e => {
if(!isCaptureActive) return;
offset.x += e.movementX;
offset.y += e.movementY;
fooDOM.style.left = offset.x + 'px';
fooDOM.style.top = offset.y + 'px';
});
window.addEventListener('mousedown', e => {
if(e.target !== fooDOM) isCaptureActive = true;
});
window.addEventListener('mouseup', e => {
isCaptureActive = false;
});
#foo {
position: absolute;
background-color: wheat;
min-width: 250px;
max-width: 500px;
}
#pg {
width: 100vw;
}
<div id="foo">
<p id='pg'>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras porta nisl justo, id rutrum lorem cursus in. Nullam dictum lobortis lorem, vitae facilisis lectus. Donec ut eros lacinia, suscipit nisl ut, convallis diam.
</p>
</div>
我只是将文本包裹在一个<p>
元素中并将其宽度设置为 100vw。
推荐阅读
- python-3.x - Python,TypeError:没有编码的字符串参数
- javascript - 将事件侦听器添加到按钮时如何调试
- cmake - cmake add_custom_command 引入错误的依赖,除非 add_custom_target 也使用
- npm - Laravel - Bootstrap - NPM Watch 没有替换 css 匹配,它正在添加
- javascript - 当 Mac 设置(不是浏览器设置)拒绝位置共享时,HTML5 Geolocation API 悄然失败
- html - Html Css在两行和两列中删除两个div之间的距离
- javascript - 使用 react-transition-group 转换子路由时无法阻止父路由转换
- kotlin - 为什么使用 bylazy 会使我的 Kotlin 代码变慢
- java - 从 Firebase 中的多个节点读取图像
- javascript - 如何在 html 画布中添加撤消/重做功能