jquery实现悬浮带提示文字的日历效果代码
代码语言:html
所属分类:布局界面
代码描述:jquery实现悬浮带提示文字的日历效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style> * { margin: 0; padding: 0; } body { font-family: "Microsoft Yahei"; font-size: 12px; color: #888; } a, a:hover { color: #888; text-decoration: none; } ul, li { list-style: none; } .calendar { display: none; width: 350px; padding: 10px; margin: 30px auto 0; background-color: #fafafa; border-radius: 6px; } .calendar-title { position: relative; height: 30px; line-height: 30px; padding: 10px 0; } .calendar-title a.title { display: inline-block; font-size: 26px; text-indent: 10px; } #backToday { position: absolute; left: 70%; top: 8px; width: 40px; height: 40px; line-height: 40px; text-align: center; border-radius: 50%; color: #fff; background-color: rgb(255, 128, 142); font-size: 18px; } .calendar-title .arrow { position: absolute; top: 10px; right: 0; width: 50px; } .calendar-title .arrow span { color: #ddd; font-size: 26px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; } .calendar-title .arrow span:hover { color: #888; } .calendar-title .arrow-prev { float: left; } .calendar-title .arrow-next { float: right; } .calendar-week, .calendar-date { overflow: hidden; } .calendar-week .item, .calendar-date .item { float: left; width: 50px; height: 50px; line-height: 50px; text-align: center; } .calendar-week { padding-bottom: 6px; border-bottom: 1px solid rgb(255, 128, 142); font-weight: bold; font-size: 16px; } .calendar-date {} .calendar-date .item { border-radius: 50%; cursor: pointer; font-size: 14px; } .calendar-date .item:hover, .calendar-date .item-curMonth:hover { background-color: #f0f0f0; } .calendar-date .item-curMonth { color: #333; } .calendar-date .item-curDay, .calendar-date .item-curDay:hover { color: #fff; background-color: rgb(255, 128, 142); } .calendar-today { display: none; opacity: 0; position: absolute; right: 20px; top: 20px; width: 90px; height: 48px; padding: 6px 10px; background-color: rgb(255, 128, 142); border-radius: 5px; } .calendar-today .triangle { position: absolute; top: 50%; left: -16px; margin-top: -8px; border-width: 8px; border-style: solid; border-color: transparent rgb(255, 128, 142) transparent transparent; } .calendar-today p { color: #fff; font-size: 14px; line-height: 24px; } </style> </head> <body> <div id="calendar" class="calendar"></div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script> <script> // 关于月份: 在设置时要-1,使用时要+1 $(function () { $('#calendar').calendar({ ifSwitch: true, // 是否切换月份 hoverDate: true, // hover是否显示当天信息 backToday: true // 是否返回当天 }); }); ;(function ($, window, document, undefined) { var Calendar = function (elem, options) { this.$calendar = elem; this.defaults = { ifSwitch: true, hoverDate: false, backToday: false }; this.opts = $.extend({}, this.defaults, options); // console.log(this.opts); }; Calendar.prototype = { showHoverInfo: function (obj) { // hover 时显示当天信息 var _dateStr = $(obj).attr('data'); var offset_t = $(obj).offset().top + (this.$calendar_today.height() - $(obj).height()) / 2; var offset_l = $(obj).offset().left + $(obj).width(); var changeStr = _dateStr.substr(0, 4) + '-' + _dateStr.substr(4, 2) + '-' + _dateStr.substring(6); var _week = changingStr(changeStr).getDay(); var _weekStr = ''; this.$calendar_today.show(); this.$calendar_today .css({left: offset_l + 30, top: offset_t}) .stop() .animate({left: offset_l + 16, top: offset_t, opacity: 1}); switch(_week) { case 0: _weekStr = '星期日'; break; case 1: _weekStr = '星期一'; break; case 2: _weekStr = '星期二'; break; case 3: _weekStr = '星期三'; break; case 4: _weekStr = '星期四'; break; case 5: _weekStr = '星期五'; break; case 6: _weekStr = '星期六'; break; } this.$calendarToday_date.text(changeStr); this.$calendarToday_week.text(_weekStr); }, showCalendar: function () { // 输入数据并显示 var self = this; var year = dateObj.getDate().getFullYear(); var month = dateObj.getDate().getMonth() + 1; var dateStr = returnDateStr(dateObj.getDate()); var firstDay = new Date(year, month - 1, 1); // 当前月的第一天 this.$calendarTitle_text.text(year + '/' + dateStr.substr(4, 2)); this.$calendarDate_item.each(function (i) { // allDay: 得到当前列表显示的所有天数 var allDay = new Date(year, month - 1, i + 1 - firstDay.getDay()); var allDay_str = returnDateStr(allDay); $(this).text(allDay.getDate()).attr('data', allDay_str); if (returnDateStr(new Date()) === allDay_str) { $(this).attr('class', 'item item-curDay'); } else if (returnDateStr(firstDay).substr(0, 6) === allDay_str.substr(0, 6)) { $(this).attr('class', 'item item-curMonth'); } else { .........完整代码请登录后点击上方下载按钮下载查看
网友评论0