[fix] 修复桌面端左右滑动(vw 包括滚动条宽度)
This commit is contained in:
parent
6d6f8fd842
commit
17fedcab2a
|
@ -65,7 +65,7 @@
|
||||||
overflow-x: scroll;
|
overflow-x: scroll;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
overflow-scrolling: touch;
|
overflow-scrolling: touch;
|
||||||
width: 100vw;
|
width: calc(100vw - var(--scrollbar-width));
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: calc((-10px - 2vmin)/2);
|
margin-bottom: calc((-10px - 2vmin)/2);
|
||||||
|
|
|
@ -11,10 +11,12 @@ import {getDownloadCount, login} from "../../api/db";
|
||||||
import {connect} from 'react-redux';
|
import {connect} from 'react-redux';
|
||||||
import {loadDownloadData} from "../../actions";
|
import {loadDownloadData} from "../../actions";
|
||||||
import ReactGA from 'react-ga';
|
import ReactGA from 'react-ga';
|
||||||
|
import {setScrollbarWidthProp} from "../../utils/util"
|
||||||
|
|
||||||
ReactGA.initialize('UA-165845289-1');
|
ReactGA.initialize('UA-165845289-1');
|
||||||
function App({ dispatch }) {
|
function App({ dispatch }) {
|
||||||
const updateDownloadData = useCallback((downloadData) => dispatch(loadDownloadData(downloadData)), []);
|
const updateDownloadData = useCallback((downloadData) => dispatch(loadDownloadData(downloadData)), []);
|
||||||
|
setScrollbarWidthProp()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
login().then(() => {
|
login().then(() => {
|
||||||
|
|
|
@ -39,3 +39,29 @@ export function extend(target, options) {
|
||||||
return target
|
return target
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getScrollbarWidth() {
|
||||||
|
|
||||||
|
// Creating invisible container
|
||||||
|
const outer = document.createElement('div');
|
||||||
|
outer.style.visibility = 'hidden';
|
||||||
|
outer.style.overflow = 'scroll'; // forcing scrollbar to appear
|
||||||
|
outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
|
||||||
|
document.body.appendChild(outer);
|
||||||
|
|
||||||
|
// Creating inner element and placing it in the container
|
||||||
|
const inner = document.createElement('div');
|
||||||
|
outer.appendChild(inner);
|
||||||
|
|
||||||
|
// Calculating difference between container's full width and the child width
|
||||||
|
const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);
|
||||||
|
|
||||||
|
// Removing temporary elements from the DOM
|
||||||
|
outer.parentNode.removeChild(outer);
|
||||||
|
|
||||||
|
return scrollbarWidth;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export function setScrollbarWidthProp() {
|
||||||
|
document.documentElement.style.setProperty('--scrollbar-width', getScrollbarWidth() + "px");
|
||||||
|
}
|
Loading…
Reference in New Issue