- $1,47999$1,479.99
"); object.find("li").addClass("nbs-flexisel-item"); if(settings.navigationTargetSelector && $(settings.navigationTargetSelector).length > 0) { $("
").appendTo(settings.navigationTargetSelector); } else { settings.navigationTargetSelector = object.parent(); $("
").insertAfter(object); } if(settings.infinite) { var childSet = object.children(); var cloneContentBefore = childSet.clone(); var cloneContentAfter = childSet.clone(); object.prepend(cloneContentBefore); object.append(cloneContentAfter); } }, /****************************** Set Event Handlers *******************************/ setEventHandlers: function() { var childSet = object.children(); $(window).on("resize", function(event){ canNavigate = false; clearTimeout(resizeTimeout); resizeTimeout = setTimeout(function(){ canNavigate = true; methods.calculateDisplay(); itemsWidth = methods.getCurrentItemWidth(); childSet.width(itemsWidth); if(settings.infinite) { object.css({ 'left': -itemsWidth * Math.floor(childSet.length / 2) }); } else { methods.clearDisabled(); $(settings.navigationTargetSelector).find(".nbs-flexisel-nav-left").addClass('disabled'); object.css({ 'left': 0 }); } }, 100); }); $(settings.navigationTargetSelector).find(".nbs-flexisel-nav-left").on("click", function (event) { methods.scroll(true); }); $(settings.navigationTargetSelector).find(".nbs-flexisel-nav-right").on("click", function (event) { methods.scroll(false); }); if(settings.autoPlay.enable) { methods.setAutoplayInterval(); if (settings.autoPlay.pauseOnHover === true) { object.on({ mouseenter : function() { canNavigate = false; }, mouseleave : function() { canNavigate = true; } }); } } object[0].addEventListener('touchstart', methods.touchHandler.handleTouchStart, false); object[0].addEventListener('touchmove', methods.touchHandler.handleTouchMove, false); }, /****************************** Calculate Display *******************************/ calculateDisplay: function() { var contentWidth = $('html').width(); var largestCustom = responsivePoints[responsivePoints.length-1].changePoint; // sorted array for(var i in responsivePoints) { if(contentWidth >= largestCustom) { // set to default if width greater than largest custom responsiveBreakpoint itemsVisible = settings.visibleItems; itemsToScroll = settings.itemsToScroll; break; } else { // determine custom responsiveBreakpoint to use if(contentWidth < responsivePoints[i].changePoint) { itemsVisible = responsivePoints[i].visibleItems; itemsToScroll = responsivePoints[i].itemsToScroll; break; } else { continue; } } } }, /****************************** Scroll *******************************/ scroll: function(reverse) { if(typeof reverse === 'undefined') { reverse = true } if(canNavigate == true) { canNavigate = false; settings.before.call(this, object); itemsWidth = methods.getCurrentItemWidth(); if(settings.autoPlay.enable) { clearInterval(autoPlayInterval); } if(!settings.infinite) { var scrollDistance = itemsWidth * itemsToScroll; if(reverse) { object.animate({ 'left': methods.calculateNonInfiniteLeftScroll(scrollDistance) }, settings.animationSpeed, function(){ settings.after.call(this, object); canNavigate = true; }); } else { object.animate({ 'left': methods.calculateNonInfiniteRightScroll(scrollDistance) },settings.animationSpeed, function(){ settings.after.call(this, object); canNavigate = true; }); } } else { object.animate({ 'left' : reverse ? "+=" + itemsWidth * itemsToScroll : "-=" + itemsWidth * itemsToScroll }, settings.animationSpeed, function() { settings.after.call(this, object); canNavigate = true; if(reverse) { methods.offsetItemsToBeginning(itemsToScroll); } else { methods.offsetItemsToEnd(itemsToScroll); } methods.offsetSliderPosition(reverse); }); } if(settings.autoPlay.enable) { methods.setAutoplayInterval(); } } }, touchHandler: { xDown: null, yDown: null, handleTouchStart: function(evt) { this.xDown = evt.touches[0].clientX; this.yDown = evt.touches[0].clientY; }, handleTouchMove: function (evt) { if (!this.xDown || !this.yDown) { return; } var xUp = evt.touches[0].clientX; var yUp = evt.touches[0].clientY; var xDiff = this.xDown - xUp; var yDiff = this.yDown - yUp; // only comparing xDiff // compare which is greater against yDiff to determine whether left/right or up/down e.g. if (Math.abs( xDiff ) > Math.abs( yDiff )) if (Math.abs( xDiff ) > 0) { if ( xDiff > 0 ) { // swipe left methods.scroll(false); } else { //swipe right methods.scroll(true); } } /* reset values */ this.xDown = null; this.yDown = null; canNavigate = true; } }, /****************************** Utility Functions *******************************/ getCurrentItemWidth: function() { return (object.parent().width())/itemsVisible; }, offsetItemsToBeginning: function(number) { if(typeof number === 'undefined') { number = 1 } for(var i = 0; i < number; i++) { object.children().last().insertBefore(object.children().first()); } }, offsetItemsToEnd: function(number) { if(typeof number === 'undefined') { number = 1 } for(var i = 0; i < number; i++) { object.children().first().insertAfter(object.children().last()); } }, offsetSliderPosition: function(reverse) { var left = parseInt(object.css('left').replace('px', '')); if (reverse) { left = left - itemsWidth * itemsToScroll; } else { left = left + itemsWidth * itemsToScroll; } object.css({ 'left': left }); }, getOffsetPosition: function() { return parseInt(object.css('left').replace('px', '')); }, calculateNonInfiniteLeftScroll: function(toScroll) { methods.clearDisabled(); if(methods.getOffsetPosition() + toScroll >= 0) { $(settings.navigationTargetSelector).find(".nbs-flexisel-nav-left").addClass('disabled'); return 0; } else { return methods.getOffsetPosition() + toScroll; } }, calculateNonInfiniteRightScroll: function(toScroll){ methods.clearDisabled(); var negativeOffsetLimit = (itemCount * itemsWidth) - (itemsVisible * itemsWidth); if(methods.getOffsetPosition() - toScroll <= -negativeOffsetLimit) { $(settings.navigationTargetSelector).find(".nbs-flexisel-nav-right").addClass('disabled'); return -negativeOffsetLimit; } else { return methods.getOffsetPosition() - toScroll; } }, setAutoplayInterval: function(){ autoPlayInterval = setInterval(function() { if (canNavigate) { methods.scroll(false); } }, settings.autoPlay.interval); }, clearDisabled: function() { var parent = $(settings.navigationTargetSelector); parent.find(".nbs-flexisel-nav-left").removeClass('disabled'); parent.find(".nbs-flexisel-nav-right").removeClass('disabled'); } }; if (methods[options]) { // $("#element").pluginName('methodName', 'arg1', 'arg2'); return methods[options].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof options === 'object' || !options) { // $("#element").pluginName({ option: 1, option:2 }); return methods.init.apply(this); } else { $.error( 'Method "' + method + '" does not exist in flexisel plugin!'); } };})(jQuery); });
The 40"x40"Macaw Flight Cage is ideal forMacaws and other same-sized birds.
Product Highlights:
- • Bird-proof front door and feeder doors
• Horizontal side bars, vertical bars front & back
• Front door safety latch
• 4 swing-down feeder doors
• 4 stainless steel feeder cups & 2 wood perches
• 2 breeder doors
• Large front doors for easy access
• Slide-out grill & tray for easy cleaning
• 4 easy rolling casters
• Non-toxic, durable, and safe powder-coated finish
Summary:
This open-top, elegant-styled flight cage is best if you want your bird to have plenty of room to fly around. Its size and enclosure suit larger birds with long tails and wide wingspans like a macaw.
Aside from allowing your bird to fly freely without damaging their wing feathers or tail, the cage is also durable with sturdy bars, making it your best option for a heavy chewer like a macaw. A space that gives your feathered friend the freedom of movement is healthy since it will encourage your bird to move or fly.
Furthermore, the drop-down drawbridge-style door is one of the cage's remarkable features. Not to mention that the cage includes stainless steel feeder cups, a slide-out grill and tray, providing easy maintenance. It even has a bottom shelf making food, cleaning supplies, and cage cover storage more convenient.
Key Specifications:
| Technical Details:
|
Available in these beautiful colors:
![]() | ![]() | ||
Platinum | Black |
Shipping Details:
- Allow 3 days for processing.
- Ships freight.