jQuery Plugin To Create Carousels Within Frames - FrameCarousel
File Size: | 6.41 MB |
---|---|
Views Total: | 5781 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

FrameCarousel is a lightweight jQuery plugin used to create responsive, mobile-friendly, CSS3 animated carousels within specified frames.
Features:
- Resizes itself for different screen sizes. Can even remove frame beyond a certain screen size.
- Highly responsive to touch gestures on smart devices.
- Takes advantage of CSS3 3D acceleration so it runs smooth on every device.
- A good number of customization options to make sure it fits nicely into your project.
Basic usage:
1. Load jQuery library and the jQuery FrameCarousel plugin's stylesheet and JavaScript in the web project.
<link href="jquery.frameCarousel.css" rel="stylesheet"> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script src="jquery.frameCarousel.js"></script>
2. Load the jQuery touchSwipe plugin for touch gestures support
<script src="jquery.touchSwipe.min.js"></script>
3. Create a DIV element to place the carousel. In this sample, the plugin will generate a carousel within an iMac display.
<div class="fc-mac"></div>
4. Initialize the plugin and set an array of images to be displayed into the iMac display.
$('.fc-mac').frameCarousel({ images: ['1.png', '2.png', '3.png',] });
5. Default plugin options.
// Enabled/disables debug mode. Debug mode allows you to print // debug messages on top of the frame in cases when console.log/alert aren't // readily available. debug: false, // first screen when the plugin intializes. Must be an integer between 0 // and image_count - 1, where image_count is total number of images you're // displaying inside the frame. first: 0, /* * swipeThreshold -- percentage of screen width * Determines when to intiate a next transition when user * is sliding a screen. * * For example, a value of 10 says that * initiate a move-to-next screen transition, if user has lifted * her finger(s) after having dragged current screen towards left by * a distance of 10% or more. */ swipeThreshold: 10, /** * Frame image that you'd like to use in the background. * The default value points to a phone frame included within * download package. */ frame: 'path/to/frame-carousel/sample/frame.png', /** * Width/height of the frame in pixels you'd like to apply in relation to different * screen sizes. * * If this option isn't specified at all, original dimensions of the frame image * will be used for all screen sizes. * * It takes an array of objects, each specifying frame dimensions in relation to a * particular screen width. For a given screen width, the plugin will iterate through * the array, and apply dimensions of the first matching object. * * If width isn't specified, but height is there, width would be calculated * using original image's aspect ratio. Same is true when height isn't specified, * but width is there. If neither height nor width are specified, original dimensions * of the image will be used. * * If width is set as -1, the frame will be removed for screens which match the criteria. */ frameSize: [{ /** * If width isn't specified, but height is specified, width would be calculated, * using original image's aspect ratio. If both height and width aren't */ width: [calculated at runtime], height: [calculated at runtime], minScreenWidth: 768, maxScreenWidth: 1024 }], /** * Marks bounding box within frame image where images are to be rendered. * All values are in percentages, so remain true no matter what size frame ends * up with. */ boundingBox: { left: '4.3%', top: '4.48%', width: '91.4%', height: '61.1%' }, // allows the plugin to trim itself down beyond given screensize collapseThreshold: 450, /** * An array of image links to be rendered within frame. Images don't have to adhere * to any size, but it'll help if their aspect ratio is same as aspect ratio of * boundingBox. */ images: ['path/to/frame-carousel/sample/1.jpg', 'path/to/frame-carousel/sample/2.jpg', ... 'path/to/frame-carousel/sample/10.jpg'], controlsPosition: { top: '35%' }, // autoplay autoplay: false, autoplayInterval: 2000
6. Methods.
// Grab the frameCarousel instance from host element var frameCarousel = $('.host-element').data('frameCarousel'); // The argument 'options' is optional in all of the following functions. // It is a hash/map with following possible properties (and defaults): // animate: true (determines if you want transition immediate or with animation) // Goes to next screen. If user is already at last screen, // it'll stay intact. frameCarousel.next( options ); // Goes to previous screen. If user is already at first screen, // it'll stay intact. frameCarousel.previous( options ); // Goes to screen identified by index. Stays intact if index // is out of bounds. frameCarousel.goto( index, options ); // Resizes the frame to given 'width' and 'height'. if no argument // is passed, it'd resize to original applicable size. // If only 'width' is passed, it'd determine 'height' by original // aspect ratio. Same is true when only 'height' is passed // and not 'width'. frameCarousel.resize( options ); // Call this if you'd like remove frame image. // Can be useful on smaller screens. frameCarousel.removeFrame(); // Gracefully destructs the instance. frameCarousel.destroy(); // If 'debug' mode is enabled (see options), any string passed to this method // will be printed over screen. Useful for testing in situations // when console.log/alert are not conveniently available. frameCarousel.debug( message );
7. Events.
// Grab the frameCarousel instance from host element. // Each callback receives a hash/map 'e' with relevant // information. $('.host-element') // triggers when a frameCarousel instance is ready .on('fc-ready', function( e ){ }) // triggers when a frameCarousel instance is destroyed .on('fc-destroy', function( e ){ }) // triggers when a screen transition begins .on('fc-transition-start', function( e ){ // e.from => screen index from where transition begun // e.to => screen index to where transition has to end }) // triggers when a screen transition ends .on('fc-transition-end', function( e ){ // e.from => screen index from where transition begun // e.to => screen index to where transition ended });
Change logs:
2017-02-18
- fixed event.
2015-09-28
- Adds support for auotplay
2015-09-18
- Adds new option 'collapseThreshold' that allows the plugin to trim itself down beyond given screensize
2015-08-10
- Fixes: Pagination button position gets messed up when it grows beyond one line
2015-06-17
- Implements previous, next and destroy methods
This awesome jQuery plugin is developed by Eastros. For more Advanced Usages, please check the demo page or visit the official website.