Commit 0dc68015 authored by mxm-web-develop's avatar mxm-web-develop

321

parent c8f258dd
...@@ -8,7 +8,7 @@ import ScrollBar from "@better-scroll/scroll-bar"; ...@@ -8,7 +8,7 @@ import ScrollBar from "@better-scroll/scroll-bar";
import Slide from "@better-scroll/slide"; import Slide from "@better-scroll/slide";
import NestedScroll from '@better-scroll/nested-scroll' import NestedScroll from '@better-scroll/nested-scroll'
import ContactImg from '@/assets/img/contact.png' import ContactImg from '@/assets/img/contact.png'
import { debounce as _debounce } from 'lodash'
import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react"; import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
import { LazyImg } from "./LazyImg"; import { LazyImg } from "./LazyImg";
import { useLocation } from "react-router-dom"; import { useLocation } from "react-router-dom";
...@@ -78,7 +78,7 @@ export const ScrollView = (props: ScrollViewType) => { ...@@ -78,7 +78,7 @@ export const ScrollView = (props: ScrollViewType) => {
BScroll.use(ScrollBar); BScroll.use(ScrollBar);
BScroll.use(Slide); BScroll.use(Slide);
BScroll.use(NestedScroll) BScroll.use(NestedScroll)
const { wrapHeight, children } = props; const { children } = props;
const wrapRef = useRef<HTMLDivElement>(null); const wrapRef = useRef<HTMLDivElement>(null);
const location = useLocation() const location = useLocation()
const [dots,setDots]= useState(0) const [dots,setDots]= useState(0)
...@@ -86,48 +86,44 @@ export const ScrollView = (props: ScrollViewType) => { ...@@ -86,48 +86,44 @@ export const ScrollView = (props: ScrollViewType) => {
const [currentPage,setCurrentPage] = useState(0) const [currentPage,setCurrentPage] = useState(0)
const {data,dispatch} = useContext(AppContext) const {data,dispatch} = useContext(AppContext)
useEffect(()=>{ useEffect(()=>{
dispatch({type:'doSome'})
},[])
useEffect(()=>{
const scrollEl = initBScroll(wrapRef.current as HTMLDivElement) const scrollEl = initBScroll(wrapRef.current as HTMLDivElement)
setScrollObj(scrollEl) setScrollObj(scrollEl)
return () => { return () => {
scrollObj?.destroy(); scrollEl.destroy();
}; };
},[wrapRef]) },[wrapRef])
useEffect(() => { useEffect(() => {
setDots(children&&children.props.children.length) setDots(children&&children.props.children.length)
}, []); }, []);
useEffect(()=>{ useEffect(()=>{
const page = scrollObj?.plugins['slide'].pages.currentPage const page = scrollObj&&scrollObj.plugins['slide'].pages.currentPage
page&& page&&setCurrentPage((prevState: number)=>{
setCurrentPage((prevState: number)=>{
if(prevState !== page.pageY){ if(prevState !== page.pageY){
return page.pageY return page.pageY
} }
return prevState return prevState
}) })
scrollObj?.on('slidePageChanged', (page:any) => { scrollObj&&scrollObj.on('slidePageChanged', (page:any) => {
const data = { console.log('slidePageChanged',2332131231);
page:page.pageY,
}
setCurrentPage((prevState: number)=>{ setCurrentPage((prevState: number)=>{
if(prevState !== page.pageY){ if(prevState !== page.pageY){
return page.pageY dispatch({type:'slideOnChange',payload:{pageIndex:page.pageY}})
return page.pageY
} }
return prevState return prevState
}) })
}) })
},[scrollObj]) },[scrollObj])
const pageMoving =(index:number)=>{ const pageMoving =(index:number)=>{
if(index !== currentPage){ if(index !== currentPage){
scrollObj?.goToPage(0, index,600) scrollObj?.goToPage(0, index,600)
} }
return return
} }
return ( return (
<div <div
className="slide-vertical h-screen w-screen " className="slide-vertical h-screen w-screen "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment