PHP Classes

File: assets/js/script.easing.js

Recommend this page to a friend!
  Classes of Michael Beck   XOOPS Publisher Module   assets/js/script.easing.js   Download  
File: assets/js/script.easing.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: XOOPS Publisher Module
Publish static HTML content and article with XOOPS
Author: By
Last change:
Date: 4 years ago
Size: 12,952 bytes
 

Contents

Class file image Download
// JavaScript Document /*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net) * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. * * Version: 3.0.2 * * Requires: 1.2.2+ */ (function ($) { var types = ['DOMMouseScroll', 'mousewheel']; $.event.special.mousewheel = { setup: function () { if (this.addEventListener) for (var i = types.length; i;) this.addEventListener(types[--i], handler, false); else this.onmousewheel = handler; }, teardown: function () { if (this.removeEventListener) for (var i = types.length; i;) this.removeEventListener(types[--i], handler, false); else this.onmousewheel = null; } }; $.fn.extend({ mousewheel: function (fn) { return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); }, unmousewheel: function (fn) { return this.unbind("mousewheel", fn); } }); function handler(event) { var args = [].slice.call(arguments, 1), delta = 0, returnValue = true; event = $.event.fix(event || window.event); event.type = "mousewheel"; if (event.wheelDelta) delta = event.wheelDelta / 120; if (event.detail) delta = -event.detail / 3; // Add events and delta to the front of the arguments args.unshift(event, delta); return $.event.handle.apply(this, args); } })(jQuery); /** * @package jquery * @subpackage lofslidernews * @copyright Copyright (C) JAN 2010 LandOfCoder.com <@emai:landofcoder@gmail.com>. All rights reserved. * @website http://landofcoder.com * @license This plugin is dual-licensed under the GNU General Public License and the MIT License */ // JavaScript Document (function ($) { $.fn.lofJSidernews = function (settings) { return this.each(function () { // get instance of the lofSiderNew. new $.lofSidernews(this, settings); }); }; $.lofSidernews = function (obj, settings) { this.settings = { direction: '', mainItemSelector: 'li', navInnerSelector: 'ul', navSelector: 'li', navigatorEvent: 'click', wapperSelector: '.lof-main-wapper', interval: 4000, auto: true, // whether to automatic play the slideshow maxItemDisplay: 3, startItem: 0, navPosition: 'vertical', navigatorHeight: 100, navigatorWidth: 210, duration: 600, navItemsSelector: '.lof-navigator li', navOuterSelector: '.lof-navigator-outer', isPreloaded: true, easing: 'easeInOutQuad' }; $.extend(this.settings, settings || {}); this.nextNo = null; this.previousNo = null; this.maxWidth = this.settings.mainWidth || 600; this.wrapper = $(obj).find(this.settings.wapperSelector); this.slides = this.wrapper.find(this.settings.mainItemSelector); if (!this.wrapper.length || !this.slides.length) return; // set width of wapper if (this.settings.maxItemDisplay > this.slides.length) { this.settings.maxItemDisplay = this.slides.length; } this.currentNo = isNaN(this.settings.startItem) || this.settings.startItem > this.slides.length ? 0 : this.settings.startItem; this.navigatorOuter = $(obj).find(this.settings.navOuterSelector); this.navigatorItems = $(obj).find(this.settings.navItemsSelector); this.navigatorInner = this.navigatorOuter.find(this.settings.navInnerSelector); if (this.settings.navPosition == 'horizontal') { this.navigatorInner.width(this.slides.length * this.settings.navigatorWidth); this.navigatorOuter.width(this.settings.maxItemDisplay * this.settings.navigatorWidth); this.navigatorOuter.height(this.settings.navigatorHeight); } else { this.navigatorInner.height(this.slides.length * this.settings.navigatorHeight); this.navigatorOuter.height(this.settings.maxItemDisplay * this.settings.navigatorHeight); this.navigatorOuter.width(this.settings.navigatorWidth); } this.navigratorStep = this.__getPositionMode(this.settings.navPosition); this.directionMode = this.__getDirectionMode(); if (this.settings.direction == 'opacity') { this.wrapper.addClass('lof-opacity'); $(this.slides).css('opacity', 0).eq(this.currentNo).css('opacity', 1); } else { this.wrapper.css({'left': '-' + this.currentNo * this.maxSize + 'px', 'width': ( this.maxWidth ) * this.slides.length}); } if (this.settings.isPreloaded) { this.preLoadImage(this.onComplete); } else { this.onComplete(); } }; $.lofSidernews.fn = $.lofSidernews.prototype; $.lofSidernews.fn.extend = $.lofSidernews.extend = $.extend; $.lofSidernews.fn.extend({ startUp: function (obj, wrapper) { seft = this; this.navigatorItems.each(function (index, item) { $(item).click(function () { seft.jumping(index, true); seft.setNavActive(index, item); }); $(item).css({'height': seft.settings.navigatorHeight, 'width': seft.settings.navigatorWidth}); }); this.registerWheelHandler(this.navigatorOuter, this); this.setNavActive(this.currentNo); if (this.settings.buttons && typeof (this.settings.buttons) == "object") { this.registerButtonsControl('click', this.settings.buttons, this); } if (this.settings.auto) this.play(this.settings.interval, 'next', true); return this; }, onComplete: function () { setTimeout(function () { $('.preload').fadeOut(900); }, 400); this.startUp(); }, preLoadImage: function (callback) { var self = this; var images = this.wrapper.find('img'); var count = 0; images.each(function (index, image) { if (!image.complete) { image.onload = function () { count++; if (count >= images.length) { self.onComplete(); } }; image.onerror = function () { count++; if (count >= images.length) { self.onComplete(); } } } else { count++; if (count >= images.length) { self.onComplete(); } } }); }, navivationAnimate: function (currentIndex) { if (currentIndex <= this.settings.startItem || currentIndex - this.settings.startItem >= this.settings.maxItemDisplay - 1) { this.settings.startItem = currentIndex - this.settings.maxItemDisplay + 2; if (this.settings.startItem < 0) this.settings.startItem = 0; if (this.settings.startItem > this.slides.length - this.settings.maxItemDisplay) { this.settings.startItem = this.slides.length - this.settings.maxItemDisplay; } } this.navigatorInner.stop().animate(eval('({' + this.navigratorStep[0] + ':-' + this.settings.startItem * this.navigratorStep[1] + '})'), {duration: 500, easing: 'easeInOutQuad'}); }, setNavActive: function (index, item) { if ((this.navigatorItems)) { this.navigatorItems.removeClass('active'); $(this.navigatorItems.get(index)).addClass('active'); this.navivationAnimate(this.currentNo); } }, __getPositionMode: function (position) { if (position == 'horizontal') { return ['left', this.settings.navigatorWidth]; } return ['top', this.settings.navigatorHeight]; }, __getDirectionMode: function () { switch (this.settings.direction) { case 'opacity': this.maxSize = 0; return ['opacity', 'opacity']; default: this.maxSize = this.maxWidth; return ['left', 'width']; } }, registerWheelHandler: function (element, obj) { element.bind('mousewheel', function (event, delta) { var dir = delta > 0 ? 'Up' : 'Down', vel = Math.abs(delta); if (delta > 0) { obj.previous(true); } else { obj.next(true); } return false; }); }, registerButtonsControl: function (eventHandler, objects, self) { for (var action in objects) { switch (action.toString()) { case 'next': objects[action].click(function () { self.next(true) }); break; case 'previous': objects[action].click(function () { self.previous(true) }); break; } } return this; }, onProcessing: function (manual, start, end) { this.previousNo = this.currentNo + (this.currentNo > 0 ? -1 : this.slides.length - 1); this.nextNo = this.currentNo + (this.currentNo < this.slides.length - 1 ? 1 : 1 - this.slides.length); return this; }, finishFx: function (manual) { if (manual) this.stop(); if (manual && this.settings.auto) { this.play(this.settings.interval, 'next', true); } this.setNavActive(this.currentNo); }, getObjectDirection: function (start, end) { return eval("({'" + this.directionMode[0] + "':-" + (this.currentNo * start) + "})"); }, fxStart: function (index, obj, currentObj) { if (this.settings.direction == 'opacity') { $(this.slides).stop().animate({opacity: 0}, {duration: this.settings.duration, easing: this.settings.easing}); $(this.slides).eq(index).stop().animate({opacity: 1}, {duration: this.settings.duration, easing: this.settings.easing}); } else { this.wrapper.stop().animate(obj, {duration: this.settings.duration, easing: this.settings.easing}); } return this; }, jumping: function (no, manual) { this.stop(); if (this.currentNo == no) return; var obj = eval("({'" + this.directionMode[0] + "':-" + (this.maxSize * no) + "})"); this.onProcessing(null, manual, 0, this.maxSize) .fxStart(no, obj, this) .finishFx(manual); this.currentNo = no; }, next: function (manual, item) { this.currentNo += (this.currentNo < this.slides.length - 1) ? 1 : (1 - this.slides.length); this.onProcessing(item, manual, 0, this.maxSize) .fxStart(this.currentNo, this.getObjectDirection(this.maxSize), this) .finishFx(manual); }, previous: function (manual, item) { this.currentNo += this.currentNo > 0 ? -1 : this.slides.length - 1; this.onProcessing(item, manual) .fxStart(this.currentNo, this.getObjectDirection(this.maxSize), this) .finishFx(manual); }, play: function (delay, direction, wait) { this.stop(); if (!wait) { this[direction](false); } var self = this; this.isRun = setTimeout(function () { self[direction](true); }, delay); }, stop: function () { if (this.isRun === null) return; clearTimeout(this.isRun); this.isRun = null; } }) })(jQuery);