javascript - 为什么我的滚动进度条不是从左侧开始,而是从中间开始?(反应)(附图片)
问题描述
问题是滚动进度条不会从左到右。反而是在中间,往两边走,很丑。如何解决这个问题?我在在线代码编辑器上尝试了相同的代码,这很正常。我的 VSCode 有问题吗?
代码:
import React from 'react';
class Progress extends React.Component {
constructor(props) {
super(props);
this.state = {
scrolled: 0,
};
}
componentDidMount() {
window.addEventListener('scroll', this.scrollProgress);
}
componentWillUnmount() {
window.removeEventListener('scroll', this.scrollProgress);
}
scrollProgress = () => {
const scrollPx = document.body.scrollTop || document.documentElement.scrollTop;
const winHeightPx = document.documentElement.scrollHeight - document.documentElement.clientHeight;
const scrolled = `${(scrollPx / winHeightPx) * 100}%`;
this.setState({
scrolled: scrolled,
});
};
render() {
const progressContainerStyle = {
background: 'transparent',
height: '15px',
position: 'fixed',
top: 0,
left: 0,
width: '100vw',
zIndex: 100,
};
const progressBarStyle = {
height: '15px',
backgroundImage: 'linear-gradient(-90deg, #6098df, #b581b0)',
width: this.state.scrolled,
};
return (
<div className="progress-container" style={progressContainerStyle}>
<div className="progress-bar" style={progressBarStyle} />
</div>
);
}
}
export default Progress;
解决方案
我添加'margin: 0'
了两者progressContainerStyle
,progressBarStyle
现在它奇迹般地起作用了!
推荐阅读
- java - 如何使用 JAVA 设置 Excel 标题文本的字体颜色
- javascript - 将 html 表保存到服务器 php 上的文件中
- javascript - 如何在容器 div 中将 div 的位置从固定更改为粘性?
- javascript - React/Next.js 站点无法在 Safari 中正确加载(空白页)
- modbus - 使用 pymodbus 从 Epever uPower 充电器/逆变器读取 modbus 寄存器
- azure-devops - 如何删除 Azure Devops 中损坏的 Wiki 条目?
- r - 如何为我的整个表集向前滚动最大值?
- selenium - Selenium Driver 是大型 json 数据下载后 ajax 调用后面的一页
- python - 在 2D 中绘制对象的 3D 边界框(处理中)
- cluster-analysis - RNAseq 生物复制在 PCA 图中不聚集