Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

App.js 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import Swiper from 'swiper/bundle'
  2. import gsap from 'gsap'
  3. import LocomotiveScroll from 'locomotive-scroll';
  4. import Common from '../common/js/Common'
  5. import {
  6. isMobile
  7. } from '../common/js/utils'
  8. export default class App {
  9. constructor() {
  10. let common = new Common(document.querySelector('.main'),0) //导航菜单高亮,0是首页,后面的按顺序添加
  11. this.isMobile = isMobile()
  12. this.scroll = new LocomotiveScroll();
  13. // 图片及视频资源懒加载。防止阻塞js执行
  14. let lazyDoms = document.querySelectorAll(".lazy");
  15. let isMob=this.isMobile;
  16. lazyDoms.forEach((item) => {
  17. if (item.nodeName == "PICTURE") {
  18. item.children[0].setAttribute("srcset", item.children[0].dataset.srcset);
  19. item.children[1].setAttribute("src", item.children[1].dataset.src);
  20. }
  21. if (item.nodeName == "IMG") {
  22. if(isMob){item.setAttribute("src", item.dataset.srcm);}
  23. else{
  24. item.setAttribute("src", item.dataset.src);
  25. }
  26. }
  27. if (item.nodeName == "VIDEO") {
  28. console.log(item, 'item---2')
  29. item.setAttribute("src", item.dataset.src);
  30. // item.load();
  31. }
  32. });
  33. this.timerFun();
  34. }
  35. timerFun() {
  36. let _this=this;
  37. //布置移动端内容
  38. let isMob=this.isMobile;
  39. if(isMob){
  40. let timeAllm=document.querySelector('.timeAllm');
  41. let timeLis=document.querySelectorAll('.timeLi');
  42. let timeLisArray = Array.from(timeLis);
  43. // 提取 year 值并排序
  44. timeLisArray.sort((a, b) => {
  45. let yearA = parseInt(a.querySelector('.year').textContent, 10);
  46. let yearB = parseInt(b.querySelector('.year').textContent, 10);
  47. return yearB - yearA; // 从大到小排序
  48. });
  49. timeLisArray.forEach((item,index)=>{
  50. timeAllm.appendChild(item)
  51. })
  52. }else{
  53. //pc端点击事件
  54. let timeCks=document.querySelectorAll('.timeY');
  55. let timeUls=document.querySelectorAll('.timeUl');
  56. let ulScrolls=[];
  57. let verticalScrollPosition = document.getElementById('yourElementId').offsetTop;
  58. console.log(verticalScrollPosition,8888);
  59. // 初始化 ulScrolls 数组
  60. let num=0;
  61. timeUls.forEach((ul, index) => {
  62. ulScrolls.push(ul);
  63. });
  64. timeCks.forEach((item,index)=>{
  65. item.addEventListener('click',()=>{
  66. timeCks.forEach((item2,index2)=>{
  67. item2.classList.remove('timeCk');
  68. // timeUls[index2].classList.remove('timeShow');
  69. })
  70. item.classList.add('timeCk');
  71. // timeUls[index].classList.add('timeShow');
  72. _this.scroll.scrollTo(timeUls[index]);
  73. })
  74. });
  75. // 添加滚动事件监听器
  76. // let fourCon = document.querySelector(".fourCon");
  77. function updateScrollChange1() {
  78. try {
  79. // let hh = fourCon.getBoundingClientRect();
  80. let scrollY = window.scrollY;
  81. ulScrolls.forEach((item, index) => {
  82. if (scrollY >= item.offsetTop&&scrollY < item.offsetTop+item.scrollHeight) {
  83. timeCks.forEach((item2,index2)=>{
  84. item2.classList.remove('timeCk');
  85. })
  86. timeCks[index].classList.add('timeCk');
  87. }
  88. });
  89. console.log(scrollY,ulScrolls);
  90. } catch (error) { }
  91. }
  92. window.addEventListener('scroll', updateScrollChange1);
  93. }
  94. }
  95. }