一开始是五个 five-list是叠在一起的,位于页面正中间,然后当页面滑动到 .five-jpg进入视窗以后,五个five-list分别展开,第一个和第二个回到最上面,第三个在中间,第四个第五个在第三排
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Five List Scroll Animation</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <style> body { margin: 0; padding: 0; height: 2000px; } .container.five-jpg { position: relative; min-height: calc(3.5 * var(--five-list-height)); display: flex; align-items: center; justify-content: center; flex-wrap: wrap; } .five-list { position: absolute; width: 45%; transition: all 2s ease-in-out; opacity: 0; top: 50%; left: 50%; transform: translate(-50%, -50%); } .five-list img { width: 100%; } .visible { opacity: 1; } </style> </head> <body> <div style="height: 1500px;"></div> <div class="container five-jpg" id="fiveJpg"> <div class="col-md-6 five-list" id="item1"><img src="seo.jpg" alt=""></div> <div class="col-md-6 five-list" id="item2"><img src="seo.jpg" alt=""></div> <div class="col-md-6 five-list" id="item3"><img src="seo.jpg" alt=""></div> <div class="col-md-6 five-list" id="item4"><img src="seo.jpg" alt=""></div> <div class="col-md-6 five-list" id="item5"><img src="seo.jpg" alt=""></div> </div> <div style="height: 1500px;"></div> <script> $(document).ready(function() { function updateContainerHeight() { let itemHeight = $('.five-list img').height(); document.documentElement.style.setProperty('--five-list-height', itemHeight + 'px'); } updateContainerHeight(); $(window).on('resize', updateContainerHeight); $(window).on('scroll', function() { let sectionOffset = $('#fiveJpg').offset().top; let scrollPosition = $(window).scrollTop() + $(window).height(); if (scrollPosition > sectionOffset) { $('#item1').addClass('visible').css({ top: '0%', left: '0%', transform: 'none' }); $('#item2').addClass('visible').css({ top: '0%', right: '0%', transform: 'none' }); $('#item3').addClass('visible').css({ top: '30%', left: '25%', transform: 'none' }); $('#item4').addClass('visible').css({ top: '60%', left: '0%', transform: 'none' }); $('#item5').addClass('visible').css({ top: '60%', right: '0%', transform: 'none' }); } }); }); </script> </body> </html> </body> </html> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" ></script>