`
yumo12
  • 浏览: 18519 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

js一起学10:DOM高级——offsetParent、scrollBottom、焦点事件、image对象和toFixed、表单

    博客分类:
  • js
阅读更多
一、新的属性操作方式
(1).
(2)[ ]
(3)getAttribute(属性名)-----获取自定义属性
(4)setAttribute(属性名,属性值)----设置属性
(5)setAttribute配合getAttribute使用
oBtn.setAttribute('index','2');
alert(oBtn.getAttribute('index'));
二、offsetParent
获取定位的父级
offsetTop:元素距离其offsetParent上边框的距离

例子:

<style>

*{margin:0; padding:0;}

#div1{width:500px; height:400px; background:#ccc; margin:10px; padding:10px;}

#div2{width:400px; height:300px; background:yellow; margin:10px;padding:10px; position:absolute; top:40px; left:40px;}

#div3{width:300px; height:200px; background:red; margin:10px;}

</style>

 var oDiv3 = document.getElementById('div3');

 var oDiv2 = oDiv3.offsetParent;

 var j3 = oDiv3.offsetTop;  //oDiv3有10px的margin,其有定位的父级oDiv2有10px的padding,所以是20px

 var j2= oDiv2.offsetTop;   //为啥是50px呢?因为oDiv2是绝对定位,所以位置和oDiv1没有关系,所以offsetTop是top的10px加上margin的10px

 alert(j2+j3);

三、scrollBottom=scrollTop+clientHeight
if(top<scrollBottom){
    显示
}

例:图片延时加载

function getPos(obj){

 var t =0;

 var l =0;

 while(obj){

  t+=obj.offsetTop;

  l+=obj.offsetLeft;

  obj=obj.offsetParent;

 }

 return {top:t,left:l};

}

window.onload=function(){

 var aImg = document.getElementsByTagName('img');

 loadImgs();

 window.onscroll=window.onresize=loadImgs;

 function loadImgs(){

  for(var i=0;i<aImg.length;i++){

   var top = getPos(aImg[i]).top;

   var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;

   var scrollBottom = scrollTop+document.documentElement.clientHeight;

   if(top<scrollBottom){

    aImg[i].src=aImg[i].getAttribute('_src');

   }

  }

 };

};

四、获取元素
getElementsByTagName
getElementsByName
getElementsByClassName
children(不是真正的数组,用不了数组的函数)
五、scrollHeight---获取内容的高度
var oDiv = document.getElementById('box');
alert(oDiv.scrollHeight);
 alert(document.body.scrollHeight);
例子:瀑布流
function rnd(n,m){
     return parseInt(n+Math.random()*(m-n));
}
function createLi(){
     var oLi=document.createElement('li');
     oLi.style.background='rgb('+rnd(0,256)+','+rnd(0,256)+','+rnd(0,256)+')';
     oLi.style.height=rnd(120,350)+'px';
     return oLi;
}
window.onload=function(){
     var aUl=document.getElementsByTagName('ul');
     create();
     function create(){
          for(var i=0;i<20;i++){
               var oLi=createLi();
               var arr=[];
               for(var j=0;j<aUl.length;j++){
                    arr.push(aUl[j]);
               }
               arr.sort(function(oUl1,oUl2){
                    return oUl1.offsetHeight-oUl2.offsetHeight;
               });
               arr[0].appendChild(oLi);
          }
     }
     window.onscroll=function(){
          var height=document.body.scrollHeight; //内容高度
          var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
          if(scrollTop>=height-document.documentElement.clientHeight-500){
               setTimeout(function(){
                    create();
               },300);
          }
     }
}
六、焦点事件
1.  onfocus   获取焦点事件
     onblur     失去焦点
2.  focus()  设置焦点
     blur()     取消焦点
输入框自动获取焦点
window.onload=function(){
    var oInp=document.getElementsByTagName('input')[0];
    var oS=document.getElementsByTagName('span')[0];
    oInp.onfocus=function(){
        oS.style.display='none';
    }
    oInp.onblur=function(){
        if(oInp.value==''){
            oS.style.display='block';
        }
    }
    oS.onclick=function(){
        oS.style.display='none';
        oInp.focus();
    }
}
、tofixed 保留几位小数
 alert(0.55555555.toFixed(0));
image对象
new Image();
onload---当图片加载完成时
onerror---当加载失败时
例子:进度条
window.onload=function(){
    var oDiv1=document.getElementById('div1');
    var oDiv2=document.getElementById('div2');
    var count=0;
    for(var i=0;i<77;i++){
        var oImg=new Image();
        oImg.onerror=function(){
            alert(this.src+'加载失败');
        }
        oImg.onload=function(){
            count++;
            var scale=count/77;
            oDiv2.innerHTML=(scale*100).toFixed(2)+'%';
            oDiv2.style.width=oDIv1.offsetWidth*scale+'px';
            if(count==77){
                alert('加载完成');
            }
        }
        oImg.src="http://www.zhinengshe.com/works/3525/img/"+i+".jpg";
    }
}
<div id="div1">
    </div id="div2"></div>
</div。
九、表单
1. 把数据提交给服务器
    action 地址      name 名字      submit 提交
    id是给前台用的。name给后台用的。 name可以重复 
    getElementsByName 通过name获取一组元素
2. method----提交方式 
(1)get   数据在url中(适合分享)  默认的     容量很小   32k      不安全 
post 数据不在url中(无法分享)              容量非常大  1G      相对安全 
http://tieba.baidu.com/home/main?un=%E8%90%8C%E9%A6%85%E5%B0%8F%E6%B1%A4%E5%9C%86&ie=utf-8&fr=pb 

https security---安全http协议 (花钱)
分享到:
评论

相关推荐

    轻量级 JS ToolTip提示效果

    JS: 代码如下: //—————————tooltip效果 start———————————– //获取某个html元素的定位 function GetPos(obj){ var pos=new Object(); pos.x=obj.offsetLeft; pos.y=obj.offsetTop; while(obj=...

    jQuery对象与DOM对象之间的相互转换

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作和事件处理。然而,jQuery对象和DOM对象之间存在差异,需要了解它们之间的转换方法,以便在开发过程中灵活运用。 **jQuery对象转换成DOM对象** ...

    JS OffsetParent属性深入解析

    offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根...

    Javascript元素位置、大小、鼠标定位操作

    本文将详细介绍 Javascript 中元素位置、大小、鼠标定位操作相关的知识点,包括事件对象、DOM 对象、Style 对象等提供的相关属性和方法。 一、事件对象 Event 事件对象 Event 提供了多个属性来获取鼠标的当前位置...

    【JavaScript源代码】JavaScript offsetParent案例详解.docx

    ### JavaScript offsetParent 案例详解 #### 一、offsetParent 定义 在Web开发中,`offsetParent`是一个非常重要的属性,它用于获取一个元素的偏移父元素。根据定义,`offsetParent`指的是距离当前元素最近的进行...

    js,jquery,ajax

    jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理、动画和Ajax交互。Ajax(Asynchronous JavaScript and XML)则是用于创建异步Web应用程序的技术,它允许在不刷新整个页面的情况下与服务器交换数据并...

    通过JS动态创建一个html DOM元素并显示

    4. **事件绑定与解绑**: `addEventHandler`和`removeEventHandler`函数用于在DOM对象上添加和移除事件监听器。它们分别兼容了W3C标准和旧版IE的事件处理方式。`addEventListener`是标准方法,而`attachEvent`是IE的...

    js获得对象的x,y位置函数

    在JavaScript编程领域,获取DOM元素(Document Object Model,文档对象模型)在页面中的绝对位置是一项常见且实用的技术。本文将详细解析如何通过自定义函数`findPosX`和`findPosY`来实现这一功能,帮助开发者准确...

    Html页面的dom常见属性

    ### Html页面的DOM常见属性详解 在Web开发中,DOM(文档对象模型)是...随着前端技术的发展,新的DOM属性和方法也在不断出现,开发者应保持学习的态度,以便能够利用最新的工具和技术构建更加高效和美观的Web应用。

    DOM相关内容速查手册

    以上只是DOM相关内容速查手册中一部分关键属性的解释,实际上DOM还包含了大量其他属性和方法,如事件处理、元素选择、节点操作等。掌握DOM能够帮助开发者更高效地操控网页内容,实现动态效果和交互功能。在实际开发...

    Dom文档对象模型-2010版.rar

    你应该看到过或用过以下这些命令或方法 getElementById getElementsByTagName offsetParent appendChild getAttribute 不过至今仍有人认为这些都是JavaScript中的东西,其实不然,这些全是Dom中很重要的方法!...

    学习javascript必须掌握的基础知识.pdf

    学习JavaScript,你需要掌握一系列基础知识,包括事件处理、DOM操作、BOM操作以及基本的语法和函数应用。以下是对这些知识点的详细解释: 1. **事件处理**: - `onmousedown`、`onmouseup`:分别表示鼠标按下和抬...

    javascript DOM笔记 1

    JavaScript DOM(Document Object Model)是用于操作HTML和XML文档的标准接口。它允许程序和脚本动态更新、添加或删除页面中的元素和属性。在本文中,我们将深入探讨一些关键的DOM操作,特别是与获取和操作元素及...

    用JavaScript获取DOM元素位置和尺寸大小的方法

    在JavaScript中,DOM元素的位置和尺寸大小是网页动态交互中不可或缺的部分。DOM(Document Object Model)是HTML和XML文档的结构化表示,它允许我们通过编程方式操作文档的各个元素。本文将深入探讨如何利用...

    js parentElement和offsetParent之间的区别

    在JavaScript中,`parentElement`和`offsetParent`都是用于处理元素上下级关系的属性,但它们的作用和应用场景有所不同。本文将深入解析这两个属性的区别及其使用。 首先,`parentElement`属性是DOM层次结构的一...

    clientHeight,offsetHeight,scrollHeight,offsetParent和parentElement,offsetLeft.

    clientHeight,offsetHeight,scrollHeight,offsetParent和parentElement,offsetLeft.

    javascript获取对象的绝对坐标

    ### JavaScript 获取对象的绝对坐标 #### 知识点概述 在网页开发中,有时我们需要知道一个元素在其父级容器中的绝对位置,即该元素相对于页面左上角的坐标(X轴和Y轴的位置)。这对于实现某些动态效果或者交互功能...

    Javascript

    以上只是JavaScript经典技巧的一小部分,JavaScript还有许多其他强大的功能,如DOM操作、AJAX异步通信、定时器、事件处理、正则表达式等。掌握这些技巧可以帮助开发者编写更高效、用户体验更好的网页和应用。不断...

    JavaScript常用50例

    以上只是JavaScript常用50例中的一部分,JavaScript的用途非常广泛,包括表单验证、DOM操作、AJAX异步通信、动画效果、事件处理等。通过熟练掌握和应用这些基本技巧,开发者可以创建出更加交互性和用户体验良好的...

    JavaScript中textRange对象使用方法小结

    JavaScript中的TextRange对象是一个用于操作HTML文档中文本流的重要接口,它允许开发者对页面中的文本执行一系列操作,如选择、搜索和修改。TextRange对象属于动态HTML(DHTML)的一部分,能够帮助开发者实现更加...

Global site tag (gtag.js) - Google Analytics