2019年1月15日 周二

本文深入探讨了浏览器对象模型(BOM)与文档对象模型(DOM)的区别与联系,包括BOM如何操作浏览器窗口,DOM如何处理网页内容,以及二者在事件处理、鼠标操作和滚轮事件中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、浏览器对象模型(BOM)

1、BOM专门操作浏览器窗口的对象,而window又是BOM对象,非js对象 ;

2、window的方法,可以直接使用window对象的document属性进行访问、检索、修改XHTML文档内容与结构

​ (1)原因:因为document对象又是DOM模型的根节点。也就是说,BOM包含了DOM(对象),浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以直接操作浏览器以及浏览器读取到的文档。

​ (2)DOM和BOM的区别:DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口

3、常见的window对象和对象方法

 window.history;  //对 History 对象的只读引用
 window.location; //用于窗口或框架的 Location 对象
 window.event; //对 Event 对象的只读引用
 window.close(); //关闭窗口
 window.confirm("Are you sure?"); //弹出一个具有OK和Cancel按钮的询问对话框,返回一个布尔值
 window.location.search; //执行GET请求的URL中的问号后的部分,又称查询字符串,如?p=xxxx 
 window.location.hash; //如果URL包含#,返回该符号之后的内容,如#anchor1 
 window.location.replace("http:www.baidu.com"); //同assign(),但新地址不会被加到浏览器的历史栈中,不能通过back和forward访问
 window.onload; //window的加载事件
 window.onscroll; //window的滚动事件
 window.onresize; //window的窗口变化事件

4、获取鼠标和取消鼠标的兼容写法

//获取鼠标选中的文字
window.getSelection ? window.getSelection().toString() : document.selection.createRange().text; 
//取消鼠标选中的文字
 window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); 
 

二、事件对象:event

1、事件对象必须在一个事件调用的函数里面使用才有内容。函数是不是事件函数,不是定义时决定,而是调用时决定

 function fn1(){alert(event);} 
    //如果通过fn1()方式调用就不会有内容,用事件调用就有内容
    document.onclick = fn1;

2、事件流:当一个HTML元素产生一个事件时,该事件会在元素结点与根节点之间按特定的顺序传播,路径所经过的节点都会收到该事件,这个传播过程可称为DOM事件流。

(1)事件冒泡:是IE浏览器对事件模型的实现。从DOM树型结构上理解,就是事件由叶子节点沿祖先结点一直向上传递直到根节点。

(2)事件捕捉:它与冒泡型刚好相反,由DOM树最顶层元素一直到最精确的元素。

3、事件监听器

obj.addEventListener(事件名称,事件函数,是否捕获);  //事件监听
obj.removeEventListener(事件名称,事件函数,是否捕获); //解除事件监听

4、事件委托

function delegation(fEle,ele,attr,fn){
        ele = ele.toLowerCase();
        bind(fEle,attr,function (ev){
            ev = ev || event;
            var tar = ev.target || ev.srcElement; 
            if(ele[0]==="#"&&("#"+tar.id)===ele||
            ele[0]==="."&&tar.className.indexOf(ele.substring(1))!=-1||
            /[a-z]/.test(ele[0])&&tar.nodeName.toLowerCase()===ele){
                fn.call(tar);
            }
        })
    }

三、鼠标滚轮事件

1、在ie浏览器和谷歌浏览器的滚轮事件使用onmousewheel;而火狐浏览器的事件用DOMMouseScroll(该事件必须用addEventListener事件监听才能生效)

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
资 源 简 介 独立分量分析(Independent Component Analysis,简称ICA)是近二十来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系, 详 情 说 明 独立分量分析(Independent Component Analysis,简称ICA)是近二十来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。 本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系,在此基础上重点分析了一种快速ICA实现算法一FastICA。物质的非线性荧光谱信号可以看成是由多个相互独立的源信号组合成的混合信号,而这些独立的源信号可以看成是光谱的特征信号。为了更好的了解光谱信号的特征,本文利用独立分量分析的思想和方法,提出了利用FastICA算法提取光谱信号的特征的方案,并进行了详细的仿真实验。 此外,我们还进行了进一步的研究,探索了其他可能的ICA应用领域,如音乐信号处理、图像处理以及金融数据分析等。通过在这些领域中的实验和应用,我们发现ICA在提取信号特征、降噪和信号分离等方面具有广泛的潜力和应用前景。
<think>我们有两个需求: 1. 调整周末顺序,使周排在周六之前(即每周的第一为周)。 2. 将周几的显示格式改为简写形式:、一、二、...、六。 解决方案: 1. 调整顺序:使用`firstDay: 0`(0代表周)来设置每周的第一为周。 2. 修改显示格式:使用`dayHeaderFormat`选项,并提供一个函数或对象来定制期标题的显示。 具体步骤: - `dayHeaderFormat`可以是一个字符串,使用[期格式](https://fullcalendar.io/docs/date-formatting)中的令牌(tokens),也可以是一个函数。 - 对于简写形式,我们可以使用令牌`'dd'`,它会显示、一、二...六(在中文环境下)。 但是注意:在中文环境下,FullCalendar默认使用中文语言包时,`'dd'`应该会显示为“”、“一”等。 - 我们需要确保历使用中文语言包,设置`locale: 'zh-cn'`。 如果默认的`'dd'`不能满足(比如显示的不是单个字符),我们可以使用函数自定义。 示例代码: 使用`dayHeaderFormat: { weekday: 'short' }`,在中文环境下,`short`会显示为“周”、“周一”等,但我们只需要一个字,所以我们可以用函数自定义。 自定义函数示例: ```javascript dayHeaderFormat: function(arg) { // arg.date是一个Date对象 // 返回星期几的简写,我们只取最后一个字符(因为中文环境下,arg.date.toLocaleString('zh-cn', { weekday: 'short' })会返回“周”、“周一”等) // 但是注意:在中文中,我们通常用“”、“一”等一个字表示。 // 另外,也可以使用数组映射 var weekdays = ['', '一', '二', '三', '四', '五', '六']; return weekdays[arg.date.getDay()]; } ``` 但是,注意:在周视图下,`arg`是一个对象,包含`date`(该列的期)和`view`(当前视图)等信息。我们只需要返回一个字符串。 然而,FullCalendar提供了更简单的方式:使用`locale`和`dayHeaderFormat`的字符串格式。我们可以尝试: ```javascript locale: 'zh-cn', dayHeaderFormat: 'dd', // 在中文环境下,dd会显示为、一、二...六 ``` 所以,我们可以先尝试使用`dd`,因为这样最简单。 完整配置: ```javascript document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 设置周为第一 locale: 'zh-cn', // 设置中文环境 dayHeaderFormat: { weekday: 'short' // 或者直接使用字符串 'dd' }, // 或者直接使用字符串:dayHeaderFormat: 'dd', // 但注意:在中文环境下,'short'会显示如“周”,而'dd'会显示“”,所以我们更希望用'dd' // 实际上,在FullCalendar中,期表头的默认格式就是'dd',所以设置locale为中文后,默认就是显示一个字。 // 因此,我们也可以不设置dayHeaderFormat,因为默认就是'dd'。 }); calendar.render(); }); ``` 验证: 在中文环境下,设置`locale: 'zh-cn'`后,默认的期表头格式就是“”、“一”、“二”等。所以我们可以省略`dayHeaderFormat`设置。 因此,只需要: - 设置`firstDay: 0` - 设置`locale: 'zh-cn'` 注意:如果项目中没有引入中文语言包,需要先引入。使用CDN方式: ```html <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js"></script> ``` 如果使用npm包,则需要导入: ```javascript import { Calendar } from '@fullcalendar/core'; import zhCnLocale from '@fullcalendar/core/locales/zh-cn'; // 然后在配置中加入locale: zhCnLocale 或者 'zh-cn' ``` 完整示例(使用CDN): ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <link href='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/main.min.css' rel='stylesheet' /> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js'></script> <script> document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 周为第一 locale: 'zh-cn', // 使用中文 headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay' }, events: [ // 示例事件 { title: '会议', start: new Date() } ] }); calendar.render(); }); </script> </head> <body> <div id='calendar'></div> </body> </html> ``` 这样,周视图的表头将显示为:、一、二、三、四、五、六,且第一列是周。 相关问题: 1. 如何设置FullCalendar每周的第一为周一? 2. 如何在FullCalendar中隐藏周末? 3. FullCalendar如何自定义期标题的显示格式? 4. 如何为FullCalendar添加中文语言支持?</think>在 FullCalendar 中实现周为首列并简写期标题,需结合 `firstDay` 和期格式化选项。以下是完整解决方案: ### 解决方案步骤 1. **设置周为首列** 使用 `firstDay: 0`(0 表示周): ```javascript firstDay: 0, // 周作为每周第一 ``` 2. **简写期标题格式** 通过 `dayHeaderFormat` 自定义格式(需配合中文语言包): ```javascript locale: 'zh-cn', // 启用中文环境 dayHeaderFormat: { weekday: 'short' // 简写格式:/一/二等 }, ``` ### 完整示例代码 ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/main.min.css' rel='stylesheet'> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/index.global.min.js'></script> <script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.11/locales/zh-cn.global.min.js'></script> <script> document.addEventListener('DOMContentLoaded', function() { const calendarEl = document.getElementById('calendar'); const calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridWeek', firstDay: 0, // 周为首列 locale: 'zh-cn', // 中文环境 dayHeaderFormat: { // 简写标题 weekday: 'short' // 显示为/一/二等 }, headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek' } }); calendar.render(); }); </script> </head> <body> <div id='calendar'></div> </body> </html> ``` ### 关键配置说明 | **配置项** | **值** | **作用** | |--------------------|-----------|----------------------------------| | `firstDay` | `0` | 设置周为每周第一 | | `locale` | `'zh-cn'` | 启用中文语言环境 | | `dayHeaderFormat` | `{ weekday: 'short' }` | 简写期标题为单字符(/一/二等) | ### 效果对比 - **默认顺序**:周一 → 二 → 三 → 四 → 五 → 六 → - **调整后顺序**:**** → 一 → 二 → 三 → 四 → 五 → 六 - **标题格式**:从“星期/星期一”简化为“/一/二” ### 注意事项 1. **语言包依赖**:必须引入中文语言包(通过 CDN 或 npm 安装) 2. **多视图支持**:此配置同样适用于 `timeGridWeek` 等视图 3. **移动端适配**:自动响应式布局,无需额外设置 4. **高级自定义**:如需更复杂格式,可用函数自定义: ```javascript dayHeaderFormat: function(arg) { const days = ['', '一', '二', '三', '四', '五', '六']; return days[arg.date.getDay()]; } ``` [^1]: FullCalendar 期格式化文档:[Date Formatting](https://fullcalendar.io/docs/date-formatting)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值