common.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. function PageTurn(config){
  2. var instance = this;
  3. var o = $.extend(true,{},config);
  4. var $pageWrap = $(o.element);
  5. var $list = $pageWrap.find('[data-page-role="list"] li');
  6. var $btnPrev = $pageWrap.find('.btn-page-prev');
  7. var $btnNext = $pageWrap.find('.btn-page-next');
  8. var $pageIndex = $pageWrap.find('.page-index');
  9. var $pageNum = $pageWrap.find('.page-num');
  10. var $txt = $pageWrap.find('.txt-page');
  11. this.len = $list.length;
  12. this.index = 0;
  13. this.pageNum = Math.ceil(this.len/o.showNum);
  14. PageTurn = function(){
  15. return instance;
  16. }
  17. var _renderPage = function(){
  18. $list.addClass("u-hide");
  19. for(var i=0; i<o.showNum && i<instance.len; i++){
  20. $list.eq(instance.index * o.showNum + i).removeClass("u-hide");
  21. }
  22. if (instance.index <= 0) {
  23. $btnPrev.addClass("is-disabled");
  24. } else {
  25. $btnPrev.removeClass("is-disabled");
  26. }
  27. if (instance.index >= instance.pageNum-1) {
  28. $btnNext.addClass("is-disabled");
  29. } else {
  30. $btnNext.removeClass("is-disabled");
  31. }
  32. $pageIndex.text(instance.index+1);
  33. }
  34. var _initEvent = function(){
  35. //上一页
  36. $pageWrap.on("click",'[data-page-role="nav"] .btn-page-prev',function(){
  37. var $this = $(this);
  38. if ($this.hasClass("is-disabled")) {
  39. return;
  40. }
  41. --instance.index;
  42. _renderPage();
  43. $txt.val("");
  44. })
  45. //下一页
  46. $pageWrap.on("click",'[data-page-role="nav"] .btn-page-next',function(){
  47. var $this = $(this);
  48. if ($this.hasClass("is-disabled")) {
  49. return;
  50. }
  51. ++instance.index;
  52. _renderPage();
  53. $txt.val("");
  54. })
  55. //跳转页
  56. $pageWrap.on("click",'[data-page-role="nav"] .btn-page-go',function(){
  57. var reg = /^\d*$/;
  58. var value = $pageWrap.find('[name="pageIndex"]').val();
  59. var $this = $(this);
  60. if (reg && !reg.test(value)) {
  61. return;
  62. }
  63. if ($this.hasClass("is-disabled")) {
  64. return;
  65. }
  66. if(value<=0 || value>instance.pageNum){
  67. return;
  68. }
  69. instance.index = value-1;
  70. _renderPage();
  71. })
  72. }
  73. var _init = function(){
  74. _initEvent();
  75. }
  76. _init();
  77. }
  78. function Select(config){
  79. var instance = this;
  80. var o = $.extend(true,{},config);
  81. var $select = $(o.element);
  82. Select = function(){
  83. return instance;
  84. }
  85. var _initEvent = function(){
  86. $select.on("click","dt",function(){
  87. var $this = $(this);
  88. var $parent = $this.parent();
  89. if ($parent.hasClass("is-open")){
  90. $parent.removeClass("is-open");
  91. } else {
  92. $parent.addClass("is-open");
  93. }
  94. });
  95. $select.on("click","dd",function(){
  96. var $this = $(this);
  97. var $parent = $this.parent();
  98. var sortBy = $this.attr("data-val");
  99. $parent.removeClass("is-open").find("dt span").text($this.text());
  100. o.callback && o.callback(sortBy);
  101. });
  102. $select.on("mouseleave",function(){
  103. $(this).removeClass("is-open");
  104. });
  105. }
  106. var _init = function(){
  107. _initEvent();
  108. }
  109. _init();
  110. }
  111. function getParam (name) {
  112. //先获取#后面的参数
  113. var str = document.location.hash.substr(2);
  114. var value = getParam2(name, str);
  115. if (value == null) {
  116. str = document.location.search.substr(1);
  117. value = getParam2(name, str);
  118. }
  119. return value;
  120. }
  121. function getParam2 (name, str) {
  122. //获取参数name的值
  123. var reg = new RegExp("(^|!|&|\\?)" + name + "=([^&]*)(&|$)");
  124. //再获取?后面的参数
  125. r = str.match(reg);
  126. if (r != null) {
  127. try {
  128. return decodeURIComponent(r[2]);
  129. } catch (e) {
  130. // console.log(e + "r[2]:" + r[2]);
  131. return null;
  132. }
  133. }
  134. return null;
  135. }
  136. function setCookie(key,val) {
  137. document.cookie = key+"="+val;
  138. }
  139. function getCookie(name) {
  140. var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  141. if(arr=document.cookie.match(reg))
  142. return unescape(arr[2]);
  143. else
  144. return null;
  145. }
  146. function checkPlatform(){
  147. var platform = navigator.platform;
  148. var os = 5;
  149. if (platform.indexOf("Mac") ==0 ) {
  150. os = 3;
  151. }
  152. if (platform.indexOf("Win") ==0 ) {
  153. os = 4;
  154. }
  155. if ((platform.indexOf("X11") ==0) || (platform.indexOf( "Linux") ==0)) {
  156. os = 5;
  157. }
  158. return os;
  159. }
  160. function _initHeziLink(heziType){
  161. $(".g-header ul a").each(function(i,e){
  162. $(e).attr("href",$(e).attr("href")+"?hezi="+heziType);
  163. });
  164. $(".mod-hot-game .link-more").attr("href","./simulatorGame.html?hezi="+heziType);
  165. $(".search-wrap form").append('<input name="hezi" type="hidden" value="'+heziType+'">')
  166. }
  167. //识别盒子类型lol,dnf默认lol
  168. function initHezi(heziType){
  169. var heziType = getParam("hezi");
  170. switch(heziType){
  171. case("dnf")://dnf盒子
  172. $("body").addClass("hezi-dnf");
  173. _initHeziLink(heziType);
  174. break;
  175. case("td")://天刀盒子
  176. _initHeziLink(heziType);
  177. break;
  178. case("tksj")://坦克世界盒子
  179. $("body").addClass("hezi-tksj");
  180. _initHeziLink(heziType);
  181. break;
  182. default :
  183. break;
  184. }
  185. }
  186. window.commonUtil = {
  187. PageTurn : PageTurn,
  188. Select : Select,
  189. getParam : getParam,
  190. setCookie : setCookie,
  191. getCookie : getCookie,
  192. checkPlatform : checkPlatform,
  193. initHezi : initHezi
  194. }