UI事件之load

load事件属于CSS3规范中的UI事件,load事件处理程序在页面元素和资源(html/script/link/img等)全部加载完成后在window上触发,或在img元素加载完成后再img元素上触发。可以用HTML特性的方式在body元素上绑定load事件,也可以用JavaScript在window上绑定load,所有浏览器都实现了在document上触发load事件,但它们也都支持在window上触发load,以保证向后兼容。

<html>
<head></head>
<!-- html特性方式 --> <body οnlοad="alert(loaded!)"></body> </html>
//javascript方式---推荐
<script>
EventUtil.addEvent(window,'load',function(event){ alert('loaded!'); });
</script>

上面的代码中,event对象不包含任何事件相关信息,在支持DOM的浏览器中,event.target指向document,在ie8中,不提供srcElement属性。

下面写几个图片加载完成后触发的load事件,并说明其中的差异:

例1:对DOM结构中的img元素绑定load事件处理程序

var oImg = document.getElementById('img1');
EventUtil.addEvent(oImg,'load',function(event){
    var event  = EventUtil.getEvent(event);
    alert(EventUtil.getTarget(event).src);
});

以上事件处理程序中可以获取到event.target,因此也就可以访问img元素的src属性。

例2:向DOM动态插入img元素,注意一旦img指定了src图片就会开始加载,尽管它还没有被插入到DOM结构中,所以应该先绑定load事件,再指定src。

var oImg = document.createElement('img');
EventUtil.addEvent(oImg,'load',function(event){
    alert('loaded!');
});
document.body.appendChild(oImg);
oImg.src = 'img1.png';

例3:为Image对象绑定load事件处理程序,注意Image对象无法添加到DOM结构中,它的作用是在DOM出现前用来在页面显示图像的,同img元素一样,一旦指定src图片就会开始加载,因此应该先绑定事件。

var oImg = new Image();
EventUtil.addEvent(oImg,'load',function(event){
    alert('loaded!');
});
oImg.src = 'img1.png';

script元素和link元素也可以绑定load事件,但是低版本浏览器不支持,与图片加载不同的是,这两个元素只有进入DOM结构才会开始加载,因此不用注意代码顺序。

转载于:https://www.cnblogs.com/luoshufang/p/5710043.html

在 AMapUI 库中,巡航器(PathSimplifier)并没有提供直接的结束事件。但是你可以自己通过监控巡航器的状态来判断巡航是否结束。下面是一个示例代码: ```html <template> <div> <div id="map" style="width: 800px; height: 600px;"></div> </div> </template> <script> export default { mounted() { // 异步加载 AMapUI 库 AMapUI.load(['ui/misc/PathSimplifier'], (PathSimplifier) => { // 创建地图 const map = new AMap.Map('map', { zoom: 15, center: [116.39, 39.9] }); // 使用 AMapUI.PathSimplifier 创建路径简化器 const pathSimplifier = new PathSimplifier({ map: map, getPath: (pathData, pathIndex) => { return pathData.path; }, renderOptions: { pathLineStyle: { strokeStyle: 'red', lineWidth: 4 } } }); // 设置路径数据 const pathData = [ { name: '路线1', path: [ [116.39, 39.9], [116.4, 39.91], [116.41, 39.92], // ... ] } ]; pathSimplifier.setData(pathData); // 渲染路径 pathSimplifier.renderLater(); // 监听状态变化 pathSimplifier.on('pathNavigatorArrived', function() { console.log('巡航结束'); // 执行巡航结束后的操作 }); }); } } </script> ``` 在上述代码中,使用 AMapUI.PathSimplifier 创建路径简化器,并通过设置路径数据和渲染选项来渲染路径。然后使用 `pathSimplifier.on('pathNavigatorArrived', function() { ... })` 监听 `pathNavigatorArrived` 事件,当巡航器到达路径终点时,触发事件并执行相应的操作。你可以根据实际需求修改路径数据、渲染样式以及事件处理逻辑。注意,这里的 `pathNavigatorArrived` 事件是巡航器到达路径终点时的事件,可以作为巡航结束的判断依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值