javascript 手写OOP简易年历

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .container {
            width: 220px;
            border: 20px lightgreen solid;
            margin: 20px auto;
        }
        ul {
            margin: 0;
            padding: 0;
            width: 220px;
            text-align: center;
            background-color: grey;
        }
        li {
            list-style-type: none;
            display: inline-block;
            width: 60px;
            height: 60px;
            margin: 3px;
            padding: 0;
            border: 0;
            background-color: #ffffff;
        }
        .active {
            background-color: red;
        }
        .container div {
            background-color: gray;
            height: 100px;
        }
    </style>
    <script type="text/javascript">

        function DateGuo(oDiv){
            this.aLi = oDiv.getElementsByTagName(‘li‘);
            this.oDivIn = oDiv.getElementsByTagName(‘div‘)[0];
            this.aGuoH1 = [‘1月‘,‘2月‘,‘3月‘,‘4月‘,‘5月‘,‘6月‘,‘7月‘,‘8月‘,‘9月‘,‘10月‘,‘11月‘,‘12月‘];
            this.aGuoP = [
                ‘一月的靖哥哥‘,
                ‘二月的靖哥哥‘,
                ‘三月的靖哥哥‘,
                ‘四月的靖哥哥‘,
                ‘五月的靖哥哥‘,
                ‘六月的靖哥哥‘,
                ‘七月的靖哥哥‘,
                ‘八月的靖哥哥‘,
                ‘九月的靖哥哥‘,
                ‘十月的靖哥哥‘,
                ‘十一月的靖哥哥‘,
                ‘十一月的靖哥哥‘
            ];
            this.setClick();
        }
        DateGuo.prototype.setClick = function(){
            var _this = this;
            for(var i=0;i<this.aLi.length;i++) {
                this.aLi[i].index = i;
                this.aLi[i].onmouseover = function () {
                    this.className = ‘active‘;
                    _this.oDivIn.innerHTML = "<h1>"+_this.aGuoH1[this.index]+"</h1><p>"+_this.aGuoP[this.index]+"</p>";
                };
                this.aLi[i].onmouseout =function(){
                    this.className = ‘‘;
                };
            }
        };
        window.onload = function(){
            var oDiv = document.getElementsByClassName(‘container‘)[0];
            var oDateGuo = new DateGuo(oDiv);
        };
    </script>
</head>
<body>
<div class="container">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>61</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
        <li>11</li>
        <li>12</li>
    </ul>
    <div>
        <h2>hello</h2>
        <p>my lady</p>
    </div>
</div>
</body>
</html>
时间: 2024-10-08 03:03:51

javascript 手写OOP简易年历的相关文章

仅用原生JavaScript手写DOM事件模型

前言 前段时间博客园里有篇很火的帖子2016十家公司前端面试小记,主要讲作者的前端求职面试经历,其中提到了面试官会考察手写一个简单的事件模型: "如果上述都ok的话,那么极有可能要求让你[实现事件模型],即写一个类或是一个模块,有两个函数,一个bind一个trigger,分别实现绑定事件和触发事件,核心需求就是可以对某一个事件名称绑定多个事件响应函数,然后触发这个事件名称时,依次按绑定顺序触发相应的响应函数." 如果了解观察者模式,那么事件模型应该不算太难.本着深入钻研的精神,我试着来

22 道高频 JavaScript 手写面试题及答案

实现防抖函数(debounce) 防抖函数原理:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时. 那么与节流函数的区别直接看这个动画实现即可. 手写简化版: // 防抖函数 const debounce = (fn, delay) => { let timer = null; return (...args) => { clearTimeout(timer); timer = setTimeout(() => { fn.apply(this, args); }, del

手写一个简易的IOC

这个小项目是我读过一点Spring的源码后,模仿Spring的IOC写的一个简易的IOC,当然Spring的在天上,我写的在马里亚纳海沟,哈哈 感兴趣的小伙伴可以去我的github拉取代码看着玩 地址: https://github.com/zhuchangwu/CIOC 项目中有两种方式实现IOC: 第一种是基于dom4j实现的解析XML配置文件版 第二种是基于自定义注解实现全配置版 全注解版 模仿Spring原生的IOC机制如下: Interface类型的beanDefinition不会被实

初学Javascript,写一个简易的登陆框

<!--下面是源代码--> <!DOCTYPE html> <html> <head> <meta charset = "utf-8"> </head> <!--<script type = "text/javascript" src = "test.js"> --> <!-- </script> --> <script&

自己手写一个简易的警告框,和关于滚动条的那些事儿

初来乍到,请大家多多指教! 这已经是我工作的第二周了,刚刚到公司还是有许多的不适应与羞涩,更多的是紧张,随时都会被项目惊醒,公司只有我一个前端开发,对于没有开发经验的我来说无疑是一个挑战,而且这一周正式算做项目的日子,为期一个月,做的是公司的关于账号和作品等的一个内部管理系统,感觉写起来没有什么要求,但就最怕这种没有要求的东西,没有人管,没人指导,感觉什么都只有按照自己以往一贯的书写代码的方式来,最怕最后不合格........呵呵呵,也许这就是我一个初到职场,一个小小菜鸟的畏畏缩缩的小心理吧!

手写一个简易版Tomcat

前言 Tomcat Write MyTomcat Tomcat是非常流行的Web Server,它还是一个满足Servlet规范的容器.那么想一想,Tomcat和我们的Web应用是什么关系? 从感性上来说,我们一般需要把Web应用打成WAR包部署到Tomcat中,在我们的Web应用中,我们要指明URL被哪个类的哪个方法所处理(不论是原始的Servlet开发,还是现在流行的Spring MVC都必须指明). 由于我们的Web应用是运行在Tomcat中,那么显然,请求必定是先到达Tomcat的.To

Javascript手写call, apply, bind

call方法实现 1 Function.prototype.mycall = function(context) { 2 var context = context || window 3 context.fn = this 4 var args = [...arguments].slice(1) 5 var result = context.fn(...args) 6 delete context.fn 7 return result 8 } 9 var a = {name: 'ss'} 10

手写一个简易的ajax请求

function ajax(url){ const p=new Promise((resolve,reject)=>{ const xhr=XMLHttpRequest() xhr.open('GET','/data/test.json',true) xhr.onreadystatechange=function(){ if(xhr.readyState===4){ if(xhr.status===200){ JSON.parse(xhr.responseText) }else if(xhr.s

简易-五星评分-jQuery纯手写

超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 第二步: 写HTML代码:这里的星星我用的是符号的星星,也可以做成图片,用2张背景图片进行切换: 1 <div class="score_star"> 2 <i