美文网首页
表驱动编程

表驱动编程

作者: sweetBoy_9126 | 来源:发表于2018-11-20 19:53 被阅读1次
if(this.position === 'top'){
    content.style.left = left + window.scrollX + 'px'
    content.style.top = top + window.scrollY + 'px'
}else if(this.position === 'bottom'){
    content.style.left = left + window.scrollX + 'px'
    content.style.top = top  + height + window.scrollY + 'px'
}else if(this.position === 'left'){
    let {height: height2} = content.getBoundingClientRect();
    content.style.left = left  + window.scrollX + 'px'
    content.style.top = top  + (height-height2)/2 + window.scrollY + 'px'
}else if(this.position === 'right'){
    let {height: height2} = content.getBoundingClientRect();
    content.style.left = left + width+ window.scrollX + 'px'
    content.style.top = top  + (height-height2)/2 + window.scrollY + 'px'
}

上面的代码结构大体相同,这时候我们就可以画个表格,一一对应了

我们可以通过一个对象构造这种表格的关系

let positions = {
    top: {
        left: left + window.scrollX,
        top: top + window.scrollY
    },
    bottom: {
        left: left + window.scrollX,
        top: top  + height + window.scrollY
    },
    left: {
        left: left  + window.scrollX,
        top: top  + (height-height2)/2 + window.scrollY
    },
    right: {
        left: left + width+ window.scrollX,
        top: top  + (height-height2)/2 + window.scrollY
    }
}
content.style.left = positions[this.position].left + 'px'
content.style.top = positions[this.position].top + 'px'

上面的这种利用表格关系的代码就等价于我们一开始的代码,但是这种逻辑结构更清晰

相关文章

  • 表驱动编程

    上面的代码结构大体相同,这时候我们就可以画个表格,一一对应了 我们可以通过一个对象构造这种表格的关系 上面的这种利...

  • 表驱动编程

    在做项目的时候,我总是会因为if else层层套而感觉很烦,所以我就去看了一点书,想办法解决代码千层饼的问题,最后...

  • 表驱动编程总结

    一、 假设有一个程序,需要处理其他程序发送的消息,消息类型是字符串,每个消息都需要一个函数进行处理。第一印象,我们...

  • (转)数据驱动编程之表驱动法

    本文示例代码采用的是c语言。 之前介绍过数据驱动编程《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天...

  • 使用表驱动编程优化代码

    最近造轮子,在写 popover 组件时写出了一段很臃肿的代码,有许多 if,else,如下 以上是不是有很多重复...

  • SQL优化之多表join(待续)

    如何判断驱动表 左连接,如果没有where条件,则左表为驱动表 右连接,如果没有where条件,右表为驱动表 左连...

  • 利用数据驱动模式编写复杂样式的UITableView

    数据驱动是一种思想,数据驱动型编程是一种编程范式。基于数据驱动的编程,基于事件的编程,以及近几年业界关注的响应式编...

  • 表驱动法在iOS中的应用

    表驱动法(Table-Driven Methods)出自《代码大全》。它是一种编程模式——从表里面查找信息而不使用...

  • 13.MySQL联表查询中的驱动表,优化查询,以小表驱动大表

    一、为什么要用小表驱动大表 1、驱动表的定义 当进行多表连接查询时, [驱动表] 的定义为: 1)指定了联接条件时...

  • 咬文嚼字之驱动表&outer表

    什么是驱动表?什么是 outer 表和 inner 表?outer 表等同于驱动表吗? 在MySQL中这个问题的脉...

网友评论

      本文标题:表驱动编程

      本文链接:https://www.haomeiwen.com/subject/cxtfqqtx.html