📅  最后修改于: 2023-12-03 15:38:42.290000             🧑  作者: Mango
在编程过程中,有时我们需要在屏幕上画一条垂直线,但是随着屏幕的颤动或者滚动,这条垂直线往往会产生抖动,影响用户的体验。本文介绍如何在颤动中创建一条稳定的垂直线。
我们可以利用 HTML 和 CSS 创建一个宽度为 1 个像素的竖条,然后将其 position 设为 fixed,left 设为 50%。这样,它就会一直固定在屏幕中间,不管屏幕如何颤动。
<div class="vertical-line"></div>
.vertical-line {
position: fixed;
top: 0;
left: 50%;
width: 1px;
height: 100%;
background-color: black;
z-index: 9999;
}
Canvas API 可以让我们在画布上自由绘制各种图形,包括垂直线。我们可以通过监听窗口滚动事件,获取当前滚动位置,然后在画布上重绘一条垂直线。
<canvas id="canvas"></canvas>
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
function drawLine() {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.moveTo(window.innerWidth/2, 0);
ctx.lineTo(window.innerWidth/2, window.innerHeight);
ctx.strokeStyle = 'black';
ctx.lineWidth = 1;
ctx.stroke();
}
window.addEventListener('scroll', drawLine);
以上是两种比较简单的实现方案,分别利用了 HTML 和 CSS、Canvas API。读者可以根据自己的需求和实际情况选择适合的方案。