HTML在页面和Flash对象中同时滚动
HTML scrolls simultaneously in page and Flash object
我在div中有一个flash对象,当我滚动它时,它会缩放它的内容。问题是我的页面也会滚动,我不知道如何解决这个问题。当我在闪光灯上滚动时,我需要页面保持静止。
我试着添加这个
flashContainer.bind('mousewheel DOMMouseScroll', function(e) {
var scrollTo = null;
if (e.type === 'mousewheel') {
scrollTo = (e.originalEvent.wheelDelta * -1);
} else if (e.type === 'DOMMouseScroll') {
scrollTo = 40 * e.originalEvent.detail;
}
if (scrollTo) {
e.preventDefault();
$(this).scrollTop(scrollTo + $(this).scrollTop());
}
});
但是由于preventDefault,flash对象将不再缩放。
你有什么建议吗?
这可能对你有用:
$("element").hover(function(){
var scrollT = $(document).scrollTop();
$(document).on("scroll", function(e){
$(document).scrollTop(scrollT);
});
}, function(){
$(document).off("scroll");
});
http://jsfiddle.net/ZFsDY/3/
几个月前我偶然发现了这个问题(我们用来管理滚动的旧方法在最新的浏览器上不起作用)。我不被允许发布它的代码,但这里有一些关于我们是如何做到的
与reyaner的回答一样,我们使用事件侦听和preventDefault()来禁用浏览器自动滚动,并获取滚动值(但不使用scrollTop())。一旦我们有了值,我们就会通过ExternalInterface将其发送到Flash。为了实现这一点,flash对象必须事先添加一个回调,一个可以由Javascript调用的flash方法。
我们在Flash和JS之间添加了一些额外的交互,这样只有当Flash有焦点时,滚动才会被锁定。
警告:所有浏览器对轮子的缩放比例并不相同,您可能会发现缩放速度可能会有所不同。为了解决这个问题,我们决定每次调度事件时始终使用固定的步骤,而不是按原样使用delta。
另一次尝试:
$("element").bind( 'mousewheel DOMMouseScroll', function ( e ) {
var d = e.wheelDelta || -e.detail;
var s;
if(d < 0) s = 1;
else s = -1;
this.scrollTop += s * 30;
e.preventDefault();
});
http://jsfiddle.net/ZFsDY/5/
相关文章:
- 如何切换对象并使其在滚动后永久可见
- 对象上的滚动视差效果
- 如何用javascript滚动html中pdf对象元素的底部
- 检测用户何时滚动到对象
- JQuery UI 自动完成在滚动菜单时在文本框中显示 [对象对象]
- 滚动浏览 DOM 对象的“堆栈”
- 屏幕对象移动与滚动移动/客户端 X
- 滚动时启动的javascript对象中的作用域、计时器和循环
- 为什么jQuery必须接收两个对象:body&html时使用动画滚动整个页面
- 在滚动中动态创建更多php对象
- 滚动浮动对象,但如果超出页面宽度,则不要'不要给他们看
- 滚动时使对象在屏幕上居中
- 聚焦SWF对象时停止滚动网页
- 防止固定位置对象在特定位置随页面滚动
- 使用GWT/Java/JavaScript滚动到可滚动对象的特定位置
- 如何访问滚动事件中的对象范围
- HTML在页面和Flash对象中同时滚动
- 由页面滚动定义的对象高度
- 父母是绝对的;仅当滚动条超过父对象的高度限制时,才为子对象提供滚动条
- 如何滚动对象<元素