乐趣区

关于javascript:面试题第一期

1. 如何让 3 个元素的四个间距平分盒子
justify-content: space-evenly;

space-between:两端对齐,我的项目之间的距离是相等的 (n- 1 个距离)
space-evenly:平均排列每个元素, 每个元素之间的距离相等(n+1)

第二种:
margin-left:calc((100%-4* 元素宽度)/4)

2.promise.all 个性是一个报错就进行 怎么让一个报错后拿到其余的数据

Promise.allSettled() 办法是 promise 并发性办法的其中之一。在你有多个不依赖于彼此胜利实现的异步工作时,或者你总是想晓得每个 promise 的后果时,应用 Promise.allSettled()。相比之下,如果工作相互依赖,或者如果你想立刻回绝其中任何工作,Promise.all() 返回的 

3. 写一个弹窗拖拽的性能

1. 按下鼠标时触发 onmousedown 事件,获取元素地位(diffX=e.clientX – drag.offsetLeft)
2. 挪动时触发 onmousemove 事件,设置边界值(e.clientX – diffX)
3. 抬起鼠标时 onmouseup(this.onmousemove = null this.onmouseup = null)

window.onload = function() {
    // 获取 drag 元素
    let drag = document.getElementById("drag")
    // 当鼠标按下时
    drag.onmousedown = function(e) {
        // 做到浏览器兼容
        e = e || window.event
        let diffX = e.clientX - drag.offsetLeft
        let diffY = e.clientY - drag.offsetTop
        // 当拉着 box 挪动时
        document.onmousemove = function(e) {
            // 浏览器兼容
            e = e || window.event
            let left = e.clientX - diffX
            let top = e.clientY - diffY
            if (left < 0) {left = 0} else if (left > window.innerWidth - drag.offsetWidth) {left = window.innerWidth - drag.offsetWidth}
            if (top < 0) {top = 0} else if (top > window.innerHeight - drag.offsetHeight) {top = window.innerHeight - drag.offsetHeight}
            drag.style.left = left + 'px'
            drag.style.top = top + 'px'
        }
        // 当鼠标抬起时
        document.onmouseup = function(e) {
            this.onmousemove = null
            this.onmouseup = null
        }
    }
}

4. 敞开弹窗的办法?

退出移动版