最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

基于jQuery的模仿新浪微博时间的组件_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:00:56
文档

基于jQuery的模仿新浪微博时间的组件_javascript技巧

基于jQuery的模仿新浪微博时间的组件_javascript技巧:首先,说下有些人说这是重复造轮子,但我觉得不是,做项目,总不能老是拿别人的东西来吧,拿来主义并不是神马好玩意,当然如果你想轻松,也没话说,至少说我自己做得,我改起来或者扩展比较方便 效果以及代码如下,预览效果自己放在html里面把,搞在这个页面上麻烦得很
推荐度:
导读基于jQuery的模仿新浪微博时间的组件_javascript技巧:首先,说下有些人说这是重复造轮子,但我觉得不是,做项目,总不能老是拿别人的东西来吧,拿来主义并不是神马好玩意,当然如果你想轻松,也没话说,至少说我自己做得,我改起来或者扩展比较方便 效果以及代码如下,预览效果自己放在html里面把,搞在这个页面上麻烦得很


首先,说下有些人说这是重复造轮子,但我觉得不是,做项目,总不能老是拿别人的东西来吧,拿来主义并不是神马好玩意,当然如果你想轻松,也没话说,至少说我自己做得,我改起来或者扩展比较方便
效果以及代码如下,,预览效果自己放在html里面把,搞在这个页面上麻烦得很
代码如下:



Untitled Page












//全部包裹
var sookerTime = (function ($) {
var OBJ;
function isLeap(year) { return (year % 100 == 0 ? (year % 400 == 0 ? 1 : 0) : (year % 4 == 0 ? 1 : 0)); }
function isValid(d) { return (d.getTime() - (new Date()).getTime() < 0) ? true : false; } //是否在今天以后
function setDate(year, month) { //建立日期table
var n1 = new Date(year, month, 1),
firstday = n1.getDay(),
mdays = new Array(31, 28 + isLeap(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
rows = Math.ceil((mdays[month] + firstday) / 7),
table = $("", { "class": "days" }),
tbody = $("");
$("#calendar").find(".days").remove();
for (var i = 0; i < rows; i++) {
var tr = $("");
for (j = 0; j < 7; j++) {
var idx = i * 7 + j,
d = idx - firstday + 1;
if (d <= 0 || d > mdays[month]) { //无效日期
d = " "
}
var td = $("
", { html: d }).appendTo(tr);
if (isValid(new Date(year, month, d))) { //今天以后的时间都不绑定时间
td.addClass("before");
td.hover(function () {
$(this).addClass("day");
}, function () { $(this).removeClass("day"); }).click(function () {
OBJ.attr("value", $("#calendar .year").attr("value") + "-" + (parseInt($("#calendar .month").attr("value")) + 1) + "-" + $(this).text());
$("#calendar").css("display", "none");
});
}
}
tr.appendTo(tbody);
}
tbody.appendTo(table);
$("#calendar").append(table);
}
function createTime() {
var calendar = $("", { "class": "pc_caldr", id: "calendar" }),
td = new Date(),
of = OBJ.offset();
if (document.getElementById("calendar")) {
calendar = $("#calendar").css({ left: of.left, top: of.top + 18, display: "block" });
setDate(td.getFullYear(), td.getMonth());
$("#calendar .year").attr("value", td.getFullYear());
$("#calendar .month").attr("value", td.getMonth());
} else {
var se = "
  • ";
    calendar.css({ left: of.left, top: of.top + 18 }).html(se).appendTo($("body"));
    setDate(td.getFullYear(), td.getMonth());
    $("#calendar .year").attr("value", td.getFullYear());
    $("#calendar .month").attr("value", td.getMonth());
    bindClick();
    }
    }
    function bindClick() { //给下拉列表绑定时间
    var a = $("#calendar .month"),
    b = $("#calendar .year");
    a.change(function () {
    setDate(b.attr("value"), $(this).attr("value"));
    });
    b.change(function () {
    setDate($(this).attr("value"), a.attr("value"));
    });
    }
    return {
    init: function (obj) { //返回调用的接口
    OBJ = obj;
    createTime();
    }
    }
    })(jQuery);
    //使用方法
    $(".tiemin").focus(function(){
    sookerTime.init($(this));
    });



    文档

    基于jQuery的模仿新浪微博时间的组件_javascript技巧

    基于jQuery的模仿新浪微博时间的组件_javascript技巧:首先,说下有些人说这是重复造轮子,但我觉得不是,做项目,总不能老是拿别人的东西来吧,拿来主义并不是神马好玩意,当然如果你想轻松,也没话说,至少说我自己做得,我改起来或者扩展比较方便 效果以及代码如下,预览效果自己放在html里面把,搞在这个页面上麻烦得很
    推荐度:
    标签: 技巧 日期 js
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    Top