Mobile First Full Page Slider with jQuery - Swipe Slider
File Size: | 1.26 MB |
---|---|
Views Total: | 4637 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

Swipe Slider is a touch-enabled smooth page slider plugin which allows the visitor to navigate between fullscreen pages with mouse drag (Desktop) and touch swipe (Mobile & Tablet).
How to use it:
1. You first need to include the latest version of jQuery library on the webpage.
<script src="//code.jquery.com/jquery.min.js"></script>
2. Add pages to the html document.
<div class="container" id="swiper-slider"> <div class="wrapper"> <div class="box">1</div> <div class="box">2</div> <div class="box">3</div> <div class="box">4</div> <div class="box">5</div> </div> </div>
3. Create a pagination that will indicate on which page you're viewing.
<div class="pager"> <span id="thepage"></span>/<span id="pagelength"></span> </div>
4. Make the pages full height and width.
html, body { margin: 0; padding: 0; width: 100%; height: 100%; box-sizing:content-box; -webkit-box-sizing:content-box; } body { overflow: hidden; } .container { width: 100%; height: 100%; overflow: hidden; } .wrapper { width: 100%; position: relative; -webkit-transition: transform 0.3s ease; transition: transform 0.3s ease; } .box { width: 100%; text-align: center; vertical-align: middle; color: #fff; }
5. Style and position the pagination.
#msg { position: fixed; top: 0; left: 0; z-index: 10; } .pager { position: fixed; right: 15px; top: 15px; z-index: 11; color: #fff; }
6. The core JavaScript to enable the page slider. Currently it supports vertical page scrolling.
var $window = $(window); var winW = $window.width(), winH = $window.height(); var xStart,xEnd,yStart,yEnd; var $swipe = $('#swiper-slider'); var $boxWrapper = $swipe.find('.wrapper'); var $box = $swipe.find('.box'); var boxLength = $box.length; var $pageCount = $('#pagelength'); var $thepage = $('#thepage'); $pageCount.text(boxLength); $thepage.text('1'); $boxWrapper.height(winH*boxLength); $box.height(winH); //swipe event function handleTouchEvent(event){ //if (event.touches.length == 1 || event.touches.length == 0){ //console.log(event); event = event.originalEvent; //console.log(event.type); switch(event.type){ case "touchstart": xStart = event.touches[0].clientX; yStart = event.touches[0].clientY; console.log(xStart,yStart); break; case "touchend": xEnd = event.changedTouches[0].clientX; yEnd = event.changedTouches[0].clientY; var $this = $(this); swipehadle($this,xStart,xEnd,yStart,yEnd); break; case "mousedown": xStart = event.clientX; yStart = event.clientY; console.log(xStart,yStart); break; case "mouseup": xEnd = event.clientX; yEnd = event.clientY; var $this = $(this); swipehadle($this,xStart,xEnd,yStart,yEnd); break; case "touchmove": event.preventDefault(); break; case "mousemove": event.preventDefault(); break; } } function swipehadle(thebox,xStart,xEnd,yStart,yEnd){ var horizontalDistance = xEnd-xStart; var verticalDistance = yEnd-yStart; console.log(xEnd,yEnd); var $thebox = thebox; var theIndex = $thebox.index(); console.log($thebox); if(verticalDistance>30){ console.log('swipe down'); if(theIndex>0){ //slider down action $boxWrapper.css({ '-webkit-transform': 'translate3d(0,'+(-winH*(theIndex-1))+'px,0)', 'transform': 'translate3d(0,'+(-winH*(theIndex-1))+'px,0)' }); $thebox.addClass('box-active').siblings().removeClass('box-active'); //pager show $thepage.text(theIndex); } }else if(verticalDistance<-30){ console.log('swipe up'); if(theIndex<boxLength-1){ //slider up action $boxWrapper.css({ '-webkit-transform': 'translate3d(0,'+(-winH*(theIndex+1))+'px,0)', 'transform': 'translate3d(0,'+(-winH*(theIndex+1))+'px,0)' }); $thebox.addClass('box-active').siblings().removeClass('box-active'); //pager show $thepage.text(theIndex+2); } } if(horizontalDistance>30){ console.log('swipe right'); }else if(horizontalDistance<-30){ console.log('swipe left'); } } $('body').on("touchstart touchend touchmove mousedown mouseup mousemove",'.box',handleTouchEvent);
Changelog:
2020-12-19
- Updated event
This awesome jQuery plugin is developed by taodesign. For more Advanced Usages, please check the demo page or visit the official website.