{"version":3,"sources":["webpack:///webpack/bootstrap 7ff1e45421ec1f294ffe","webpack:///./index.js","webpack:///./static/js/scrollLoading.js","webpack:///./static/js/common.js","webpack:///./static/js/main.js","webpack:///./static/js/carousel.js","webpack:///./static/css/iconfont.css","webpack:///./static/css/colorbox.css","webpack:///./static/css/jo-index.css","webpack:///./static/css/jo-reset.css"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA;;AAEA,mBAAO,CAAC,CAA8B;AACtC,mBAAO,CAAC,CAAuB;AAC/B,mBAAO,CAAC,CAAqB;AAC7B,mBAAO,CAAC,CAAyB;;AAEjC,mBAAO,CAAC,CAA2B;AACnC,mBAAO,CAAC,CAA2B;AACnC,mBAAO,CAAC,CAA2B;AACnC,mBAAO,CAAC,CAA2B;;;;;;;;;;ACVnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,I;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR,sBAAsB;AACtB;AACA,SAAS;AACT,Q;AACA,OAAO;AACP;AACA;AACA;AACA,sB;AACA;AACA;AACA,IAAI,E;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,U;;;;;;AChGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,CAAC;;;;;;;ACVD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,WAAW;AACX,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE,kCAAkC,mBAAmB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,sDAAsD,mDAAmD;;AAEzG;AACA,mCAAmC;AACnC;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;;AAEP;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kEAAkE;AACxG,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,UAAU;AACV,SAAS;AACT;AACA;AACA,UAAU;AACV;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;ACnnBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;;AAGA,eAAe;;AAEf,iCAAiC;AACjC,6CAA6C;AAC7C,6CAA6C;AAC7C,kCAAkC;AAClC,oCAAoC;AACpC,+DAA+D;;AAE/D,gBAAgB;AAChB,iBAAiB;AACjB,eAAe;AACf,qBAAqB;AACrB,eAAe;AACf,qBAAqB;AACrB;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,SAAS;AACT,cAAc,kBAAkB,yCAAyC;AACzE,cAAc,aAAa;AAC3B,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;;;AAIb;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mCAAmC;AAC1E;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,SAAS;;AAET;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;;AAGT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW,kBAAkB,SAAS,QAAQ,WAAW;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,0BAA0B;AAC1B;AACA,yBAAyB;AACzB,mDAAmD,wEAAwE,EAAE;AAC7H,oDAAoD,wEAAwE,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,4CAA4C;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,qEAAqE;AAC9F;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAA8E;AACvG;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACj6CA,yC;;;;;;ACAA,yC;;;;;;ACAA,yC;;;;;;ACAA,yC","file":"1.0.3743/js/journal-web.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7ff1e45421ec1f294ffe","// 打包入口文件\r\n\r\nrequire('./static/js/scrollLoading.js');\r\nrequire('./static/js/common.js');\r\nrequire('./static/js/main.js');\r\nrequire('./static/js/carousel.js');\r\n\r\nrequire('./static/css/iconfont.css');\r\nrequire('./static/css/colorbox.css');\r\nrequire('./static/css/jo-index.css');\r\nrequire('./static/css/jo-reset.css');\r\n\r\n\r\n\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","(function($) {\n\t$.fn.scrollLoading = function(options) {\n\t\tvar defaults = {\n\t\t\tattr: \"data-url\",\n\t\t\tcontainer: $(window),\n\t\t\tcallback: $.noop\n\t\t};\n\t\tvar params = $.extend({}, defaults, options || {});\n\t\tparams.cache = [];\n\t\t$(this).each(function() {\n\t\t\tvar node = this.nodeName.toLowerCase(), url = $(this).attr(params[\"attr\"]);\n\t\t\t//重组\n\t\t\tvar data = {\n\t\t\t\tobj: $(this),\n\t\t\t\ttag: node,\n\t\t\t\turl: url\n\t\t\t};\n\t\t\tparams.cache.push(data);\n\t\t});\n\t\t\n\t\tvar callback = function(call) {\n\t\t\tif ($.isFunction(params.callback)) {\n\t\t\t\tparams.callback.call(call.get(0));\n\t\t\t}\n\t\t};\n\n\t\t//动态显示数据\n\t\tvar loading = function() {\n\t\t\t\n\t\t\tvar contHeight = params.container.height();\n\t\t\tif ($(window).get(0) === window) {\n\t\t\t\tcontop = $(window).scrollTop();\n\t\t\t} else {\n\t\t\t\tcontop = params.container.offset().top;\n\t\t\t}\t\t\n\t\t\t\n\t\t\t$.each(params.cache, function(i, data) {\n\t\t\t\tvar o = data.obj, tag = data.tag, url = data.url, post, posb;\n\n\t\t\t\tif (o) {\n\t\t\t\t\tpost = o.offset().top - contop;\n\t\t\t\t\tposb = post + o.height();\n\t\n\t\t\t\t\tif (o.is(':visible') && (post >= 0 && post < contHeight) || (posb > 0 && posb <= contHeight)) {\n\t\t\t\t\t\tif (url) {\n\t\t\t\t\t\t\t//在浏览器窗口内\n\t\t\t\t\t\t\tif (tag === \"img\") {\n\t\t\t\t\t\t\t\t//图片,改变src\n\t\t\t\t\t\t\t\tcallback(o.attr(\"src\", url));\n\t\t\t\t\t\t\t\to.load(function(){\n\t\t\t\t\t\t\t\t\t//o.css('background','#fff');\n\t\t\t\t\t\t\t\t\to.css('background','');\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\to.load(url, {}, function() {\n\t\t\t\t\t\t\t\t\tcallback(o);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// 无地址,直接触发回调\n\t\t\t\t\t\t\tcallback(o);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdata.obj = null;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\t\n\t\t};\n\n\t\tvar throttle = function(fn, interval){\n\t\t\tvar _self = fn,\n\t\t\t\ttimer,\n\t\t\t\tfirstTime = true;\n\t\t\treturn function(){\n\t\t\t\tvar args = arguments,\n\t\t\t\t\t_this = this;\n\t\t\t\tif(firstTime){\n\t\t\t\t\t_self.apply(_this,args);\n\t\t\t\t\treturn firstTime = false;\n\t\t\t\t}\n\t\t\t\tif(timer){\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\ttimer = setTimeout(function(){\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = null;\n\t\t\t\t\t_self.apply(_this,args);\n\t\t\t\t},interval || 500);\n\t\t\t}\n\t\t}\n\t\t\n\t\t//事件触发\n\t\t//加载完毕即执行\n\t\tloading();\n\t\t//滚动执行\n params.container.bind(\"scroll\", throttle(loading,100));\n\t};\n})(jQuery);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/js/scrollLoading.js\n// module id = 1\n// module chunks = 0","//全局\r\n(function () {\r\n\tvar common = window.Common = window.Common || {\r\n\t\t//\t选项卡部分选中时的背景色\r\n\t\t\ttabActiveBackground: '#F8AF2D',\r\n\t\t\ttabActiveColor: '#333',\r\n\t\t\tpublicPath: '../../../images/',\r\n\t\t//\t所有的全局变量都放在module集合\r\n module: {},\r\n\t\t}\r\n})();\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/js/common.js\n// module id = 2\n// module chunks = 0","(function ($, win) {\r\n\r\n// 参数传递,封在当前js对象\r\n function main() {\r\n }\r\n\r\n main.prototype = {\r\n constructor: main,\r\n init: function () {\r\n var _self = this;\r\n _self.bindEvents();\r\n },\r\n bindEvents: function () {\r\n var _self = this;\r\n -_self.forbiddenFontSize();\r\n _self.generateCode();\r\n _self.keywordLinks();\r\n // _self.headerEn2Cn();\r\n _self.tabsSwitch();\r\n _self.authorPopup();\r\n // _self.authorClick();\r\n _self.scrollUpFixed();\r\n _self.copyQuote();\r\n _self.inlineFnClick();\r\n //_self.navClick();\r\n _self.setSide();\r\n _self._arNavWidth();\r\n _self.scrollToUp(100);\r\n _self.resize();\r\n _self.authorIsEmpty();\r\n },\r\n// 引文复制\r\n copyQuote: function () {\r\n var cnCopy = new ClipboardJS('#jo-copy-cn-quote');\r\n cnCopy.on('success', function (e) {\r\n\t layer.msg('引文内容复制成功', {\r\n\t\t offset: 't',\r\n\t\t anim: 0\r\n\t });\r\n });\r\n var enCopy = new ClipboardJS('#jo-copy-en-quote');\r\n enCopy.on('success', function (e) {\r\n\t layer.msg('引文内容复制成功', {\r\n\t\t offset: 't',\r\n\t\t anim: 0\r\n\t });\r\n });\r\n\r\n var allQuotes = '';\r\n $('.jo-copy-btn').each(function () {\r\n if($(this).attr('data-clipboard-text')&& $(this).attr('data-clipboard-text')!=''){\r\n allQuotes = allQuotes+$(this).attr('data-clipboard-text')+'\\n';\r\n }\r\n });\r\n $('.copy-quote-btn').each(function () {\r\n $(this).attr('data-clipboard-text',allQuotes);\r\n var allCopy = new ClipboardJS(this);\r\n var _this = this;\r\n allCopy.on('success', function (e) {\r\n e.clearSelection();\r\n var posNode = $('#jo-header');\r\n var top = $(_this).offset().top - $(window).scrollTop()+30;\r\n var left = posNode.width()-270;\r\n layer.msg('引文信息已复制,您可以直接黏贴', {\r\n offset: [top,left],\r\n anim: 0\r\n });\r\n });\r\n allCopy.on('error', function (e) {\r\n var sUserAgent = navigator.userAgent;\r\n if(sUserAgent.indexOf('Linux') > -1 && e.text!=='' && e.text!=='undefined'){\r\n var posNode = $('#jo-header');\r\n var top = $(_this).offset().top - $(window).scrollTop()+30;\r\n var left = posNode.width()-270;\r\n layer.msg('引文信息已复制,您可以直接黏贴', {\r\n offset: [top,left],\r\n anim: 0\r\n });\r\n }\r\n });\r\n });\r\n },\r\n\r\n// 1、首先执行选项卡效果\r\n tabsSwitch: function () {\r\n var _self = this;\r\n\r\n // 默认article active,且前景色为黑色\r\n $('#tabArticle').addClass('jo-active');\r\n $('#tabArticle').removeClass('jo-hover');\r\n $('#tabArticle a').css({\r\n 'color': '#00a2af'\r\n });\r\n\r\n // 更换左边图标,向下箭头图标显示,字体颜色变化\r\n $('#jo-tabs-content').delegate('li', 'click', function (e) {\r\n\r\n //滚动页面归位\r\n $(window).scrollTop(0);\r\n $('#jo-scroll-nav').scrollTop(0);\r\n\r\n //将该选项卡设置为active,并且移除其余的tab的active状态\r\n $(this).siblings().removeClass('jo-active');\r\n $(this).addClass('jo-active');\r\n //删除hover效果\r\n $(this).siblings().addClass('jo-hover');\r\n $(this).removeClass('jo-hover');\r\n //设置文字颜色为active\r\n // $(this).siblings().find('a').css({'color': '#6b6b6b'});\r\n // $(this).find('a').css({'color': '#00a2af'});\r\n\r\n //左侧图标更换\r\n $('#jo-tabs-content').find('li').each(function () {\r\n var oId = $(this).attr('id');\r\n var oName = oId.substring(7, oId.length).toLowerCase();\r\n var src = Common.publicPath + oName + '.png';\r\n // console.log(src)\r\n $(this).children('img.jo-tab-icon').attr('src', src);\r\n });\r\n\r\n var oldId = $(this).attr('id');\r\n var name = oldId.substring(7, oldId.length).toLowerCase();\r\n var activeSrc = Common.publicPath + name + '-active.png';\r\n $(this).children('img.jo-tab-icon').attr('src', activeSrc);\r\n\r\n //下拉图标的显示和隐藏\r\n $('#jo-tabs-content').find('li').children('img.jo-tab-down-icon').css({\r\n 'visibility': 'hidden',\r\n 'display': 'none'\r\n });\r\n $(this).children('img.jo-tab-down-icon').css({'visibility': 'visible', 'display': 'inline-block'});\r\n\r\n // 正文部分对应内容切换(由固定序列改为对应id切换)\r\n // var i = $(this).index();//下标\r\n var showDivId = 'jo-main-' + oldId.split('-')[2]\r\n $('#' + showDivId).show().siblings().hide();\r\n // $('#jo-main').children('div').eq(4 - i).show().siblings().hide();\r\n });\r\n },\r\n\r\n// 作者有基本信息时弹出信息框,基本信息为空取消下拉框点击链接\r\n authorPopup: function () {\r\n var _self = this;\r\n $('.jo-top-author .jo-popup').each(function () {\r\n if($(this).find('p').length>=1){\r\n _self.authorClick($(this).prev());\r\n }\r\n else $(this).prev().find('a').css(\"cursor\",\"default\");\r\n })\r\n },\r\n\r\n// 2、作者下拉框\r\n authorClick: function (ele) {\r\n var _self = this;\r\n\r\n ele.delegate('a', 'click', function () {\r\n\r\n var type = $(this).attr('class');\r\n var upArrow = $('#arrow-for-author-popup');\r\n\r\n //点击的是作者名称,弹出详细信息提示框\r\n if (type && type.indexOf(\"jo-name-text\") >= 0) {\r\n var grandAuthor = $(this).parent().parent('li')\r\n\r\n //删除之前的active框\r\n grandAuthor.siblings().removeClass('jo-active');\r\n //设置该标签的爷爷标签(即包含了作者名称和邮件图标的父元素)状态为active\r\n grandAuthor.addClass('jo-active');\r\n //删除hover效果\r\n grandAuthor.siblings().addClass('jo-hover');\r\n grandAuthor.removeClass('jo-hover');\r\n\t\r\n\t\r\n\t var popup = $(this).parent().next();\r\n\t var bw = document.documentElement.clientWidth || document.body.clientWidth;\r\n\t var left = $(this).offset().left;\r\n\t if(bw < left + popup.width() && bw>=800){\r\n\t popup.css('right', '23px')\r\n }\r\n //隐藏所有提示框\r\n $('.jo-author-info').hide();\r\n //只弹出该作者下面的提示框\r\n\t popup.show();\r\n var top = popup.offset().top-5;\r\n upArrow.css({\r\n position: 'absolute',\r\n display: 'block',\r\n left: left+12,\r\n top: top,\r\n zIndex: 998\r\n });\r\n\r\n //手动关闭下拉框\r\n $('.jo-close').bind('click', function () {\r\n upArrow.hide();\r\n $('.jo-author-info').hide();\r\n $(this).parent().parent('li').removeClass('jo-active');\r\n });\r\n\r\n // 关闭按钮鼠标滑过效果\r\n $(\".jo-close\").hover(function () {\r\n $('.jo-close img').attr('src', Common.publicPath + 'close-hover.png');\r\n }, function () {\r\n $('.jo-close img').attr('src', Common.publicPath + 'close.png');\r\n });\r\n }else if (type && type.indexOf(\"jo-email\") >= 0){\r\n var email = $('#email-invisible').html();\r\n if (email) {\r\n window.location.href = 'mailto:' + email;\r\n }\r\n else {\r\n layer.alert(\"sorry,该通讯作者居然没有留下电子邮箱~\", {\r\n btn: \"我知道了\",\r\n offset: 't',\r\n closeBtn: 0,\r\n title: false,\r\n shadeClose: true\r\n });\r\n }\r\n }\r\n\r\n \r\n \r\n //点击的是作者右侧的email,则发送邮件,直接使用xml文档中的email标签发送邮件\r\n /*else if (type && type == \"jo-email\") {\r\n\r\n // 找到作者的通信信息\r\n var authorInfo = $(this).parents('div.jo-author-name').next('div.jo-author-info')\r\n var corres = authorInfo.find('div.jo-cor-info').find('p');\r\n console.log(corres);\r\n\r\n // 另一种xml:lang下的作者通信信息(防止只有一种语言下有邮箱信息)\r\n var li = authorInfo.parent('li');\r\n var otherMetaDiv = li.parent('.jo-top-author').parent().siblings('.jo-header-meta')\r\n var index = li.index();\r\n\r\n // 配置邮箱信息如不成功,找另外一个\r\n if (!_self._setEmail(this, corres)) {\r\n authorInfo = $(otherMetaDiv.find('.jo-top-author').find('li')[index]).find('.jo-author-info')\r\n corres = authorInfo.find('div.jo-cor-info').find('p');\r\n if (!_self._setEmail(this, corres)) {\r\n alert('抱歉,源文件中该作者没有有效邮箱信息,建议通过其他方式联系')\r\n }\r\n }\r\n }*/\r\n });\r\n //当下拉框失去焦点时,关闭\r\n $('body *').click(function (e) {\r\n // 触发该事件的直接元素\r\n var type = $(e.target);\r\n // 点击其他地方,悬浮框失去焦点隐藏,3种情况\r\n // 1、点击的不是作者名称;2、点击的不是悬浮框;3、点击的直接元素不是悬浮框内某一个子元素\r\n // console.log(type.className)\r\n if (!(type.hasClass(\"jo-name-text\"))\r\n && !(type.hasClass(\"jo-popup\")) && (type.parents().filter('.jo-fn-sup').length == 0)\r\n && (type.parents().filter('.jo-popup').length == 0)) {\r\n $('.jo-popup').hide();\r\n $('#arrow-for-author-popup').hide();\r\n $('.jo-top-author li').removeClass('jo-active');\r\n }\r\n\r\n if(!(type.hasClass('jo-refer-sup'))&&!(type.hasClass('jo-refer-info')) && !type.parents().hasClass('jo-refer-info')){\r\n\t \t$('.jo-refer-info').hide()\r\n\t $('.jo-down').hide()\r\n\t $('.jo-up').hide()\r\n\t }\r\n\r\n\t if(!type.hasClass('jo-fn-sup') && !type.parents().hasClass('jo-fn-sup') && !type.parents().hasClass('jo-fn-info') && !type.hasClass('jo-fn-info') ){\r\n\t\t $('.jo-fn-info').hide();\r\n\t\t $('.jo-fn-down').hide();\r\n $('.jo-fn-up').hide();\r\n\t }\r\n });\r\n\r\n },\r\n\r\n// 3、正文导航点击效果\r\n navClick: function () {\r\n var _self = this;\r\n // 引用active类\r\n $('#jo-article-nav').delegate('li', 'click', function (event) {\r\n //将该选项卡设置为active,并且移除其余的tab的active状态\r\n $(this).siblings().removeClass('jo-nav-active');\r\n $(this).addClass('jo-nav-active');\r\n });\r\n },\r\n\r\n// 4、滚动左侧nav时,阻止窗体正文部分滚动\r\n scrollUpFixed: function () {\r\n\t\t\t// 滚动左侧nav时,阻止窗体正文部分滚动\r\n $('#jo-scroll-nav').scrollUnique();\r\n },\r\n\r\n// 5、滚动后点击顶部按钮,返回顶部;鼠标滑过效果\r\n scrollToUp: function (time) {\r\n var _self = this;\r\n\r\n $(\"#jo-up-btn\").click(function (e) {\r\n $('body, html').animate({\r\n scrollTop: 0\r\n }, time);\r\n\r\n var scrollNav = $('#jo-scroll-nav');\r\n if(scrollNav.css('display')!=='none'){\r\n scrollNav.animate({\r\n scrollTop: 0\r\n }, time);\r\n setTimeout(function () {\r\n var curNode = scrollNav.find('.jo-nav-active');\r\n if (curNode.length!==0 && curNode[0]!==scrollNav.children()[0]){\r\n curNode.removeClass('jo-nav-active');\r\n scrollNav.children()[0].classList.add('jo-nav-active');\r\n }\r\n },200);\r\n }\r\n });\r\n },\r\n\r\n// 6、为关键词添加链接\r\n keywordLinks: function () {\r\n var _self = this;\r\n\r\n var keyAs = $('.jo-keywords-content').find('a');\r\n\r\n $.each(keyAs, function (index, item) {\r\n var url = 'https://xueshu.baidu.com/s?wd=' + $(item).text();\r\n $(item).attr('href', url);\r\n });\r\n\r\n },\r\n\r\n// 8、中英文标题机构作者切换\r\n headerEn2Cn: function () {\r\n var isCn = true;\r\n\r\n $('.jo-published').delegate('a', 'click', function (event) {\r\n var $articleMeta = $(this).parent().parent();\r\n var metaClass = $articleMeta.attr('class')\r\n\r\n if (metaClass.indexOf('cn') >= 0) {\r\n isCn = false;\r\n $('.jo-zh-article-meta').hide();\r\n $('.jo-en-article-meta').show();\r\n } else if (metaClass.indexOf('en') >= 0) {\r\n isCn = true;\r\n $('.jo-en-article-meta').hide();\r\n $('.jo-zh-article-meta').show();\r\n }\r\n });\r\n },\r\n\r\n // 9、窗体大小发生变化\r\n resize: function () {\r\n var _self = this;\r\n $(window).resize(function () {\r\n _self.setSide();\r\n _self._arNavWidth();\r\n })\r\n },\r\n\r\n // 10、生成二维码\r\n generateCode: function () {\r\n\r\n var pdf = $('#jo-qrcode-forum').attr('data-uri');\r\n var render = \"canvas\";\r\n if (navigator.userAgent.indexOf('MSIE')>-1){\r\n render = \"table\"\r\n }\r\n if (pdf) {\r\n $('#jo-qrcode-forum').qrcode({render: render, height: 80, width: 80, correctLevel: 0, text: pdf});\r\n } else {\r\n $('#jo-qrcode-forum').hide();\r\n }\r\n\r\n var href = window.location.href;\r\n if (href === null || href === undefined) {\r\n console.log(window.location);\r\n debugger\r\n href = window.location.protocol + \"//\" + window.location.host + window.location.pathname;\r\n }\r\n $('#jo-qrcode-article').qrcode({\r\n render: render,\r\n height: 120,\r\n width: 120,\r\n correctLevel: 0,\r\n text: href\r\n });\r\n $('#jo-qrcode-article-big').qrcode({\r\n render: render,\r\n height: 300,\r\n width: 300,\r\n correctLevel: 0,\r\n text: href\r\n });\r\n },\r\n\r\n // 行内脚注链接\r\n inlineFnClick: function () {\r\n\t var screenW = window.screen.width;\r\n\t $('.jo-fn-sup').on('click', function (e) {\r\n var id = $(this).attr('data-uri');\r\n var left = Math.ceil($(this).offset().left);\r\n\t\t var top = Math.floor($(this).offset().top);\r\n\r\n var type = $('div#' + id)\r\n // if ($(this).parent().siblings().hasClass('jo-fn-info')) {\r\n // type = $(this).parent().siblings('#' + id);\r\n // } else {\r\n // type = $(this).parent().parent().siblings('#' + id);\r\n // }\r\n\r\n //隐藏所有提示框\r\n $('.jo-fn-info').hide();\r\n\t\t var downArrow = $('.jo-fn-down');\r\n\t\t var upArrow = $('.jo-fn-up');\r\n\r\n //设置绝对位置,并且只弹出该作者下面的提示框\r\n\t if(screenW<800){\r\n var deviceW = window.innerWidth;\r\n\t\t type.width(Math.floor(deviceW*0.9));// 第一个24是padding和border值,第二个20是左右margin值\r\n\t \tvar typeH = type.outerHeight(true);\r\n var infoTop = top - typeH - 5 - 5;\r\n if (infoTop < $(window).scrollTop()) {\r\n downArrow.hide();\r\n upArrow.css({\r\n // position: 'absolute',\r\n display: 'block',\r\n left: left -1,\r\n top: top+$(this).height()+3,\r\n zIndex: 998\r\n });\r\n infoTop = top+$(this).height()+upArrow.height();\r\n }else{\r\n upArrow.hide();\r\n downArrow.css({\r\n position:'absolute',\r\n display:'block',\r\n left:left,\r\n top:top-12 +6,\r\n zIndex: 998\r\n })\r\n }\r\n type.css({\r\n display:'block',\r\n left: 0,\r\n top: infoTop,\r\n marginLeft:Math.ceil(deviceW*0.02),\r\n marginRight:Math.ceil(deviceW*0.02)\r\n })\r\n\t }else{\r\n\t \ttype.width(450);\r\n\t\t var typeH = type.outerHeight(true);\r\n\t\t var typeTop = top-typeH-5 -5;\r\n var arrorTop = typeTop+typeH-1+5;\r\n if(typeTop < $(window).scrollTop()){\r\n typeTop = top + 24;\r\n arrorTop = typeTop-7;\r\n downArrow.hide();\r\n upArrow.css({\r\n position:'absolute',\r\n display:'block',\r\n left:left,\r\n top:arrorTop,\r\n zIndex:9999\r\n });\r\n }else {\r\n upArrow.hide();\r\n downArrow.css({\r\n position:'absolute',\r\n display:'block',\r\n left:left,\r\n top:arrorTop,\r\n zIndex:9999\r\n })\r\n }\r\n\t\t type.css({\r\n\t\t\t display:'block',\r\n\t\t\t top:typeTop\r\n\t\t });\r\n\r\n\t\t if(window.innerWidth-left >225){\r\n\t\t\t type.css({\r\n\t\t\t\t left:left-225\r\n\t\t\t })\r\n\t\t }else{\r\n\t\t\t type.css({\r\n\t\t\t\t left:window.innerWidth-500\r\n\t\t\t })\r\n\t\t }\r\n\r\n\t }\r\n\r\n // //手动关闭下拉框\r\n // $('.jo-close').bind('click', function () {\r\n // $('.jo-fn-info').hide();\r\n // });\r\n })\r\n },\r\n\r\n// 方法:找到字符串中的邮箱地址\r\n _findEmail: function (string) {\r\n\r\n // 第一种方法,正则\r\n var reg = /(\\w|_)+@(\\w)+((\\.\\w+)+)/;\r\n var email = reg.exec(string);\r\n if (email) {\r\n return email[0];\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n },\r\n // 方法:配置邮箱地址\r\n _setEmail: function (email, corres) {\r\n var _self = this;\r\n var href = _self._findEmail($(corres).text());\r\n if (href) {\r\n $(email).attr('href', 'mailto:' + href);\r\n console.log(href)\r\n return true\r\n } else {\r\n return false\r\n }\r\n },\r\n // 左侧导航栏的宽度\r\n _arNavWidth: function () {\r\n var wth = 0.17 * $('#jo-main-article').width();\r\n $('#jo-scroll-nav').css('width', wth + 20)\r\n $('#jo-article-nav').css('width', wth)\r\n var item1 = 0.985 * wth\r\n $('.jo-nav-item-1').css('width', item1)\r\n var item2 = 0.985 * wth - 20\r\n $('.jo-nav-item-2').css('width', item2)\r\n\r\n },\r\n // 设置右侧侧边栏\r\n setSide: function () {\r\n try{\r\n var aside = document.getElementById('jo-article-aside')\r\n var asideW = aside ? aside.offsetWidth : 0\r\n // var bw = document.documentElement.clientWidth || document.body.clientWidth\r\n var bw = document.getElementById('jo-body-div').offsetWidth //兼容iframe下的宽度计算\r\n document.getElementById('jo-content').style.width = ( bw - asideW ) + 'px'\r\n // console.log('asideW:',asideW,'bw',bw,bw - asideW)\r\n }catch(err){\r\n console.log('咦?aside??')\r\n }\r\n\r\n },\r\n //作者标签页信息是否为空\r\n authorIsEmpty:function () {\r\n $('#jo-main-author dd').each(function () {\r\n if ((!$(this).find('.dd-zh') || $(this).find('.dd-zh').length===0)&&\r\n (!$(this).find('.dd-en') || $(this).find('.dd-en').length===0)){\r\n if ($(\"#main-wrapper\").hasClass('jo-en-article')){\r\n $(this).append(\"

no English information about the author

\")\r\n }\r\n else {\r\n $(this).append(\"

无详细中文作者信息

\");\r\n }\r\n }\r\n })\r\n },\r\n\r\n // 微信浏览器禁止改变字体大小\r\n forbiddenFontSize: function () {\r\n if (typeof WeixinJSBridge == \"object\" && typeof WeixinJSBridge.invoke == \"function\") {\r\n handleFontSize();\r\n } else {\r\n if (document.addEventListener) {\r\n document.addEventListener(\"WeixinJSBridgeReady\", handleFontSize, false);\r\n } else if (document.attachEvent) {\r\n document.attachEvent(\"WeixinJSBridgeReady\", handleFontSize);\r\n document.attachEvent(\"onWeixinJSBridgeReady\", handleFontSize);\r\n }\r\n }\r\n\r\n function handleFontSize() {\r\n // 设置网页字体为默认大小\r\n WeixinJSBridge.invoke('setFontSizeCallback', {\r\n 'fontSize': 0\r\n });\r\n // 重写设置网页字体大小的事件\r\n WeixinJSBridge.on('menu:setfont', function () {\r\n WeixinJSBridge.invoke('setFontSizeCallback', {\r\n 'fontSize': 0\r\n });\r\n });\r\n }\r\n }\r\n\r\n }\r\n Common.module[\"main\"] = main;\r\n})(jQuery, window);\r\n\r\n$(function () {\r\n new Common.module.main().init();\r\n})\r\n\r\n\r\n// 子元素滚动时阻止父元素的默认滚动行为\r\n$.fn.scrollUnique = function () {\r\n return $(this).each(function () {\r\n var eventType = 'mousewheel';\r\n // navigator.userAgent.indexOf(\"Firefox\") > -1\r\n // document.mozHidden !== undefined\r\n if (navigator.userAgent.indexOf(\"Firefox\") > -1) {\r\n eventType = 'DOMMouseScroll';\r\n }\r\n // console.log(eventType)\r\n $(this).on(eventType, function (event) {\r\n // 一些数据\r\n var scrollTop = this.scrollTop,\r\n scrollHeight = this.scrollHeight,\r\n height = this.clientHeight;\r\n\r\n var delta = (event.originalEvent.wheelDelta) ? event.originalEvent.wheelDelta : -(event.originalEvent.detail || 0);\r\n\r\n if ((delta > 0 && scrollTop <= delta) || (delta < 0 && scrollHeight - height - scrollTop <= -1 * delta)) {\r\n // IE浏览器下滚动会跨越边界直接影响父级滚动,因此,临界时候手动边界滚动定位\r\n this.scrollTop = delta > 0 ? 0 : scrollHeight;\r\n // 向上滚 || 向下滚\r\n event.preventDefault();\r\n }\r\n });\r\n });\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/js/main.js\n// module id = 3\n// module chunks = 0","window.onload = function () {\r\n var userAgent = navigator.userAgent;\r\n checkVersion();\r\n\r\n var screenW = window.screen.width;\r\n var cWrap = document.getElementById('jo-container-wrap');\r\n var container = document.getElementById('jo-container');\r\n var cLists = document.getElementsByClassName('jo-c-list');\r\n var num = document.getElementsByClassName(\"jo-c-list\").length;\r\n var flag = true;\r\n var bw = document.documentElement.clientWidth || document.body.clientWidth;\r\n var tempWinWidth = window.innerWidth;\r\n var isNavClicked = false;// 全局变量isNavClicked用于控制导航的点击事件不受滚动事件影响\r\n var isMobile = isMobile();\r\n var deviceDPI = getDeviceDPI();\r\n\r\n var bannerJSON = null;\r\n var bannerRadio = 0.0;\r\n var bannerImage = null;\r\n\r\n\r\n setFrame(); // 框架设置\r\n\r\n MMtoPX($('.jo-td-img'), 1.0); // 表格单元格内图片宽度设置\r\n MMtoPX($('.jo-formula-pic-disp-d'), 1.2); // 块级 图片类公式宽度设置\r\n MMtoPX($('.jo-formula-pic-inline'), 1.0); // 内联 正文文本中:内联图片类公式宽度设置\r\n MMtoPX($('.jo-fig-img'), 1.6); // 正文图片,由于图片尺寸比原来的50%小了很多,采用width*1.6效果较好\r\n MMtoPX($('.jo-group-img'), 1.0); // 正文组图图片\r\n MMtoPX($('.jo-table-wrapper .jo-formula-pic-inline'), 1.2); // 内联 表格内的内联图片类宽度设置\r\n\r\n tabFigure(); // 点击图表tab页,触发轮播图相关方法\r\n toggleLang(); // 摘要、关键词中英文切换\r\n popRefer(); // 正文中弹出参考文献\r\n toArticleTable();//正文点击图表标签\r\n navClick();//导航点击高亮\r\n dealRepeatName();//处理一人多角色\r\n setGroupImgNote();\r\n\r\n //window.onscroll= throttle(highLightNav,100);//导航滚动高亮\r\n // 初始化布局\r\n if (isMobile) {\r\n resetLayout();\r\n }\r\n else {\r\n //web端增加banner\r\n loadBannerImage();\r\n }\r\n /*\r\n window.onscroll = throttle(function() {\r\n // 重置内容布局\r\n resetLayout();\r\n // 导航滚动高亮\r\n highLightNav();\r\n }, 100)\r\n */\r\n\r\n window.onscroll = function (e) {\r\n // 重置内容布局\r\n resetLayout();\r\n // 导航滚动高亮,移动端没有导航条\r\n highLightNav();\r\n };\r\n\r\n if (isMobile) {\r\n //移动端横竖屏切换\r\n bindOrientationChangeEvent();\r\n\r\n /*移动端页面切换时重新设置表格大小*/\r\n document.addEventListener(\"visibilitychange\", function () {\r\n if (document.visibilityState==='visible'){\r\n setTimeout(function () {\r\n if (window.orientation === 180 || window.orientation === 0) {\r\n setTable(0);\r\n }\r\n if (window.orientation === 90 || window.orientation === -90) {\r\n setTable(1);\r\n }\r\n },1000);\r\n }\r\n })\r\n }\r\n else {\r\n //PC端窗口大小变化\r\n var oldInnerWinHeight = window.innerHeight;\r\n window.onresize = function () {\r\n var newInnerWinHeight = window.innerHeight;\r\n if (newInnerWinHeight != oldInnerWinHeight) {\r\n $(\"#jo-article-nav\").height($(\"#jo-article-nav\").height() + newInnerWinHeight - oldInnerWinHeight);\r\n resetLayout();\r\n }\r\n if($('#jo-main-article').css('display')==='block' && !isMobile){\r\n setGroupImgNote();\r\n setTableNote();\r\n }\r\n bw = document.documentElement.clientWidth || document.body.clientWidth;\r\n\r\n $('.jo-refer-info').hide();\r\n $('.jo-down').hide();\r\n $('.jo-up').hide();\r\n }\r\n }\r\n\r\n $(\".jo-lazyload\").scrollLoading(); // 图片懒加载\r\n\r\n // 处理定理相关内容\r\n $('#jo-article-text .jo-name-content').each(function () {\r\n $(this).parent().addClass('jo-name-p')\r\n });\r\n\r\n // 正文公式配置\r\n MathJax.Hub.Config({\r\n \"HTML-CSS\": {\r\n availableFonts: [\"STIX\", \"TeX\"],\r\n preferredFont: \"STIX\",\r\n webFont: \"STIX-Web\",\r\n imageFont: null,\r\n matchFontHeight: false,\r\n noReflows: false,\r\n linebreaks: {automatic: false},\r\n },\r\n TeX: {equationNumbers: {autoNumber: [\"none\"], useLabelIds: true}},\r\n SVG: {linebreaks: {automatic: false}}\r\n });\r\n\r\n // 正文公式重新渲染,修改padding值,防止重叠,现在情况是会导致与正文的重叠,因此注释掉\r\n //MathJax.Hub.Queue(repaintFormula);\r\n // 确保公式渲染完之后,再设置表格\r\n MathJax.Hub.Queue(setTable);\r\n\r\n //判断移动端/PC端\r\n function isMobile() {\r\n var sUserAgent = navigator.userAgent.toLowerCase();\r\n var bIsIpad = sUserAgent.match(/ipad/i) == \"ipad\";\r\n var bIsIphoneOs = sUserAgent.match(/iphone os/i) == \"iphone os\";\r\n var bIsMidp = sUserAgent.match(/midp/i) == \"midp\";\r\n var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == \"rv:1.2.3.4\";\r\n var bIsUc = sUserAgent.match(/ucweb/i) == \"ucweb\";\r\n var bIsAndroid = sUserAgent.match(/android/i) == \"android\";\r\n var bIsCE = sUserAgent.match(/windows ce/i) == \"windows ce\";\r\n var bIsWM = sUserAgent.match(/windows mobile/i) == \"windows mobile\";\r\n\r\n if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n // 处理作者tab页,一个人对应多个角色的情况\r\n function dealRepeatName() {\r\n var nameArr = [];\r\n var authorNodes = $('#jo-main-author .jo-dt-name');\r\n authorNodes.each(function () {\r\n var name = $(this).text();\r\n var index = nameArr.indexOf(name);\r\n if (index === -1) {\r\n nameArr.push($(this).text())\r\n } else {\r\n var ddNode = $(authorNodes[index]).next('dd');\r\n var repeatZhName = $(this).next('dd').find('p.jo-role-type.dd-zh').find('.jo-role-content');\r\n var repeatEnName = $(this).next('dd').find('p.jo-role-type.dd-en').find('.jo-role-content');\r\n var sign = $('');\r\n var signEN = $('');\r\n\r\n // 添加角色\r\n ddNode.find('p.jo-role-type.dd-zh').append(sign).append(repeatZhName);\r\n ddNode.find('p.jo-role-type.dd-en').append(signEN).append(repeatEnName);\r\n\r\n // 移除重复的人物节点\r\n $(this).next('dd').remove();\r\n $(this).remove()\r\n }\r\n })\r\n }\r\n\r\n // 导航点击高亮\r\n function navClick() {\r\n $('#jo-article-nav').delegate('li', 'click', function () {\r\n isNavClicked = true;\r\n //将该选项卡设置为active,并且移除其余的tab的active状态\r\n $(this).siblings().removeClass('jo-nav-active');\r\n $(this).addClass('jo-nav-active');\r\n var nodeA = $(this).children('a');\r\n var secId = nodeA.attr('name').substring(1);\r\n var top = parseInt($('#' + secId).offset().top);\r\n $(document).scrollTop(top);\r\n setTimeout(function () {\r\n isNavClicked = false;\r\n }, 500)// 设置定时器,为了使滚动事件不受点击事件的影响\r\n\r\n });\r\n }\r\n\r\n // 导航滚动高亮\r\n function highLightNav() {\r\n if (isNavClicked) return;\r\n\r\n var nav = $(\"#jo-article-nav\");\r\n if (nav.css(\"display\") == \"none\") return;\r\n\r\n var docTop = $(document).scrollTop();\r\n var hrefId = undefined;\r\n var titles = $('.jo-title-anchor');\r\n titles.each(function () {\r\n var titleTop = $(this).offset().top;\r\n if (docTop > titleTop - 10) {\r\n var anchor = $(this).siblings('a');\r\n if (!anchor.length) {\r\n anchor = $(this).children('a') // 用于摘要和关键词\r\n }\r\n hrefId = '#' + anchor.attr('id');\r\n }\r\n else {\r\n return false\r\n }\r\n });\r\n\r\n var curNav = nav.find('.jo-nav-active');\r\n var articleNav = nav.find('[name=\"' + hrefId + '\"]').parent();\r\n if (hrefId && curNav.children('a').attr('href') !== hrefId) {\r\n curNav.removeClass('jo-nav-active');\r\n articleNav.addClass('jo-nav-active')\r\n }\r\n\r\n // 判断导航条内是否需要自动滚动,确保选中条目在可视范围内\r\n if (articleNav && articleNav.length > 0) {\r\n var navItemtop = articleNav.position().top;\r\n var navItemHeight = articleNav.height();\r\n var navItemBottom = navItemtop + navItemHeight + 20;\r\n\r\n var scrollNav = $('#jo-scroll-nav');\r\n var navScrollPos = scrollNav.scrollTop();\r\n if (navItemBottom >= $(window).height()) {\r\n scrollNav.scrollTop(navScrollPos + navItemHeight);\r\n }\r\n else if (navItemtop < 20) {\r\n scrollNav.scrollTop(navScrollPos - navItemHeight);\r\n }\r\n }\r\n }\r\n\r\n //正文点击图表标签,跳转到图表\r\n function toArticleTable() {\r\n $(document).on('click', '#jo-article-text .fig-label', function (e) {\r\n var id = $(this).attr('name').substring(1);\r\n var obj = $('#' + id);\r\n var top = parseInt(obj.offset().top);\r\n var paddingTop = parseInt(obj.parent().css(\"padding-top\"));\r\n var scrollPos = Math.max(0, top - paddingTop);\r\n $(document).scrollTop(scrollPos);\r\n })\r\n }\r\n\r\n // 正文中弹出参考文献\r\n function popRefer() {\r\n $(document).on('click', '.jo-refer-sup', function (e) {\r\n var _this = this;\r\n var id = $(this).attr('data-uri');\r\n $('.jo-refer-info').hide();\r\n\r\n // 获取当前元素的坐标\r\n var left = Math.ceil($(this).offset().left);\r\n var top = Math.floor($(this).offset().top);\r\n var referH, infoTop;\r\n\r\n var referInfo = $('div#' + id);\r\n var downArrow = $('.jo-down');\r\n var upArrow = $('.jo-up');\r\n upArrow.hide();\r\n\r\n downArrow.css({\r\n /*position: 'absolute',*/\r\n display: 'block',\r\n left: left - 7 + 4,\r\n top: top - 12 + 6,\r\n zIndex: 998\r\n });\r\n\r\n\r\n\r\n if (screenW < 800) {\r\n var deviceW = window.innerWidth;\r\n referInfo.width(Math.floor(deviceW*0.7));// 第一个24是padding和border值,第二个20是左右margin值\r\n referH = referInfo.outerHeight(true);\r\n infoTop = top - referH - 5 - 5;\r\n if (infoTop < $(window).scrollTop()) {\r\n downArrow.hide();\r\n upArrow.css({\r\n // position: 'absolute',\r\n display: 'block',\r\n left: left - 7 + 4,\r\n top: top + $(this).height()+3,\r\n zIndex: 998\r\n });\r\n infoTop = top+$(this).height()+upArrow.height();\r\n }\r\n referInfo.css({\r\n display: 'block',\r\n left: 0,\r\n top: infoTop,\r\n marginLeft: Math.ceil(deviceW*0.1),\r\n marginRight: Math.floor(deviceW*0.1),\r\n zIndex: 100\r\n });\r\n } else {\r\n referInfo.width(450);\r\n referH = referInfo.outerHeight(true);\r\n infoTop = top - referH - 5 - 5;\r\n if (infoTop < $(window).scrollTop()) {\r\n infoTop = top + 25;\r\n downArrow.hide();\r\n upArrow.css({\r\n /*position: 'absolute',*/\r\n display: 'block',\r\n left: left - 7 + 4,\r\n top: top + 12 + 6,\r\n zIndex: 998\r\n });\r\n }\r\n referInfo.css({\r\n display: 'block',\r\n top: infoTop\r\n });\r\n\r\n if (window.innerWidth - left > 240) {\r\n referInfo.css({\r\n left: left - 250\r\n })\r\n } else {\r\n referInfo.css({\r\n left: window.innerWidth - 500\r\n })\r\n }\r\n }\r\n\r\n // 如果显示关闭按钮的话,则放开这步操作\r\n // $('.jo-close').on('click',function(){\r\n // \t$('.jo-refer-info').hide()\r\n // })\r\n\r\n //图表界面弹窗跟随图表滚动\r\n var parentsNode = $(this).parents(\".table\");\r\n if (parentsNode.length>0){\r\n parentsNode.scroll(function () {\r\n upArrow.hide();\r\n top = Math.floor($(_this).offset().top);\r\n referInfo.css(\"top\",top - referH - 5 - 5);\r\n if (referInfo.css('display')==='block')\r\n downArrow.css({\"top\":top - 12 + 6,display:'block'});\r\n if (top<$('#jo-header').height() ||\r\n top>$('.jo-figure-title-zone').offset().top){\r\n referInfo.hide();\r\n downArrow.hide();\r\n }\r\n })\r\n }\r\n\r\n })\r\n }\r\n // 检查浏览器版本\r\n function checkVersion() {\r\n\r\n if (userAgent.indexOf(\"MSIE 6.0\") > -1 || userAgent.indexOf(\"MSIE 7.0\") > -1 || userAgent.indexOf(\"MSIE 8.0\") > -1) {\r\n var str = '当前IE浏览器版本过低,为了更好的展示效果,请升级至IE9及以上'\r\n layer.alert(str, {\r\n title: '温馨提示',\r\n skin: 'layui-layer-molv',\r\n closeBtn: 0,\r\n shade: [0.8, '#fff']\r\n })\r\n }\r\n //主语言是英文时默认展示英文\r\n if ($(\"#main-wrapper\").hasClass('jo-en-article')) {\r\n $('.jo-zh,.jo-en').toggle();\r\n $('.jo-en-btn').text(\"cn\");\r\n }\r\n // else if(userAgent.indexOf(\"MSIE 9.0\") > -1){\r\n //\r\n // \tconsole.log('当前IE浏览器版本为IE 9.0')\r\n //\r\n // }else if(userAgent.indexOf(\"MSIE 10.0\") > -1){\r\n //\r\n // \tconsole.log('当前IE浏览器版本为IE 10.0')\r\n //\r\n // }else if(userAgent.indexOf(\"rv:11.0\") > -1){\r\n //\r\n // \tconsole.log('当前IE浏览器版本为IE 11.0')\r\n //\r\n // }else if(userAgent.indexOf(\"Edge\") > -1){\r\n //\r\n // \tconsole.log('当前IE浏览器版本为IE Edge')\r\n //\r\n // }\r\n\r\n }\r\n\r\n /*-----------start:正文中块级图片宽度处理-----------*/\r\n\r\n // 设置正文图片宽度、图题图注区域宽度,p为缩放比例\r\n // d为1表示屏幕放大,d为0表示屏幕缩小, 页面刷新时,图片处理思路和缩小屏幕思路一致,故初次加载设置为d=0;\r\n function changeImg(e, p, d) {\r\n var figDiv = $(e).parent().parent();\r\n var figDivW = figDiv.width();\r\n\r\n // var figInfo = $(e).parent().siblings('.jo-figure-info');\r\n var imgW = $(e)[0].naturalWidth;\r\n switch (d) {\r\n case 0:\r\n if (imgW > 1) {\r\n if (imgW > p * figDivW) {\r\n $(e).width(p * figDivW);\r\n }\r\n }\r\n else {\r\n $(e).load(function () {\r\n var imgW = $(e)[0].naturalWidth;\r\n if (imgW > p * figDivW) {\r\n $(e).width(p * figDivW);\r\n }\r\n });\r\n }\r\n break;\r\n case 1:\r\n if (imgW > 1) {\r\n if (imgW > p * figDivW) {\r\n $(e).width(p * figDivW);\r\n } else {\r\n $(e).width(imgW);\r\n }\r\n } else {\r\n $(e).load(function () {\r\n var imgW = $(e)[0].naturalWidth;\r\n if (imgW > p * figDivW) {\r\n $(e).width(p * figDivW);\r\n }\r\n });\r\n }\r\n break;\r\n case 2:\r\n // 初次加载\r\n // $(e).attr('width',p * figDivW)\r\n if (imgW > p * figDivW) {\r\n $(e).width(p * figDivW);\r\n $(e).show();\r\n }\r\n //图片加载完成才能获取真实宽度\r\n $(e).load(function () {\r\n var imgW = $(e)[0].naturalWidth;\r\n if (imgW > p * figDivW) {\r\n $(e).width(p * figDivW);\r\n }\r\n $(e).show();\r\n });\r\n break;\r\n }\r\n }\r\n\r\n // pc和移动端,对图片宽度分别处理\r\n function setImg(d) {\r\n // 正文-非组图图片\r\n $('.jo-figure .jo-fig-img ').each(function (i, e) {\r\n screenW < 800 ? changeImg(e, 0.9, d) : changeImg(e, 0.5, d)\r\n })\r\n //\t正文-表格图片\r\n $('.jo-table-img img').each(function (i, e) {\r\n screenW < 800 ? changeImg(e, 0.9, d) : changeImg(e, 0.5, d)\r\n })\r\n\r\n // 正文-化学公式图片\r\n $('.jo-chem img').each(function (i, e) {\r\n screenW < 800 ? changeImg(e, 0.9, d) : changeImg(e, 0.5, d)\r\n })\r\n }\r\n\r\n\r\n // 正文-组图图片\r\n function setGroupImg(d) {\r\n $('.jo-group-img').each(function () {\r\n var fig = $(this).parent().parent();\r\n var figW = fig.width();\r\n var imgNaturalW = $(this)[0].naturalWidth;\r\n var _this = $(this);\r\n\r\n switch (d) {\r\n case 0:\r\n // 屏幕缩小\r\n _setGroupImg();\r\n break;\r\n\r\n case 1:\r\n // 屏幕放大\r\n _setGroupImg();\r\n break;\r\n }\r\n\r\n function _setGroupImg() {\r\n if (imgNaturalW < figW) {\r\n _this.width(imgNaturalW);\r\n } else {\r\n _this.width(figW);\r\n }\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n /*-----------end:正文中块级图片宽度处理-----------*/\r\n\r\n var tempWinHeight = window.innerHeight;\r\n\r\n // 窗口变化时对图片的处理\r\n function resizeImg() {\r\n var nowWinWidth = window.innerWidth;\r\n var nowWinHeight = window.innerHeight;\r\n bw = document.documentElement.clientWidth || document.body.clientWidth;\r\n if (nowWinWidth > tempWinWidth) {\r\n setImg(1);\r\n setGroupImg(1);\r\n setTable(1);\r\n if ($(window).width() >= 800) {\r\n topHeader = $('#jo-header').height();\r\n $('#jo-body-div').css('margin-top', topHeader);\r\n }\r\n } else {\r\n setImg(0);\r\n setGroupImg(0);\r\n setTable(0);\r\n if ($(window).width() < 800) {\r\n $('#jo-body-div').css('margin-top', 0);\r\n }\r\n }\r\n if (nowWinHeight > tempWinHeight) {\r\n $(\"#jo-article-nav\").height($(window).height() - topHeader - 20);\r\n }\r\n tempWinHeight = nowWinHeight;\r\n tempWinWidth = nowWinWidth\r\n }\r\n\r\n function mobileOrientationChange() {\r\n window.addEventListener('orientationchange', function () {\r\n setTimeout(function () {\r\n if (window.orientation === 180 || window.orientation === 0) {\r\n if (topHeader > 0) {\r\n $('#jo-body-div').css('margin-top', 0);\r\n }\r\n setImg(0);\r\n setGroupImg(0);\r\n setTable(0);\r\n }\r\n if (window.orientation === 90 || window.orientation === -90) {\r\n if ($(window).width() >= 800) {\r\n topHeader = $('#jo-header').height();\r\n $('#jo-body-div').css('margin-top', topHeader);\r\n }\r\n setImg(1);\r\n setGroupImg(1);\r\n setTable(1);\r\n }\r\n }, 500);\r\n })\r\n }\r\n function setGroupImgNote() {\r\n $(\".jo-fig-group\").each(function () {\r\n if($(this).find('.jo-fig-single').length<1){\r\n return\r\n }\r\n var firstImg = $(this).find('.jo-fig-single')[0].getElementsByTagName('img')[0];\r\n if (firstImg != null) {\r\n var imgWidth = firstImg.width;\r\n var note = $(this).find('.jo-figure-note');\r\n var padding = (note.width()*0.49-imgWidth)*0.5;\r\n note.css({\r\n padding: 0+'px '+padding+'px'\r\n })\r\n }\r\n })\r\n }\r\n\r\n // 正文行内图片、公式图片、表格单元格内图片宽度设置为原来宽度的p,p为百分比\r\n function contextImg(ele, p) {\r\n ele.each(function () {\r\n var origWidth = this.naturalWidth;\r\n $(this).width(p * origWidth)\r\n })\r\n }\r\n function bindOrientationChangeEvent() {\r\n window.addEventListener('orientationchange', function () {\r\n $(\"body\").removeClass(\"fixed\");\r\n layer.closeAll();\r\n $('.jo-refer-info').hide();\r\n $('.jo-down').hide();\r\n $('.jo-up').hide();\r\n\r\n setTimeout(function () {\r\n if (window.orientation !== undefined) {\r\n if (window.orientation === 180 || window.orientation === 0) {\r\n setTable(0);\r\n }\r\n if (window.orientation === 90 || window.orientation === -90) {\r\n setTable(1);\r\n }\r\n }\r\n }, 500);\r\n })\r\n }\r\n\r\n //飞翔数据,图片大小由MM到PX转变\r\n /*function MMtoPX(ele) {\r\n var deviceDPI = getDeviceDPI();\r\n ele.each(function () {\r\n var mmWidth = $(this).attr(\"fx-image-width\");\r\n var pxWidth;\r\n if (mmWidth && mmWidth !== 0) {\r\n pxWidth = mmWidth * deviceDPI.x / 25.4;\r\n } else pxWidth = this.naturalWidth * 0.3;\r\n $(this).width(pxWidth);\r\n });\r\n\r\n\r\n }*/\r\n\r\n //飞翔数据,图片大小由MM到PX转变\r\n\r\n function MMtoPX(elements, scale) {\r\n scale = scale || 1.0;\r\n elements.each(function () {\r\n var mmWidth = $(this).attr(\"fx-image-width\");\r\n if (mmWidth && mmWidth !== 0) {\r\n var pxWidth = mmWidth * deviceDPI.x / 25.4;\r\n $(this).width(pxWidth * scale);\r\n }\r\n //设置图片标题区宽度\r\n if (!isMobile){\r\n setTitleWidth(this,pxWidth * scale)\r\n }\r\n });\r\n }\r\n\r\n function setTitleWidth(ele,width){\r\n var titleDiv = $(ele).parent().parent().find('.jo-figure-title');\r\n var noteDiv = $(ele).parent().parent().find('.jo-figure-note');\r\n if (titleDiv.length>0){\r\n titleDiv.width(width)\r\n }\r\n if (noteDiv.length>0){\r\n noteDiv.width(width)\r\n }\r\n }\r\n\r\n //获取设备分辨率\r\n function getDeviceDPI() {\r\n var deviceDPI = {}\r\n if (window.screen.deviceXDPI != undefined) {\r\n deviceDPI.x = window.screen.deviceXDPI;\r\n deviceDPI.y = window.screen.deviceYDPI;\r\n }\r\n else {\r\n var tmpNode = document.createElement(\"DIV\");\r\n tmpNode.style.cssText = \"width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden\";\r\n document.body.appendChild(tmpNode);\r\n deviceDPI.x = parseInt(tmpNode.offsetWidth);\r\n deviceDPI.y = parseInt(tmpNode.offsetHeight);\r\n tmpNode.parentNode.removeChild(tmpNode);\r\n }\r\n return deviceDPI;\r\n }\r\n\r\n // 外部框架设置\r\n function setFrame() {\r\n var ifm = window.parent.document.getElementById(\"jo-outerIframe\");\r\n var outerDiv = $('#jo-body').closest('#jo-outerDiv');\r\n if (ifm) {\r\n var parentDocu = window.parent.document.documentElement\r\n var parentDocuH = parentDocu.clientHeight;\r\n var parentDocuW = parentDocu.clientWidth;\r\n var parentScreenW = window.parent.screen.width;\r\n ifm.height = parentDocuH;\r\n bw = 0.7 * parentDocuW;\r\n document.body.style.width = parentScreenW < 800 ? (parentDocuW + 'px') : 0.7 * parentDocuW + 'px';\r\n ifm.width = parentScreenW < 800 ? parentScreenW : parentDocuW;\r\n $(document.body).attr('id', 'jo-framebody')\r\n if (screenW >= 800) {\r\n $('#jo-article-text').removeClass('jo-article-text-margin')\r\n }\r\n //\t隐藏滚动条配置,兼容主流四大浏览器\r\n $('#jo-outerIframe', parent.document).niceScroll({\r\n cursorborder: \"\",\r\n cursorcolor: \"rgba(0,0,0,0)\",\r\n boxzoom: true\r\n });\r\n } else if (outerDiv.length) {\r\n bw = screenW < 800 ? screenW : outerDiv.width();\r\n if (screenW >= 800) {\r\n $('#jo-article-text').removeClass('jo-article-text-margin')\r\n }\r\n }\r\n }\r\n\r\n // 正文表格设置id\r\n function setTable(d) {\r\n $('.jo-table-wrapper table').each(function (index) {\r\n if ($(this).css(\"display\") === 'none') {\r\n return true;\r\n }\r\n\r\n var tableW = this.scrollWidth;\r\n var tableH = this.scrollHeight;\r\n var wrapper = $(this).parent();\r\n var wrapperW = wrapper.width();\r\n var scaleRatio = 1;\r\n\r\n switch (d) {\r\n case 1: {\r\n if ($(this).hasClass(\"jo-scale-table\") && tableW > wrapperW) {\r\n scaleRatio = Math.floor(wrapperW / tableW * 100) / 100;\r\n wrapper.height(Math.ceil(scaleRatio * tableH) + 12);\r\n $(this).css({\r\n 'transform': 'scale(' + scaleRatio + ')',\r\n 'marginLeft': (wrapperW - scaleRatio * tableW) / 2\r\n })\r\n } else {\r\n scaleRatio = Math.floor(wrapperW / tableW * 100) / 100;\r\n wrapper.height(Math.ceil(scaleRatio * tableH) + 12);\r\n $(this).css({\r\n 'transform': 'scale(1)',\r\n 'marginLeft': (wrapperW - tableW) / 2\r\n })\r\n }\r\n break;\r\n }\r\n case 0: {\r\n if (tableW > wrapperW) {\r\n scaleRatio = Math.floor(wrapperW / tableW * 100) / 100;\r\n wrapper.height(Math.ceil(scaleRatio * tableH) + 12);\r\n $(this).addClass('jo-scale-table');\r\n $(this).css({\r\n 'transform': 'scale(' + scaleRatio + ')',\r\n 'marginLeft': (wrapperW - scaleRatio * tableW) / 2\r\n })\r\n } else {\r\n $(this).css({\r\n 'transform': 'scale(1)'\r\n });\r\n wrapper.height($(this).height() + 12);\r\n }\r\n break;\r\n }\r\n default: {\r\n if (isMobile) {\r\n // 设置表格id\r\n var str = 'jo-table-list' + index;\r\n $(this).attr('id', str);\r\n // 生成表格副本,并设置id,隐藏表格\r\n $(this).parent().append($(this).clone().attr('id', str + '-c').css('display', 'none'));\r\n\r\n // if(tableW>wrapperW){\r\n var tableClone = $(this).siblings('table');\r\n $(this).click(function () {\r\n var scrollTop = $(document).scrollTop();\r\n $(\"body\").addClass(\"fixed\");\r\n layer.open({\r\n type: 1,\r\n skin: 'layui-layer-rim', //加上边框\r\n title: false,\r\n fixed: true, // 鼠标滚动时,层是否固定在可视区域\r\n offset: 'auto', // 默认坐标,即垂直水平居中\r\n // area: w,\r\n shade: [0.9, '#000'],// 遮罩层背景色\r\n shadeClose: true, // 允许点击遮罩关闭\r\n scrollbar: false, // 不允许浏览器滚动\r\n content: tableClone,\r\n end: function () {\r\n $(\"body\").removeClass(\"fixed\");\r\n $(document).scrollTop(scrollTop);\r\n //弹出层销毁时刷新父页面(wbh18.11.15\r\n\r\n }\r\n })\r\n })\r\n // }\r\n }\r\n if (tableW > wrapperW) {\r\n scaleRatio = Math.floor(wrapperW / tableW * 100) / 100;\r\n wrapper.height(Math.ceil(scaleRatio * tableH) + 12);\r\n $(this).addClass('jo-scale-table');\r\n $(this).css({\r\n 'transform': 'scale(' + scaleRatio + ')',\r\n 'marginLeft': (wrapperW - scaleRatio * tableW) / 2\r\n })\r\n }\r\n }\r\n }\r\n setTableNoteWidth($(this).parent(),$(this).width()*scaleRatio);\r\n })\r\n }\r\n\r\n function setTableNote() {\r\n $('.jo-table-wrapper').each(function () {\r\n var table = $(this).find('table');\r\n var scaleRatio = 1;\r\n if (table.css('transform')!=='none') {\r\n scaleRatio = table.css('transform').replace(/[^0-9\\-,]/g,'').split(',')[0]*0.01\r\n }\r\n var width = table.width();\r\n setTableNoteWidth($(this),width*scaleRatio);\r\n })\r\n }\r\n\r\n function setTableNoteWidth(tableWrapper,width) {\r\n var wrapperWidth = tableWrapper.width();\r\n var note = tableWrapper.next(\".jo-figure-info\").find(\".jo-figure-note\");\r\n if(wrapperWidth wrapperW) {\r\n var scaleRatio = Math.floor(wrapperW / tableW * 100) / 100;\r\n if (scaleRatio * tableH < wrapperH) {\r\n $(this).css({\r\n 'transformOrigin': '0 0',\r\n 'transform': 'scale(' + scaleRatio + ')',\r\n 'marginTop': (wrapperH - scaleRatio * tableH) / 2,\r\n 'marginLeft': (wrapperW - scaleRatio * tableW) / 2,\r\n 'display': 'block'\r\n\r\n });\r\n var _this = this;\r\n setTimeout(function () {\r\n $(_this).height(scaleRatio * tableH);\r\n wrapper.height(wrapperH + 20);\r\n });\r\n\r\n } else {\r\n $(this).css({\r\n 'transformOrigin': '0 0',\r\n 'transform': 'scale(' + scaleRatio + ')',\r\n 'marginLeft': (wrapperW - scaleRatio * tableW) / 2,\r\n 'display': 'block'\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n //中英切换\r\n function toggleLang() {\r\n $('.jo-en-btn').click(function () {\r\n $('.jo-zh,.jo-en').toggle();\r\n if($(this).text()==\"en\"){\r\n $(this).text(\"cn\");\r\n }else{\r\n $(this).text(\"en\");\r\n\r\n }\r\n resetLayout();\r\n })\r\n\r\n }\r\n\r\n // 获取元素的最终样式\r\n function getStyle(element) {\r\n return 'currentStyle' in element ? element.currentStyle : 'getComputedStyle' in window\r\n ? window.getComputedStyle(element, null) : null;\r\n }\r\n\r\n // 轮播图相关\r\n function tabFigure() {\r\n if (!document.getElementById('jo-tab-figure')) return;\r\n document.getElementById('jo-tab-figure').onclick = function () {\r\n if (flag) {\r\n $('#jo-main-figure').css('display', 'block'); // 兼容IE9\r\n loadImg(); // src替换为真实地址,加载图片\r\n carousel();\r\n adjust(); // 调整轮播图外边框及图片宽度\r\n $('.jo-c-list .table').niceScroll({horizrailenabled: false, cursorborder: \"\", cursorcolor: \"rgba(0,0,0,0)\"}); // 轮播图:隐藏表格滚动条\r\n $('#jo-anno-container').niceScroll({horizrailenabled: false, cursorborder: \"\", cursorcolor: \"rgba(0,0,0,0)\"}); // 轮播图:图注滚动\r\n // 处理轮播图中表格过长问题,\r\n // 考虑到表格单元格中有可能有公式,故放在MathJax.Hub.Queue中,确保公式渲染完毕后,再缩放表格\r\n MathJax.Hub.Queue(setCarTable());\r\n // 图注的显示隐藏相互切换\r\n var btnHeight = $('.jo-prev-box').height();\r\n $(\".jo-figure-anno-icon\").click(function () {\r\n $(\".jo-figure-anno\").toggle();\r\n var enTittleNode = $(\".jo-f-title-en\");\r\n var tittleWrap = $('#jo-title-container');\r\n\r\n if (tittleWrap.height() === 173) {\r\n enTittleNode.css('white-space', 'nowrap');\r\n $('.jo-figure-title-left').height(80);\r\n $('.jo-figure-title-right').height(80);\r\n tittleWrap.height(73);\r\n } else {\r\n enTittleNode.css('white-space', 'normal');\r\n $('.jo-figure-title-left').height(180);\r\n $('.jo-figure-title-right').height(180);\r\n tittleWrap.height(173);\r\n }\r\n $('.jo-prev-box').height(btnHeight);\r\n $('.jo-next-box').height(btnHeight);\r\n });\r\n flag = false; // 避免点击轮播图tab页,重复执行\r\n }\r\n };\r\n }\r\n\r\n // 轮播图方法\r\n function carousel() {\r\n var list = document.getElementById('jo-list');\r\n var annoList = document.getElementById('jo-anno-list')\r\n var titleList = document.getElementById('jo-title-list')\r\n var tLists = document.getElementsByClassName('jo-title-list');\r\n var aLists = document.getElementsByClassName('jo-anno-list');\r\n var prev = document.getElementById('jo-prev');\r\n var next = document.getElementById('jo-next');\r\n var index = 1;\r\n var tContainer = document.getElementById('jo-title-container');\r\n var aContainer = document.getElementById('jo-anno-container');\r\n var setW = (0.61 * bw).toFixed(0);\r\n var tSetW = (0.56 * bw).toFixed(0);\r\n var aSetW = (0.80 * bw).toFixed(0);\r\n\r\n if (cLists.length) {\r\n // cWrap.style.width = setW + 'px';\r\n document.getElementById('jo-current').innerHTML = 1;\r\n document.getElementById('jo-total').innerHTML = num;\r\n\r\n _widthAdapt(setW, container, list, cLists);\r\n _widthAdapt(tSetW, tContainer, titleList, tLists);\r\n _widthAdapt(aSetW, aContainer, annoList, aLists);\r\n\r\n _clone(cLists, list);\r\n _clone(tLists, titleList);\r\n _clone(aLists, annoList);\r\n\r\n prev.onclick = function () {\r\n index -= 1;\r\n if (index < 1) {\r\n index = num;\r\n }\r\n _motion(list, setW, setW)\r\n _motion(titleList, tSetW, tSetW)\r\n _motion(annoList, aSetW, aSetW)\r\n document.getElementById('jo-current').innerHTML = index;\r\n }\r\n\r\n next.onclick = function () {\r\n index += 1;\r\n if (index > num) {\r\n index = 1\r\n }\r\n _motion(list, -setW, setW);\r\n _motion(titleList, -tSetW, tSetW)\r\n _motion(annoList, -aSetW, aSetW)\r\n document.getElementById('jo-current').innerHTML = index;\r\n }\r\n\r\n // 当文字过多时,\"...\"代替显示\r\n // $(\".jo-f-title-en\").wordLimit(tSetW / 2.83.toFixed(0))\r\n\r\n } else {\r\n var p = document.createElement('p');\r\n var t = document.createTextNode('该文章没有可供展示的图表');\r\n p.setAttribute('id', 'jo-container-p');\r\n p.style.lineHeight = getStyle(container).height;\r\n p.appendChild(t);\r\n container.appendChild(p);\r\n document.getElementById('jo-current').innerHTML = 0;\r\n document.getElementById('jo-total').innerHTML = 0;\r\n }\r\n\r\n\r\n /*图片下载*/\r\n $('#jo-download-img').click ( function () {\r\n var currentFig = $('.jo-c-list')[index];\r\n if (currentFig.getElementsByClassName('table').length>0){\r\n layer.msg('暂不支持下载', {\r\n offset: 't',\r\n anim: 0\r\n });\r\n return;\r\n }\r\n var img =currentFig.getElementsByTagName('img')[0];\r\n if(!img){\r\n layer.msg('暂不支持下载', {\r\n offset: 't',\r\n anim: 0\r\n });\r\n }else {\r\n var url = img.src;\r\n if (userAgent.indexOf('MSIE')>-1 || userAgent.indexOf('rv:11.0')>-1 ){\r\n var oPop = window.open(url,\"\",\"width=0, height=0\");\r\n console.log(oPop.document.readyState);\r\n for(; oPop.document.readyState != \"complete\"; ) {\r\n if (oPop.document.readyState == \"complete\")break;\r\n }\r\n oPop.document.execCommand(\"SaveAs\");\r\n oPop.close();\r\n }else {\r\n var a = document.createElement('a');\r\n var event = new MouseEvent('click');\r\n a.download = '';\r\n a.href = url;\r\n a.dispatchEvent(event);\r\n a.remove()\r\n }\r\n }\r\n })\r\n\r\n }\r\n\r\n function adjust() {\r\n //设置图片轮播图最外层框的高度,以适应不同尺寸屏幕\r\n var cH = document.documentElement.clientHeight - document.getElementsByClassName('jo-header')[0].offsetHeight - 150;\r\n if (cH > 400) {\r\n cWrap.style.height = cH + 'px';\r\n container.style.height = cH + 'px';\r\n if (cLists.length) {\r\n for (i = 0; i < num + 2; i++) {\r\n cLists[i].style.height = cH + 'px';\r\n }\r\n }\r\n } else {\r\n cWrap.style.height = '400px';\r\n container.style.height = '400px';\r\n if (cLists.length) {\r\n for (i = 0; i < num + 2; i++) {\r\n cLists[i].style.height = '400px';\r\n }\r\n }\r\n }\r\n\r\n //对不同规格的图片进行处理,以适应容器的大小,并保持图片的原始比例\r\n var cStyle = getStyle(container);\r\n var containerH = parseInt(cStyle.height);\r\n var containerW = parseInt(cStyle.width);\r\n for (var i = 0; i < cLists.length; i++) {\r\n var tables = cLists[i].getElementsByTagName('table');\r\n var imgs = cLists[i].getElementsByClassName('jo-c-image');\r\n if (imgs.length) {\r\n loadComplete(imgs[0], _setCarouselImg)\r\n } else {\r\n tables[0].parentNode.style.width = (containerW) + 'px';\r\n tables[0].parentNode.style.height = (containerH) + 'px';\r\n }\r\n }\r\n\r\n /**\r\n * 轮播图图片自适应外边框\r\n * @param img 需要被处理的图片\r\n * @returns null\r\n */\r\n function _setCarouselImg(img) {\r\n var imgH = img.height;\r\n var imgW = img.width;\r\n if (imgW <= containerW && imgH <= containerH) {\r\n img.height = imgH;\r\n img.width = imgW;\r\n } else if (imgW / imgH < containerW / containerH) {\r\n img.height = containerH - 10;\r\n } else {\r\n img.width = containerW - 20; // -20,消除滚动条对宽度的影响\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 判断图片是否完成加载\r\n * @param img 需要被处理的图片\r\n * @param fn 图片加载完成后需要执行的方法\r\n * @returns null\r\n */\r\n function loadComplete(img, fn) {\r\n var timer = null;\r\n timer = setInterval(\r\n function () {\r\n if (img.complete) {\r\n clearInterval(timer);\r\n fn(img);\r\n }\r\n }, 50)\r\n }\r\n\r\n // 图片、标题、图注设置宽度自适应\r\n function _widthAdapt(w, container, list, listName) {\r\n container.style.width = w + 'px';\r\n list.style.width = w * (num + 2) + 'px';\r\n list.style.left = -w + 'px';\r\n for (var i = 0; i < listName.length; i++) {\r\n listName[i].style.width = w + 'px';\r\n }\r\n }\r\n\r\n\r\n //轮播方法\r\n function _motion(obj, ofs, w) {\r\n var newLeft = parseInt(obj.style.left) + parseInt(ofs);\r\n obj.style.left = newLeft + 'px';\r\n if (newLeft > -w) {\r\n obj.style.left = -w * num + 'px';\r\n }\r\n if (newLeft < -w * num) {\r\n obj.style.left = -w + 'px';\r\n }\r\n }\r\n\r\n //复制列表的第一项和最后一项\r\n function _clone(listName, obj) {\r\n var len = listName.length;\r\n var newFirst = listName[len - 1].cloneNode(true);\r\n var newLast = listName[0].cloneNode(true);\r\n obj.insertBefore(newFirst, listName[0]);\r\n obj.appendChild(newLast);\r\n }\r\n\r\n // 点击图标页,再加载图片;遇到png图片,添加白色背景\r\n function loadImg() {\r\n $('.jo-c-img img').each(function () {\r\n var url = $(this).attr('data-url');\r\n var suffixArr = url.split('.')\r\n var suffix = suffixArr[suffixArr.length - 1]\r\n $(this).attr('src', url);\r\n if (suffix === 'png') {\r\n $(this).css(\"background-color\", \"#fff\");\r\n }\r\n })\r\n }\r\n\r\n // 表格弹出层\r\n $('.jo-layer-table').on('click', function (e) {\r\n e.preventDefault();\r\n var content = $(e.target).parents().siblings('table');\r\n layer.open({\r\n type: 1,\r\n skin: 'layui-layer-rim', //加上边框\r\n title: false,\r\n fixed: true, // 鼠标滚动时,层是否固定在可视区域\r\n offset: 'auto', // 默认坐标,即垂直水平居中\r\n // area: [w, h],\r\n shade: [0.9, '#000'],// 遮罩层背景色\r\n shadeClose: true, // 允许点击遮罩关闭\r\n scrollbar: false, // 不允许浏览器滚动\r\n content: content,\r\n end: function () {\r\n //弹出层销毁刷新父页面(wbh18.11.15\r\n setTimeout(function () {\r\n if (window.orientation !== undefined) {\r\n if (window.orientation === 180 || window.orientation === 0) {\r\n setTable(0);\r\n }\r\n if (window.orientation === 90 || window.orientation === -90) {\r\n setTable(1);\r\n }\r\n }\r\n }, 500);\r\n }\r\n });\r\n\r\n })\r\n\r\n\r\n var stop = 1;\r\n // 图片弹出层\r\n $('.jo-layer-photos').on('click', function (e) {\r\n e.preventDefault();\r\n stop = 0;\r\n document.addEventListener(\"touchmove\", function (event) {\r\n if (stop === 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }, false);\r\n });\r\n\r\n layer.photos({\r\n photos: '.jo-layer-photos',\r\n anim: 5,//0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)\r\n fixed: true,\r\n shadeClose: true, // 允许点击遮罩关闭\r\n closeBtn: 1,\r\n shade: [0.9, '#000'],// 遮罩层背景色\r\n end: function () {\r\n stop = 1;\r\n }\r\n // area:w,\r\n });\r\n\r\n //分享按钮组\r\n $(\".jo-share-box a\").click(function (e){\r\n var shareUrl = null;\r\n var title = \"\";\r\n if ($(\"#main-wrapper\").hasClass('jo-en-article')) {\r\n title = $(\".jo-en h1.jo-document-title\").text()+\"-\"+$(\".jo-en h2.jo-document-title\").text();\r\n }else{\r\n title = $(\".jo-zh h1.jo-document-title\").text()+\"-\"+$(\".jo-zh h2.jo-document-title\").text();\r\n }\r\n\r\n var url = window.location.href;\r\n var desc=\"推荐好文:%0D\"+\"看到一篇不错的文章《\" + title + \"》,值得一看,推荐给大家。\";\r\n\r\n if($(e.target).hasClass('icon-email')){\r\n var subject = \"推荐好文《\" + title + \"》&body=你好!看到了一篇不错的文章,值得一看,分享给您,欢迎共同讨论。%0A可点击以下地址阅读全文:\"+ url;\r\n window.location.href = 'mailto:?subject=' + subject;\r\n }\r\n\r\n /*打印*/\r\n /*else if($(e.target).hasClass('icon-printer')){\r\n $(\"body\").jqprint({});\r\n }*/\r\n else if($(e.target).hasClass('icon-wechat')){\r\n layer.open({\r\n type: 1,\r\n skin: '',\r\n title:false,\r\n offset: 'auto',\r\n area: ['370px', '420px'], //宽高\r\n closeBtn: false, //显示关闭按钮\r\n shade: 0,\r\n anim: 2,\r\n shadeClose: true, //开启遮罩关闭\r\n content: $(\".wechat-share-box\"),\r\n });\r\n $(\".closebtn\").click(function (){\r\n layer.closeAll();\r\n })\r\n }\r\n\r\n else{\r\n var top = (window.outerHeight-505)/2;\r\n var left = (window.outerWidth-615)/2;\r\n //分享到微博\r\n if($(e.target).hasClass('icon-blog')){\r\n shareUrl=\"http://v.t.sina.com.cn/share/share.php?title=\"+desc+\"&url=\"+url+\"&searchPic=true\";\r\n }\r\n //分享到QQ好友\r\n else if($(e.target).hasClass('icon-qq')){\r\n shareUrl=\"http://connect.qq.com/widget/shareqq/index.html?title=\"+title+desc+\"&url=\"+url;\r\n }\r\n //分享到QQ空间\r\n else if($(e.target).hasClass('icon-zone')){\r\n shareUrl='http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?title='+title+'&desc='+desc+'&url='+url;\r\n }\r\n window.open(shareUrl,'_blank','width=615,height=505,top='+top+',left='+left);\r\n }\r\n\r\n });\r\n /**\r\n * 函数节流,防止函数频繁触发\r\n * @param fn 需要被延迟执行的函数\r\n * @param interval 时间间隔\r\n * @returns {Function}\r\n */\r\n function throttle(fn, interval) {\r\n var _self = fn,\r\n timer,\r\n firstTime = true;\r\n return function () {\r\n var args = arguments,\r\n _this = this;\r\n if (firstTime) {\r\n _self.apply(_this, args);\r\n return firstTime = false;\r\n }\r\n if (timer) {\r\n return false;\r\n }\r\n timer = setTimeout(function () {\r\n clearTimeout(timer);\r\n timer = null;\r\n _self.apply(_this, args);\r\n }, interval || 500);\r\n }\r\n }\r\n\r\n /**\r\n * 函数节流,防止函数频繁触发\r\n * @param fn 需要被延迟执行的函数\r\n * @param interval 时间间隔\r\n * @returns {Function}\r\n */\r\n function throttle1(method, context) {\r\n clearTimeout(method.tId);\r\n method.tId = setTimeout(function () {\r\n method.call(context);\r\n }, 500);\r\n }\r\n\r\n /**\r\n * 读取json文件\r\n */\r\n function readTextFile(file, callback) {\r\n var rawFile = new XMLHttpRequest();\r\n if (rawFile.overrideMimeType){\r\n rawFile.overrideMimeType(\"application/json\");\r\n }\r\n rawFile.open(\"GET\", file, true);\r\n rawFile.onreadystatechange = function () {\r\n if (rawFile.readyState === 4 && rawFile.status == \"200\") {\r\n callback(rawFile.responseText);\r\n }else{\r\n resetLayout();\r\n }\r\n }\r\n rawFile.send(null);\r\n }\r\n\r\n /**\r\n * banner第一次加载,获取图片(2018.11.16-wbh\r\n */\r\n function loadBannerImage() {\r\n\r\n readTextFile(\"banner.json\", function (text) {\r\n var data = JSON.parse(text);\r\n bannerJSON = data.banner;\r\n $.ajax({\r\n url: \"http://\"+bannerJSON,\r\n type: \"post\",\r\n success: function (data) {\r\n // 获取json中的bannerUrl\r\n bannerImage = JSON.parse(data).bannerUrl;\r\n var img = new Image();\r\n // 改变图片的src\r\n img.src = \"http://\"+bannerImage;\r\n // 加载完成执行\r\n img.onload = function () {\r\n bannerRadio = img.width / img.height;\r\n bannerImage = img.src;\r\n resetLayout();\r\n };\r\n },\r\n error:function () {\r\n resetLayout();\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n /**\r\n * banner区域计算(2018.11.15-wbh\r\n */\r\n function resetBanner() {\r\n var height = $(\"#jo-banner\").width() / bannerRadio;\r\n $(\"#jo-banner\").css(\"background-image\", \"url(\" + bannerImage + \")\");\r\n //添加最小banner区域高度70(临时解决方案,区域若轮播会有调整)\r\n if (height > 70) {\r\n $(\"#jo-banner\").height(height);\r\n $(\"#jo-banner\").css(\"background-size\", \"100%\");\r\n $(\"#jo-banner\").css(\"background-repeat\", \"no-repeat\");\r\n } else {\r\n $(\"#jo-banner\").height(70);\r\n $(\"#jo-banner\").css(\"background-size\", \"auto 70px\");\r\n $(\"#jo-banner\").css(\"background-repeat\", \"repeat\");\r\n }\r\n }\r\n\r\n /**\r\n * 重置布局,包含导航区域计算,浮动置顶等\r\n */\r\n function resetLayout() {\r\n var scrollPos = document.documentElement.scrollTop || document.body.scrollTop;\r\n\r\n var nav = $(\"#jo-article-nav\");\r\n var headerBottom = 0;\r\n if (!isMobile) {\r\n //web端\r\n if(bannerImage && bannerRadio){\r\n resetBanner();\r\n }\r\n headerBottom = $(\"#jo-header\").offset().top + $(\"#jo-header\").height();\r\n\r\n $(\".jo-share-btn\").css(\"display\",\"block\");\r\n }else{\r\n $(\".jo-share-btn\").css(\"display\",\"none\");\r\n }\r\n\r\n if (nav.css(\"display\") != \"none\") {\r\n\r\n var windowHeight = $(window).height();\r\n\r\n // 计算网刊被第三方集成时,页面底部的Footer区域的可见高度\r\n var bodyDivBottom = $(\"#jo-body-div\").offset().top + $(\"#jo-body-div\").height();\r\n var visiableFooterHeight = Math.max(0, scrollPos + windowHeight - bodyDivBottom);\r\n //console.log(visiableFooterHeight);\r\n\r\n if (scrollPos >= headerBottom) {\r\n nav.addClass('fixed');\r\n nav.css({\"margin-top\": 20, \"height\": windowHeight - 20 - visiableFooterHeight});\r\n }\r\n // 不固定\r\n else {\r\n nav.removeClass('fixed');\r\n var offset = headerBottom - scrollPos;\r\n nav.css({\"margin-top\": 20, \"height\": windowHeight - offset - 20 - visiableFooterHeight});\r\n }\r\n\r\n if (visiableFooterHeight > 0) {\r\n var scrollNav = $(\"#jo-scroll-nav\");\r\n navScrollPos = scrollNav.scrollTop();\r\n scrollNav.scrollTop(navScrollPos + visiableFooterHeight);\r\n }\r\n }\r\n\r\n // 文字区右边栏定位\r\n var top = $(\"#jo-article-text\").offset().top;\r\n if (scrollPos > 0) {\r\n $(\"#jo-article-aside\").css({\r\n \"position\": \"fixed\",\r\n \"top\": 0,\r\n \"right\": 0,\r\n });\r\n }\r\n else {\r\n $(\"#jo-article-aside\").css(\"position\", \"static\");\r\n }\r\n\r\n // 置顶按钮的处理,滚动到顶部时置顶按钮消失\r\n if (scrollPos > 0) {\r\n $('#jo-up-btn').addClass('fixed');\r\n } else {\r\n $('#jo-up-btn').removeClass('fixed');\r\n }\r\n if($(\"#jo-qrcode-article\").css(\"display\") == \"none\"){\r\n $(\".jo-header #jo-top-content-fr\").css(\"top\",$(\"#jo-top-group\").height());\r\n }\r\n }\r\n}\r\n\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/js/carousel.js\n// module id = 4\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/css/iconfont.css\n// module id = 5\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/css/colorbox.css\n// module id = 6\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/css/jo-index.css\n// module id = 7\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/css/jo-reset.css\n// module id = 8\n// module chunks = 0"],"sourceRoot":""}