鼠标滚轮事件滚动有Flash动画的网页
程序员文章站
2024-01-20 21:29:10
flash插入网页后,当flash获得焦点,也就是开始操作flash后,flash将捕获鼠标滚轮事件,导致浏览器无法响应滚轮事件,只能通过拖动滚动条来浏览网页,非常不便,也让普通用户感觉很疑... 08-10-06...
flash插入网页后,当flash获得焦点,也就是开始操作flash后,flash将捕获鼠标滚轮事件,导致浏览器无法响应滚轮事件,只能通过拖动滚动条来浏览网页,非常不便,也让普通用户感觉很疑惑。
通过以下小技巧可以让浏览器重新获得焦点,通过鼠标滚轮事件上下滚动:
var mouselistener:object = new object();
mouselistener.onmousewheel = function(delta:number) {
geturl("javascript:void(window.focus())");
};
mouse.addlistener(mouselistener); 但是这种效果不是很理想,而且有时候会莫名奇妙地失效,如果不怕麻烦可以采用下面这种方式:
flash代码:
var mouselistener:object = new object();
mouselistener.onmousewheel = function(delta:number) {
//geturl("javascript:void(window.focus())");
externalinterface.call("gundong",delta*-15);
};
mouse.addlistener(mouselistener); javascirpt代码:
<script language=javascript>
function gundong(value){
var pos
if (document.documentelement && document.documentelement.scrolltop) {
pos = document.documentelement.scrolltop;
} else if (document.body) {
pos = document.body.scrolltop;
}
window.scroll(0,pos value);
}
</script> 实际上这种方法是使用javascript控制滚动条,效果比第一种好多了,还可以修改flash里面的-15这个数值,更改滚动速度及方向。
通过以下小技巧可以让浏览器重新获得焦点,通过鼠标滚轮事件上下滚动:
var mouselistener:object = new object();
mouselistener.onmousewheel = function(delta:number) {
geturl("javascript:void(window.focus())");
};
mouse.addlistener(mouselistener); 但是这种效果不是很理想,而且有时候会莫名奇妙地失效,如果不怕麻烦可以采用下面这种方式:
flash代码:
var mouselistener:object = new object();
mouselistener.onmousewheel = function(delta:number) {
//geturl("javascript:void(window.focus())");
externalinterface.call("gundong",delta*-15);
};
mouse.addlistener(mouselistener); javascirpt代码:
<script language=javascript>
function gundong(value){
var pos
if (document.documentelement && document.documentelement.scrolltop) {
pos = document.documentelement.scrolltop;
} else if (document.body) {
pos = document.body.scrolltop;
}
window.scroll(0,pos value);
}
</script> 实际上这种方法是使用javascript控制滚动条,效果比第一种好多了,还可以修改flash里面的-15这个数值,更改滚动速度及方向。