scroll
事件不会捕获鼠标“滚动”操作,而是捕获页面滚动操作。
这意味着在太小而无法实际滚动的页面上,无法检测用户的滚动操作(例如将其转换为缩放操作)。
要了解我的意思,请比较以下两个:
https://jsfiddle.net/r8aykcut/1/
https://jsfiddle.net/r8aykcut/2/
有没有办法在没有页面本身滚动的情况下监听鼠标滚动事件?
答案 0 :(得分:1)
你可以使用这个监听器
mRootRef.child("messages").child(mCurrentUser).child(userKey).child("messages").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Messages messages = dataSnapshot.getValue(Messages.class);
messagesList.add(messages);
messageAdapter.notifyDataSetChanged();
recyclerView.scrollToPosition(messagesList.size() - 1);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Messages messages = dataSnapshot.getValue(Messages.class);
int i=0;
boolean isMatch=false;
for(Messages m:messagesList)
{
if(messages.getId()==m.getId())
{
isMatch=true;
break;
}
i++;
}
if(isMatch)
messagesList.set(i,messages);
else
messagesList.add(messages);
messageAdapter.notifyDataSetChanged();
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
你必须在你想要缩放的元素中设置这个监听器
例如,如果你有这样的事情
addEventListener("wheel", anyFunctionYouWant );
为.wraper设置此监听器,这是因为我认为你想要一些东西,比如放大谷歌地图,如果你想要这个,你有功能,如果用户在地图上滚动你的功能就会触发(用于放大/缩小),并且光标必须在你的元素上设置,有Listener
答案 1 :(得分:1)
我认为你可以使用轮子事件。 当旋转指点设备(通常是鼠标)的滚轮按钮时,会触发滚轮事件。 这是参考链接: wheel event
答案 2 :(得分:1)
您已添加滚动侦听器。当页面滚动时它会监听。你必须使用轮子监听器。
document.addEventListener("wheel", detect);
function detect (e) {
console.log(e)
};
以上代码适合您。