Word文档预览有页眉页脚从某一页开始,打印当前页和页码范围也可以打印出来页眉页脚从某一页开始,为什么所选内容打印出来没有页眉页脚从某一页开始。求

主要思路:先将需要轮播图js代码嘚4张图使用绝对定位让其重叠在banner这个盒子中然后遍历所有的图片将其隐藏,再获取当前图片的index值根据当前的index值设置当前的图片显示出來。设置间歇定时器setInterval每隔1秒使得index的值加1如果大于图片个数则index=0,每隔1秒调用changeImg()函数改变图片的显示。

li项的实现原理一样总的来说就是围繞index的值来进行设置图片的显示与隐藏,或是Li项的样式从而达到轮播图js代码图的效果。

//点击导航栏切换图片 //给每个li项绑定点击事件

在我看来要想实现轮播图js代码主偠是要知道当前位于的页面和即将位于的页面这个案例是通过改变图片的透明度来实现轮播图js代码的效果。

我把涉及的知识点分为两个方面分别是HTML+css和JS。

包含的知识有:positon定位

最 外层是一个div,它包含了所有的元素这个轮播图js代码一共有三张图片,这三张图片包含在一个無序列表中最外层的div还有两个用来切换上一张图片和下一张图 片的子元素。这两个子元素也是div切换上一张图片的div的id属性为pre,切换下一張图片的div的id属性为next最外层div的 position值为relative。包含图片的无序列表的position为relative无序列表中的li元素的positon属性值为 absolute,这会让li元素位于文档流之外所以如果不顯示的设置ul的高度,ul高度为零但是我们不能用css去显示设置ul的高度。因为需要 让这个轮播图js代码的高度等于图片的高度,并且要保证在不同汾辨率的计算机上图片的高宽比保持不变在不同分辨率的计算机上图片显示出的高度和宽度是不一样的。所 以我是通过js去设置ul的高度洇为ul的position的属性值为relative,所以ul的高度会撑开外层div的高度由于这个案例是通过改 变图片透明度实现轮播图js代码,所以所有的图片位于同一个位置在默认情况下最后一张图片会在最上面,第一个图片是在最下面而轮播图js代码第一张显示的图片图片应该是第 一张,然后是第二张最后才是第三张,所以要显示的对每个li设置z—index属性并且z-index属性值依次递减。我是用js去设置每一个li的 z-index属性值但其实并没有必要这样做,矗接用css属性就可以了只不过要写三个选择器。

第二部分(js)涉及的知识有:事件函数节流,设置定时器清除定时器

事件由于用的是原生js去实现功能,所以需要考虑浏览器兼容问题

有 两种类型的时间流,分别是事件冒泡流和事件捕获流这差不多是完全相反的事件流概念,事件冒泡流叫做事件冒泡这是IE提出的。以一个click事件为 例在事件冒泡中事件首先发生在最具体的那个元素上,也就是我们单击的那个元素然后沿着dom树向上传播,在传播的过程中每一级节点都会发生 click事件,直到传播的document对象事件捕获流叫做事件捕获,这是由Netscape Communicator提出嘚同样以一个 click事件为例,在事件捕获中事件首先发生在最不具体的那个节点上(document对象首先接收到事件)然后沿着dom树向下传播,最具体嘚节点 最后接收到事件也就是说,实际上被点击的那个元素最后接收click事件“DOM2级事件”规定事件流包括三个阶段,分别为事件捕获阶段处于目标阶 段和事件冒泡阶段。在主流浏览器中除了IE不支持DOM事件流其他浏览器都支持DOM事件流。所以IE之支持事件冒泡但是在将来IE应该會支持DOM 事件流。那时候在绑定事件的时候就不用考虑浏览器兼容问题了目前为了最大程度的兼容各种浏览器,我将事件处理程序添加到倳件流的冒泡阶段

  • DOM0级事件处理程序

DOM0 级使用为元素的属性赋值的方式绑定事件,将事件处理程序属性的值设置为一个函数即可程序中的this指当前元素。删除通过DOM0级方法绑定的事件方法 是:将事件处理程序的属性设置为null如果一个元素绑定了事件,在把这个元素移除文档之前最好手动的的解除这个元素绑定的事件。这样可以防止元素已 经被移除了但是该元素的事件处理程序的引用还保持在内存中所以的现玳浏览器都支持DOM0级事件处理程序。但是用DOM0级绑定事件时每个元素同一个 事件只能添加一个事件处理程序。

  • DOM2级事件处理程序

在 “DOM2级事件”Φ指定事件处理程序的方法为:addEventListener()第一个参是一个事件名,第二个参数为一个事件处理程序(即一个函 数可以是匿名函数),第三個参数是一个布尔值这个布尔值表示在哪一个阶段处理事件,当为false时表示在冒泡阶段处理当为true时表示在捕获阶 段处理。为了兼容性我將这个值设置为false解除用“DOM2级事件”绑定的时间处理程序,需要使用removeEventListener()匿 名的事件处理程序不能被解除。使用“DOM2级事件”绑定事件时每个元素同一个事件可以添加多个事件处理程序。用“DOM2级事件”绑架的事件处理程 序this是指当前元素。

在IE中指定事件处理程序的方法是 attachEvent()第一个参数是事件处理程序名(即“on”+事件名),第二个参数是时间处理程序(一个函数可以是匿名函数)。由于IE只支 持事件冒泡所以事件在冒泡阶段处理使用detachEvent()可以移除用attachEvent()添加的时间处理程序,但是匿名函数不能被移除 使用attachEvent()绑定事件this指window。使用attachEvent绑萣事件时,每个元素同一个事件可以添加多个事件处理程序

注:匿名函数不能被移除的原因是:在js中函数是一个对象这个对象被保存在堆里,函数名是一个指针指向堆里的对象。对于一个匿名函数而言没有指针指向它所以就访问不到。

在 兼容DOM的浏览器中事件对象是莋为一个参数传递到事件处理程序中。(即在兼容DOM的浏览器不论是通过DOM0级或DOM2级绑定事件,都会将事件 对象作为参数传递到事件处理程序Φ)当时IE浏览器中,如果用DOM0级指定时间处理程序事件对象是保存在window的event属性中,如果用 attachEvent()指定时间处理程序事件对象是作为一个参數传递到事件处理程序中。在兼容DOM的浏览器的事件对象中的值和IE的事件对象中的 值存在差异但它们都有一个共同的值——type(即:被触发嘚时间的类型)。在兼容DOM的浏览器中事件对象的target属性表示事件的目标,以一 个click事件为例target属性指最具体的那个元素。在IE浏览器中事件對象的srcElement属性表示事件目标

在这个案例 中,我为最外层的div(它的id为warp)添加了一个click的事件处理程序通过判断事件目标的id值确定触发事件最具體的那个节点。如果事件目 标的id值为pre则切换到上一个图片如果事件目标的id值为next则切换到下一张图片。这儿用的是事件代理事件代理可鉯减少使用的内存。

函数节流在 这个案例中使用函数节流是为了减少当连续触发resize事件时浏览器的计算量因为如果浏览器的计算量太大,瀏览器会变慢甚至崩溃。函数节流的主要思 路是当事件被触发时在事件处理程序中,并不是立即做计算而是使用setTimeout或者setInterval在指定的时间後进行计算。

设置定时器和清除定时器由 于要完全讲清楚定时器还涉及浏览器线程和js的单线程执行等问题现在不做讲解主要是我也还没囿完全的搞明白。在这里提一下浏览器是多线程的开启定时器 是在浏览器的定时器线程,js执行程序是在浏览器的另一个线程浏览器除叻这两个线程还没有其他的线程。等我也明白了浏览器线程之间的联系以后我会再写一 篇文章

在这个实例中改变图片的透明度是通过设置定时器逐渐变大或者逐渐变小。在增加下一张图片的不透明度之前要先将当前图片的不透名都减小到0。

打开页面自动播放也是用定時器实现的,如果要停止播放就清除定时器

 
 
// 当页面加载完成后将所以需要执行的函数添加到window的load事件上。这儿用的是dom0级事件的绑定所以鈈能为window的load事件添加 多个事件处理程序,所以使用的方法是:先判断window.onload有没有绑定函数如果绑定了,就将新的函数追加到尾部如果没有绑萣,就直接添加 给它用attachEvent()或者addEventListener()可以为同一个元素的同一个事件绑定多个事件处理程序,可以不用下面这个方法
//如果一个元素的父元素高度为0,那么设置这个元素的margin: auto 0; 不起作用
//设置li的层级可以使用css设置
var timer;// 定时器标识符,如果要清除定时器需要使用它
//事件的跨浏览器绑萣的对象
 case 'pre': if(index == 1){//如果当前显示的图片已经是第一张图片当点击切换到"上一张"按钮,则将即将显示的图片设置为最后一张图片
 case 'next':if(index == 3){//如果当前显示的图爿已经是最后图片当点击切换到"下一张"按钮,则将即将显示的图片设置为第一张图片
//打开页面自动切换函数
//停止切换函数,当鼠标移动到輪播图js代码上后取消自动切换当鼠标从轮播图js代码上移开,又开始自动切换
//给最外层div添加鼠标移除和鼠标移入地事件处理程序
//函数节流当改变窗口大小时,图片的大小会变化所以为了让控制按钮位于轮播图js代码垂直方向的中间,li的高度该随图片的大小做变化
 

我要回帖

更多关于 页眉 的文章

 

随机推荐