CSS怎么寫(xiě)滑動(dòng)翻頁(yè)效果
在CSS中,我們可以使用transform
屬性來(lái)實(shí)現(xiàn)滑動(dòng)翻頁(yè)效果,以下是一個(gè)簡(jiǎn)單的示例:
HTML結(jié)構(gòu):
<div class="slider"> <div class="page">Page 1</div> <div class="page">Page 2</div> <div class="page">Page 3</div> <div class="page">Page 4</div> <div class="page">Page 5</div> <a href="#" class="prev">Prev</a> <a href="#" class="next">Next</a> </div>
CSS樣式:
.slider { position: relative; width: 300px; height: 200px; overflow: hidden; } .page { position: absolute; width: 300px; height: 200px; line-height: 200px; text-align: center; transform: translateX(100%); transition: transform 0.5s ease; } .prev, .next { position: absolute; top: 50%; transform: translateY(-50%); } .prev { left: 10px; } .next { right: 10px; }
JavaScript代碼:
var currentPage = 1; var totalPages = 5; var slider = document.querySelector('.slider'); var prevButton = document.querySelector('.prev'); var nextButton = document.querySelector('.next'); var pageWidth = slider.offsetWidth; var pageHeight = slider.offsetHeight; var pageElements = document.querySelectorAll('.page'); var pageIndex = 0; var pageTranslateX = pageWidth * currentPage; var pageTranslateY = pageHeight * currentPage; var pageTranslateZ = pageWidth * currentPage; var pageTranslateW = pageHeight * currentPage; var pageTranslateXNext = pageWidth * (currentPage + 1); var pageTranslateYNext = pageHeight * (currentPage + 1); var pageTranslateZNext = pageWidth * (currentPage + 1); var pageTranslateWNext = pageHeight * (currentPage + 1); var pageTranslateXPrev = pageWidth * (currentPage - 1); var pageTranslateYPrev = pageHeight * (currentPage - 1); var pageTranslateZPrev = pageWidth * (currentPage - 1); var pageTranslateWPrev = pageHeight * (currentPage - 1); var pageTranslateXNextPage = pageWidth * (pageIndex + 1); var pageTranslateYNextPage = pageHeight * (pageIndex + 1); var pageTranslateZNextPage = pageWidth * (pageIndex + 1); var pageTranslateWNextPage = pageHeight * (pageIndex + 1); var pageTranslateXPrevPage = pageWidth * pageIndex; var pageTranslateYPrevPage = pageHeight * pageIndex; var pageTranslateZPrevPage = pageWidth * pageIndex; var pageTranslateWPrevPage = pageHeight * pageIndex; var isTransitioning = false; var transitionDuration = 0.5; // seconds var transitionTimingFunction = 'ease'; // 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'cubic-bezier(n,n,n,n)' | <duration> <timing-function> | initial | inherit; default is 'ease' var transitionDelay = 0; // milliseconds or 'initial' | 'inherit'; default is 0 (no delay) var transitionProperty = 'transform'; // CSS property to transition, default is 'all' (all properties) or specific properties like 'transform', 'opacity', etc. In this case, we want to transition the transform property. See https://www.w3.org/TR/css3-transitions/#transition-property for more info. Note that if you set this to 'all', it will transition all CSS properties, which is probably not what you want in most cases. In this example, we are transitioning the transform property only. See https://www.w3.org/TR/css3-transitions/#transition for more info on how to use transitions in CSS. Note that if you set this to 'initial' or 'inherit', it will use the value specified by the user agent stylesheet or the parent element, respectively. See https://www.w3.org/
版權(quán)聲明:除非特別標(biāo)注,否則均為本站原創(chuàng)文章,轉(zhuǎn)載時(shí)請(qǐng)以鏈接形式注明文章出處。