Lungo.Boot.Article.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * Initialize the <article> element
  3. *
  4. * @namespace Lungo.Boot
  5. * @class Article
  6. *
  7. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  8. * @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
  9. */
  10. Lungo.Boot.Article = (function(lng, undefined) {
  11. var ATTRIBUTE = lng.Constants.ATTRIBUTE;
  12. var ELEMENT = lng.Constants.ELEMENT;
  13. var SELECTORS = {
  14. LIST_IN_ARTICLE: 'article.list, aside.list',
  15. CHECKBOX_IN_ARTICLE: '.checkbox',
  16. ARTICLE_SCROLLABLE: 'article.scroll'
  17. };
  18. /**
  19. * Initializes the markup elements of an article
  20. *
  21. * @method init
  22. */
  23. var init = function() {
  24. _initElement(SELECTORS.LIST_IN_ARTICLE, _createListElement);
  25. _initElement(SELECTORS.CHECKBOX_IN_ARTICLE, _createCheckboxElement);
  26. _initElement(SELECTORS.ARTICLE_SCROLLABLE, _scrollFix)
  27. };
  28. var _initElement = function(selector, callback) {
  29. var found_elements = lng.dom(selector);
  30. for (var i = 0, len = found_elements.length; i < len; i++) {
  31. var element = lng.dom(found_elements[i]);
  32. lng.Core.execute(callback, element);
  33. }
  34. };
  35. var _createListElement = function(article) {
  36. if (article.children().length === 0) {
  37. var article_id = article.attr(ATTRIBUTE.ID);
  38. article.append(ELEMENT.LIST);
  39. }
  40. };
  41. var _createCheckboxElement = function(checkbox) {
  42. checkbox.append(ELEMENT.SPAN);
  43. };
  44. var _scrollFix = function(article) {
  45. console.error('_scrollFix', article[0]);
  46. article[0].addEventListener('touchstart', function(event){
  47. startY = event.touches[0].pageY;
  48. scrollTop = this.scrollTop;
  49. if(scrollTop <= 0)
  50. this.scrollTop = 1;
  51. if(scrollTop + this.offsetHeight >= this.scrollHeight)
  52. this.scrollTop = this.scrollHeight - this.offsetHeight - 1;
  53. }, false);
  54. };
  55. return {
  56. init: init
  57. };
  58. })(Lungo);