jquery.gallary.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. (function ($) {
  2. 'use strict';
  3. $.fn.gallery = function(option) {
  4. // console.log(this);
  5. var defaults = {
  6. current: 0
  7. };
  8. return this.each(function(){
  9. var $gallery = $(this);
  10. var $galleryitems = $gallery.children();
  11. var options = $.extend(defaults, option); // переопределяем настройки по дефолту
  12. $gallery.addClass('gallary');
  13. $galleryitems.addClass('gallary-item');
  14. $galleryitems.eq(options.current).addClass('current');
  15. $galleryitems.eq(1).addClass('current'); // берет элемент в наборе и показывает его
  16. $gallery.attr('tabindex', 0);
  17. var maxH = $($galleryitems[0]).height();
  18. for (var i=0; i < $galleryitems.length; i++) {
  19. if($($galleryitems[i]).height() < maxH ) maxH = $($galleryitems[i]).height();
  20. }
  21. $gallery.height(maxH + 'px');
  22. $gallery.on('keyup', function(event) {
  23. var $currentItem = $('.current', $gallery);
  24. if (event.which === 39) {
  25. console.log('go r');
  26. var next = $currentItem.index() + 1;
  27. if (next === $galleryitems.length) next = 0;
  28. }else if(event.which === 37) {
  29. console.log('go l');
  30. var next = $currentItem.index() - 1;
  31. if (next === $galleryitems.length) next = 0;
  32. }
  33. $galleryitems.removeClass('current').eq(next).addClass('current'); //удали нашли следующего и добавили
  34. })
  35. });
  36. }
  37. })(jQuery);