github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/public/js/wind.js (about)

     1  /* https://github.com/balupton/jquery-scrollto */(function(name,context,definition){if(typeof module!="undefined"&&module.exports){module.exports=definition()}else{if(typeof define=="function"&&define.amd){define(definition)}else{context[name]=definition()}}})("jquery-scrollto",this,function(){var jQuery,$,ScrollTo;jQuery=$=window.jQuery||require("jquery");$.propHooks.scrollTop=$.propHooks.scrollLeft={get:function(elem,prop){var result=null;if(elem.tagName==="HTML"||elem.tagName==="BODY"){if(prop==="scrollLeft"){result=window.scrollX}else{if(prop==="scrollTop"){result=window.scrollY}}}if(result==null){result=elem[prop]}return result}};$.Tween.propHooks.scrollTop=$.Tween.propHooks.scrollLeft={get:function(tween){return $.propHooks.scrollTop.get(tween.elem,tween.prop)},set:function(tween){if(tween.elem.tagName==="HTML"||tween.elem.tagName==="BODY"){tween.options.bodyScrollLeft=(tween.options.bodyScrollLeft||window.scrollX);tween.options.bodyScrollTop=(tween.options.bodyScrollTop||window.scrollY);if(tween.prop==="scrollLeft"){tween.options.bodyScrollLeft=Math.round(tween.now)}else{if(tween.prop==="scrollTop"){tween.options.bodyScrollTop=Math.round(tween.now)}}window.scrollTo(tween.options.bodyScrollLeft,tween.options.bodyScrollTop)}else{if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now}}}};ScrollTo={config:{duration:400,easing:"swing",callback:undefined,durationMode:"each",offsetTop:0,offsetLeft:0},configure:function(options){$.extend(ScrollTo.config,options||{});return this},scroll:function(collections,config){var collection,$container,container,$target,$inline,position,containerTagName,containerScrollTop,containerScrollLeft,containerScrollTopEnd,containerScrollLeftEnd,startOffsetTop,targetOffsetTop,targetOffsetTopAdjusted,startOffsetLeft,targetOffsetLeft,targetOffsetLeftAdjusted,scrollOptions,callback;collection=collections.pop();$container=collection.$container;$target=collection.$target;containerTagName=$container.prop("tagName");$inline=$("<span/>").css({"position":"absolute","top":"0px","left":"0px"});position=$container.css("position");$container.css({position:"relative"});$inline.appendTo($container);startOffsetTop=$inline.offset().top;targetOffsetTop=$target.offset().top;targetOffsetTopAdjusted=targetOffsetTop-startOffsetTop-parseInt(config.offsetTop,10);startOffsetLeft=$inline.offset().left;targetOffsetLeft=$target.offset().left;targetOffsetLeftAdjusted=targetOffsetLeft-startOffsetLeft-parseInt(config.offsetLeft,10);containerScrollTop=$container.prop("scrollTop");containerScrollLeft=$container.prop("scrollLeft");$inline.remove();$container.css({position:position});scrollOptions={};callback=function(event){if(collections.length===0){if(typeof config.callback==="function"){config.callback()}}else{ScrollTo.scroll(collections,config)}return true};if(config.onlyIfOutside){containerScrollTopEnd=containerScrollTop+$container.height();containerScrollLeftEnd=containerScrollLeft+$container.width();if(containerScrollTop<targetOffsetTopAdjusted&&targetOffsetTopAdjusted<containerScrollTopEnd){targetOffsetTopAdjusted=containerScrollTop}if(containerScrollLeft<targetOffsetLeftAdjusted&&targetOffsetLeftAdjusted<containerScrollLeftEnd){targetOffsetLeftAdjusted=containerScrollLeft}}if(targetOffsetTopAdjusted!==containerScrollTop){scrollOptions.scrollTop=targetOffsetTopAdjusted}if(targetOffsetLeftAdjusted!==containerScrollLeft){scrollOptions.scrollLeft=targetOffsetLeftAdjusted}if($container.prop("scrollHeight")===$container.width()){delete scrollOptions.scrollTop}if($container.prop("scrollWidth")===$container.width()){delete scrollOptions.scrollLeft}if(scrollOptions.scrollTop!=null||scrollOptions.scrollLeft!=null){$container.animate(scrollOptions,{duration:config.duration,easing:config.easing,complete:callback})}else{callback()}return true},fn:function(options){var collections,config,$container,container;collections=[];var $target=$(this);if($target.length===0){return this}config=$.extend({},ScrollTo.config,options);$container=$target.parent();container=$container.get(0);while(($container.length===1)&&(container!==document.body)&&(container!==document)){var containerScrollTop,containerScrollLeft;containerScrollTop=$container.css("overflow-y")!=="visible"&&container.scrollHeight!==container.clientHeight;containerScrollLeft=$container.css("overflow-x")!=="visible"&&container.scrollWidth!==container.clientWidth;if(containerScrollTop||containerScrollLeft){collections.push({"$container":$container,"$target":$target});$target=$container}$container=$container.parent();container=$container.get(0)}collections.push({"$container":$("html"),"$target":$target});if(config.durationMode==="all"){config.duration/=collections.length}ScrollTo.scroll(collections,config);return this}};$.ScrollTo=$.ScrollTo||ScrollTo;$.fn.ScrollTo=$.fn.ScrollTo||ScrollTo.fn;return ScrollTo});
     2  ;(function($) {
     3      // Avoid embed thie site in an iframe of other WebSite
     4      if (top.location != location) {
     5          top.location.href = location.href;
     6      }
     7  
     8      (function(){
     9          // extend jQuery ajax, set xsrf token value
    10          var ajax = $.ajax;
    11          $.extend({
    12              ajax: function(url, options) {
    13                  if (typeof url === 'object') {
    14                      options = url;
    15                      url = undefined;
    16                  }
    17                  options = options || {};
    18                  url = options.url;
    19                  var xsrftoken = $('meta[name=_xsrf]').attr('content');
    20                  var headers = options.headers || {};
    21                  var domain = document.domain.replace(/\./ig, '\\.');
    22                  if (!/^(http:|https:).*/.test(url) || eval('/^(http:|https:)\\/\\/(.+\\.)*' + domain + '.*/').test(url)) {
    23                      headers = $.extend(headers, {'X-Xsrftoken':xsrftoken});
    24                  }
    25                  options.headers = headers;
    26                  var callback = options.success;
    27                  options.success = function(data){
    28                      if(callback){
    29                          callback.apply(this, arguments);
    30                      }
    31                  };
    32                  return ajax(url, options);
    33              }
    34          });
    35  
    36          $(document).ready(
    37              function() {
    38                  $(document).scroll(function() {
    39                      if ($(this).scrollTop() > 720) {
    40                          $('#backtop').removeClass('hidden');
    41                      } else {
    42                          $('#backtop').addClass('hidden');
    43                      }
    44                  });
    45                  $('#backtop').click(function() {
    46                      $('body, html').animate({
    47                          scrollTop: 0
    48                      });
    49                      return false;
    50                  })
    51                  window.console && window.console.info('Copyright 2014~2016 YouGam.com');
    52              }
    53          );
    54      })();
    55  
    56      $(function() {
    57          $(document).on("click", "[rel=comment-reply]", function() {
    58              var $e = $(this).parents(".comment:first"),
    59                  user = $e.data("user"),
    60                  floor = $e.data("floor"),
    61                  content = $(".reply-body-" + floor).html(),
    62                  v = "<blockquote>" + content + "</blockquote>" + "<p>#" + floor + " @" + user + ",</p>";
    63              $("#post-reply").ScrollTo();
    64              tinyMCE.activeEditor.setContent(v + tinyMCE.activeEditor.getContent())
    65          })
    66          var $comments = $('.post-comments');
    67  
    68          $(window).on('hashchange', function() {
    69              if (/#reply\d+/.test(window.location.hash)) {
    70                  $comments.find('.comment').removeClass('highlight');
    71                  var $e = $(window.location.hash);
    72                  $e.addClass('highlight');
    73              }
    74          });
    75          $(window).trigger('hashchange');
    76  
    77          $(document).on("click", "[rel=quick-reply]", function() {
    78              var $e = $(this),
    79                  target = $e.data("target"),
    80                  user = $e.data("user"),
    81                  v = "@" + user + ",",
    82                  tar = $("#"+target);
    83              tar.ScrollTo();
    84              tar.removeClass("hide");
    85              var c =$("input[name='comment']");
    86              c.val(v);
    87          })
    88      });
    89  })(jQuery);
    90  
    91  //读取cookies
    92  function getCookie(name) {
    93      var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    94      if (arr = document.cookie.match(reg))
    95          return unescape(arr[2]);
    96      else
    97          return null;
    98  };
    99  
   100  function showholder(id) {
   101      var s = document.getElementById(id);
   102      if ((s.value == -1) || (s.value == -2) || (s.value == -3)){
   103          document.getElementById("excerptor").style.display = "block";
   104      } else {
   105          document.getElementById("excerptor").style.display = "none";
   106      };
   107  };
   108  
   109  function jsDateDiff(publishTime) {
   110      var d_minutes, d_hours, d_days;
   111      var timeNow = parseInt(new Date().getTime() / 1000);
   112      var d;
   113      d = timeNow - publishTime;
   114      d_days = parseInt(d / 86400);
   115      d_hours = parseInt(d / 3600);
   116      d_minutes = parseInt(d / 60);
   117  
   118      if (d_days > 0 && d_days < 4) {
   119          return d_days + " 天之前";
   120      } else if (d_days <= 0 && d_hours > 0) {
   121          return d_hours + " 小时之前";
   122      } else if (d_hours <= 0 && d_minutes > 0) {
   123          return d_minutes + " 分钟之前";
   124      } else {
   125          var s = new Date(publishTime * 1000);
   126          // s.getFullYear()+"年";
   127          return (s.getMonth() + 1) + "月" + s.getDate() + "日";
   128      }
   129  };
   130  
   131  function getUnixTime(dateStr) {
   132      var newstr = dateStr.replace(/-/g, '/');
   133      var date = new Date(newstr);
   134      var time_str = date.getTime().toString();
   135      return time_str.substr(0, 10);
   136  };