1.1.2 • Published 4 years ago

fullview v1.1.2

Weekly downloads
87
License
GPL-3.0
Repository
github
Last release
4 years ago

FullView.Js

Javascript | JQuery Plugin

preview

FullView.js is a simple, light-weighted and easy to use JavaScript library to create full-screen scrolling websites.

Its enables the visitor to navigate through pages with a smooth full-screen scroll effect. Supports keyboard, mouse wheel on desktop, and swipe up/down/left/right events on touch device.

Also comes with a side navigation dots, containing anchor links that allow the visitor to scroll the page to a specific content section.

Compatibility

IE 9+OperaChromefirefoxAndroid 4.1+Safari 7.1+

GitHub release License downloads downloadspermonths hits filesize

Demo online | Codepen | Tutorial


Get Started

All you will need to include:

  • The JavaScript file fullview.js (or its minified version fullview.min.js)
  • The css file fullview.css (or its minified version fullview.min.css)
  • The JQuery file, must be version 1.2+

Including files:

<link rel="stylesheet" type="text/css" href="fullview.css" />

<!-- Javascript Files -->
<script  src="https://code.jquery.com/jquery-3.5.1.min.js"  crossorigin="anonymous"></script>

<script type="text/javascript" src="fullview.js"></script>

Using CDNS

Optionally, If you prefer to use a CDN to load the needed files,

https://cdn.jsdelivr.net/npm/fullview/dist/fullview.min.css
https://cdn.jsdelivr.net/npm/fullview/dist/fullview.min.js

Using NPM

Optionally, you can install fullView.js with npm

npm install fullview

Usage

HTML Structure

Start your HTML document with the compulsory HTML DOCTYPE declaration, must start with a <! DOCTYPE> declaration.

Sections should be placed inside a wrapper (<div id="fullview"> you can change the id). Every direct child of id="fullview" element will be defined as section. The active section by default will be the starting point when the page loads.

<div id="fullview">
      <div><!-- Some Section --></div>
      <div><!-- Some Section --></div>
      <div><!-- Some Section --></div>       
</div>

You surely can add active class to any section for different starting point rather than the first section.

<div class="active">Some section</div>

Initialization

You have to use fullView.js as a jQuery plugin and be sure you place this script in footer.

$("#fullview").fullView();
// OR - For More Customization
$("#fullview").fullView({
	//Optional
	dots:  true,
	dotsPosition:  'right',
	// ...
	// Read Docs for more options details

	// Callbacks
	onScrollStart:  function (currentView, destinationView, direction) {
	      //  Do Something Usefull
	},
	onScrollEnd:  function (currentView, previousView, direction) {
	      //  Do Something Usefull
	}
})

Creating Navigation to Sections

To activate naviagtion, navbar option would be use. This way the scrolling of the sections will activate the corresponding element in the menu. In order to link the elements of the navigation with the sections, an href attribute of anchor tag will be needed to use with the same anchor links as used within the sections.

<!-- Navigation Menu -->
<div id="navbar">  
   <ul>  
      <li>  
         <a href="#page-one">Section 1</a>  
      </li>  
      <li>  
         <a href="#page-two">Section 2</a>  
      </li>  
      <li>  
         <a href="#page-three">Section 3</a>  
      </li>  
  </ul>  
</div>
<!-- Sections -->
<div id="fullview">
      <div id="page-one"><!-- Some Section --></div>
      <div id="page-two"><!-- Some Section --></div>
      <div id="page-three"><!-- Some Section --></div>       
</div>
/* Script */
$("#fullview").fullView({
	//Navigation
	navbar:  "#navbar",
})

Check out the complete working Menu Example

Default Side Navigation (Dots)

FullView.js also comes with side dots navigation, To disable, dots option will be use. The positioning of side navigation will be change by using dotsPosition option.

/* Script */
$("#fullview").fullView({
	dots:  true, // Default 'true'
	// Other Options
	dotsPosition:  'right', // Default 'right'
	dotsTooltips:  true, // Default 'false'
})

Tooltips

In order to add tooltips to Side Navigation 'dot' elements, data-tooltip attribute will be added to any section and an option dotsTooltips will be changed to true.

<div data-tooltip="Section Title">Some section</div>

Attributes added by fullview.js

fullView.js adds few attibutes including classes and HTML5 data attribute in different elements to keep a record of the status of the webpage:

  • active is added the current visible section.
  • active is added to the current navbar element (if using the navbar option).
  • data-scroll attribute is added to the menu items and dots

All Options

OptionTypeDefaultValuesDescription
navbarstringundefinedselectorTo link the elements of the navigation with the sections
dotsbooleantruetrue or falseFor side dots navigation visibility
dotsPositionstringrightright or leftDefines side dots navigation positioning
dotsTooltipsbooleanfalsetrue or falseShows a tooltips for the sections on hover of dots navigation element.
speednumber500milliseconds (>=350)Speed in milliseconds for the scrolling transitions.
easingstringlinearswing, linear (or any third-party easing library)Defines the transition effect.
backToTopbooleanfalsetrue or falseDefines whether scrolling down in the last section should scroll to the start one or not.
keyboardScrollingbooleantruetrue or falseDefines if the scroll can be performed using the keyboard.
mouseScrollingbooleantruetrue or falseDefines if the scroll can be performed using the mouse.
touchScrollingbooleantruetrue or falseDefines if the scroll can be performed using the touch.
onScrollStartfunctionnullcallbackThis callback return the element of current section, element of destination section and scroll direction on every scroll Start.
onScrollEndfunctionnullcallbackThis callback return the element of current section, element of previous section and scroll direction on every scroll finish.

Open Source License

If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use it under the terms of the GPLv3.