在页面上显示今天 月相 jQuery jsRapMoon

  • 源码大小:112.71KB
  • 所需积分:1积分
  • 源码编号:19JP-3468
  • 浏览次数:723次
  • 最后更新:2023年06月16日
  • 所属栏目:时间和时钟
本站默认解压密码:19jp.com 或 19jp_com

简介

jsRapMoon是一个非常小的jQuery插件,它可以让你在网页上创建一个显示当前月相的月亮图形。

如何使用它:

1.制作一个空容器,将月亮的照片放在里面。

  1. <div id="moonPhase"></div>

2.在文档中加载jQuery jsRapMoon插件的JavaScript和样式表。就是这样。

  1. <link rel="stylesheet" href="jsRapMoon.css" />
  2. <script src="/path/to/cdn/jquery.slim.min.js"></script>
  3. <script src="jsRapMoon.js"></script>

3.退房jsRapMoon.js看看这个插件是如何计算和可视化月相的。

  1. $(window).resize(function () {
  2. $('.rapMoon').each(function () {
  3. this.Render();
  4. });
  5. });
  6. (function ($) {
  7. $.fn.jsRapMoon = function (options) {
  8. return this.each(function () {
  9. this.Render = function () {
  10. var w = $(this).width();
  11. var dark = '#444';
  12. var synodicMonth = 29.530588853;
  13. var curDate = new Date();
  14. var orgDate = new Date(2012, 7, 31, 0, 0, 0, 0);
  15. var milSec = curDate.getTime() - orgDate.getTime();
  16. var daysElapsed = parseInt(milSec / 1000 / 60 / 60 / 24);
  17. var daysSinceLast = daysElapsed % synodicMonth;
  18. var phase = daysSinceLast / synodicMonth;
  19. $(this).height(w).addClass('rapMoon');
  20. $('<div>').addClass('light').appendTo(this);
  21. $('<div>').addClass('texture').appendTo(this);
  22. $('.light').css('filter', 'blur(' + (w / 24) + 'px)');
  23. if (phase < 0.25)
  24. $('.light').css({
  25. 'border-right-width': (phase * 2 * w),
  26. 'border-left-color': '#fff',
  27. 'background-color': '#fff',
  28. 'border-right-color': dark
  29. });
  30. else if (phase < 0.5)
  31. $('.light').css({
  32. 'border-left-width': ((0.5 - phase) * 2 * w),
  33. 'border-left-color': '#fff',
  34. 'background-color': dark,
  35. 'border-right-color': dark
  36. });
  37. else if (phase < 0.75)
  38. $('.light').css({
  39. 'border-right-width': ((phase - 0.5) * 2 * w),
  40. 'border-left-color': dark,
  41. 'background-color': dark,
  42. 'border-right-color': '#fff'
  43. });
  44. else
  45. $('.light').css({
  46. 'border-left-width': ((1 - phase) * 2 * w),
  47. 'border-left-color': dark,
  48. 'background-color': '#fff',
  49. 'border-right-color': '#fff'
  50. });
  51. }
  52. this.Render();
  53. })
  54. }
  55. })(jQuery);

预览截图