84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
页面中有一个元素,如果这个元素消失在可视区内的话,这个元素有个变化。可是导致这个元素消失的操作有很多,我监听事件的时候,是不是要监听全部可能的事件?还是说有一种方法不用这么麻烦??求大神解答补充说一下,就是页面中有两个按钮,然后按钮开始是显示在可视区内的,页面中有几个元素有下拉,还有可以的元素可以点击高度变大的元素等等。。。我想的是不管什么操作,如果按钮消失在可视区内的话,我的这个按钮就要脱离文档流固定到底部来。我想能不能来一个总的方法,而不是每种情况都要监听一下
小伙看你根骨奇佳,潜力无限,来学PHP伐。
你想捕获一种对应消失的操作,只要在这种操作的最后,生成个自定义事件,然后监听这个自定义事件就好了。
你是要实现消失之后做某个操作吗?如果这样的话,只要监听消失不就够了么?跟导致消失的事件有什么关系呢?
增加对dom元素事件绑定的方法:
function on(element, event, handle) { if(typeof element.addEventListener === "function") { element.addEventListener(event, handle, false) } else if(typeof element.attachEvent === "function") { element.attachEvent("on" + event, handle) } else { element["on" + event] = handle } }
增加触发的方法:
function trigger(element, event) { if(typeof element.dispatchEvent === "function") { element.dispatchEvent(event) } else if(typeof element.fireEvent === "function") { var eventObj = document.createEventObject() element.fireEvent("on" + event, eventObj) } else { element["on" + event]() } }
接下来处理正常的逻辑,在你每次操作某个DOM元素的时候,都用trigger函数去对你需要监听的DOM元素进行事件触发,例如:
var elem = document.getElementById("my-element") on(elem, "change", (e) => { // ... }) on(elem, "click", (e) => { var p = document.createElement("p") elem.appendChild(p) trigger(elem, "change") // 触发change事件 })
你想捕获一种对应消失的操作,只要在这种操作的最后,生成个自定义事件,然后监听这个自定义事件就好了。
你是要实现消失之后做某个操作吗?如果这样的话,只要监听消失不就够了么?跟导致消失的事件有什么关系呢?
增加对dom元素事件绑定的方法:
增加触发的方法:
接下来处理正常的逻辑,在你每次操作某个DOM元素的时候,都用trigger函数去对你需要监听的DOM元素进行事件触发,例如: