封装的函数

一、把节点newElement插入到节点targetElement节点的后面

function insertAfter(newElement,targetElement){
    var parent = targetElement.parentNode;
    if(parent.lastChild == targetElement){
        parent.appendChild(newElement);
    }else{
        parent.insertBefore(newElement,targetElement.nextSibling);
    }
}

例子,在#b后面插入一个新的li

 1 <body>
 2     <ul>
 3         <li draggable="true">aa</li>
 4         <li id="b">bb</li>
 5         <li>ss</li>
 6     </ul>
 7 <script>
 8 var target=document.getElementById("b");
 9 var newLi=document.createElement("li");
10 var text=document.createTextNode("新的li内容");
11 target.appendChild(newLi);
12 newLi.appendChild(text);
13 insertAfter(newLi,b);
14 function insertAfter(newElement,targetElement){
15     var parent = targetElement.parentNode;
16     if(parent.lastChild == targetElement){
17         parent.appendChild(newElement);
18     }else{
19         parent.insertBefore(newElement,targetElement.nextSibling);
20     }
21 }
22 </script>
23 </body>

 

二、页面加载完成后按顺序执行队列的函数

function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function'){
            window.onload = func;
        }else{
            window.onload = function(){
                oldonload();
                func();
            }
        }
        }
    

例:页面加载完成后,按顺序执行first()、second()

<script>
    function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function'){
            window.onload = func;
        }else{
            window.onload = function(){
                oldonload();
                func();
            }
        }
    }
    
    function first(){
        alert("hello");
    }
    function second(){
        alert("world");
    }
    addLoadEvent(first);
    addLoadEvent(second);
    .
    .  
    .
</script>

 

三、为元素element添加class="value"
function addClass(element,value) {
        var newClassName;
        if(!element.className){
            element.className=value;
        }else{
            newClassName=element.className;
            newClassName+="";
            element.className=newClassName;
        }
    }
为tag标签的下一个同级标签添加ctheclass样式
function styleElementSiblings(tag,theclass) {
        if (!document.getElementsByTagName) return false;
        var elems = document.getElementsByTagName(tag);
        var elem;
        for(var i=0;i<elems.length;i++){
            elem = getNextElement(elems[i].nextSibling);
            addClass(elem,theclass);
        }
    }

<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<head>
    <title>函数</title>
    <style>
        .intro{
            color:pink;
        }
    </style>
</head>
<body>
<h1>Hold the front page</h1>
<p>this first paragraph leads you in</p>
<p>Now you get the</p>
<p>The most important information</p>
<h1>Extra!</h1>
<p>Further developments </p>
<p>You can read all</p>
<script>
    addLoadEvent(function(){
        styleElementSiblings("h1","intro");
    });
    //为tag标签的下一个同级标签添加ctheclass样式
    function styleElementSiblings(tag,theclass) {
        if (!document.getElementsByTagName) return false;
        var elems = document.getElementsByTagName(tag);
        var elem;
        for(var i=0;i<elems.length;i++){
            elem = getNextElement(elems[i].nextSibling);
            addClass(elem,theclass);
        }
    }
    //为元素element添加class="value"
    function addClass(element,value) {
        var newClassName;
        if(!element.className){
            element.className=value;
        }else{
            newClassName=element.className;
            newClassName+="";
            element.className=newClassName;
        }
    }
    function getNextElement(node){
        if(node.nodeType==1){
            return node;
        }
        if(node.nextSibling){
            return getNextElement(node.nextSibling);
        }
        return null;
    }
     function addLoadEvent(func) {
        var oldonload=window.onload;
        if(typeof window.onload!='function'){
            window.onload=func;
         }else{
            window.onload=function () {
            oldonload();
            func();
            }
         }
     }
</script>
</body>
</html>

 

四、元素移动函数

function moveElement(elementID,final_x,final_y,interval){//(目标ID,目标位置,执行间隔)
            if(!document.getElementById) return false;
            if(!document.getElementById(elementID)) return false;
            var elem=document.getElementById(elementID);
            var xpos=parseInt(elem.style.left);
            var ypos=parseInt(elem.style.top);
            if(xpos==final_x && ypos==final_y){
                return true;
            }
            if(xpos<final_x){
                xpos++;
            }
            if(xpos>final_x){
                xpos--;
            }
            if(ypos<final_y){
                ypos++;                
            }
            if(ypos>final_y){
                ypos--;
            }
            elem.style.left=xpos+"px";
            elem.style.top=ypos+"px";
            var repeat="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
            movement=setTimeout(repeat,interval);
        }

 

 
 

转载于:https://www.cnblogs.com/webstong/p/5954722.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Halcon 是一种图像处理软件,它提供了许多封装函数来帮助用户完成图像处理任务。这些封装函数包括图像预处理、特征提取、图像分析、图像识别等功能。它们是基于 Halcon 图像处理引擎构建的,可以帮助用户快速高效地完成图像处理任务。 ### 回答2: Halcon封装函数是指将Halocn的功能和算法进行封装,以方便用户使用和调用。封装函数的设计主要有以下几个步骤: 1. 根据功能需求和算法特点,确定封装函数的输入和输出参数。输入参数可以包括图像数据、图像处理参数等,输出参数可以是处理结果、处理后的图像等。 2. 使用Halcon提供的函数和算法,实现封装函数的具体功能。在实现过程中,可以根据需要调用不同的Halcon函数,进行图像处理、特征提取、对象识别等操作。 3. 添加适当的错误处理和异常处理机制,以提高封装函数的稳定性和健壮性。在函数运行过程中,可以通过检查返回值或抛出异常来处理潜在的错误情况,避免程序异常终止。 4. 根据需要,为封装函数添加注释、说明文档等,提供给用户使用时的参考。注释和说明文档应该清晰明了地描述封装函数的功能、输入输出参数的含义和用法,以便用户正确调用和理解。 5. 进行封装函数的测试和验证,确保其功能和性能符合预期。可以通过输入一些典型的测试数据,检查封装函数的输出是否正确,并根据实际场景和要求进行性能测试,以确定封装函数的效率和响应速度。 通过封装函数,用户可以更加方便地调用Halcon的功能和算法,提高开发效率和代码的可读性。同时,封装函数还可以隐藏底层的实现细节,降低用户学习和使用Halcon的难度,使得开发者能更专注于自己的应用领域。 ### 回答3: Halcon是一种用于机器视觉应用开发的强大的软件库。它提供了丰富的图像处理和分析功能,可以用于实现各种视觉算法和任务。 Halcon封装函数是指将Halcon库中的函数进行封装,以提供更简洁、易用的接口,方便开发者快速使用Halcon功能。通过封装函数,开发者可以直接调用这些函数,无需了解函数底层的具体实现细节。 封装函数的好处有以下几点: 1. 简化调用:封装函数可以将复杂的功能封装成一个简单的函数,减少开发者的工作量和学习成本。 2. 提高可读性:通过合理的封装,可以使函数的调用更加易读、易懂,方便团队合作和代码维护。 3. 隐藏底层实现:封装函数可以将底层实现细节进行隐藏,只暴露对外的功能接口,保护知识产权和代码安全性。 4. 增强可移植性:封装函数可以屏蔽底层的细节,使代码在不同平台和环境下都能够运行,提供可移植性。 封装函数的实现通常是通过编写自定义的函数或类来完成的。在封装函数时,可以考虑参数的合理性、错误处理、代码规范等因素,以提供一个高质量、稳定可靠的封装函数。 总之,Halcon封装函数为开发者提供了一种简化、高效的方式来使用Halcon库的功能,使机器视觉应用的开发更加便捷和灵活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值