如果想在页面中给用户呈现很关键的内容,例如网站的重要通知、插入的图片广告或视频文件等等,可能就需要强行禁止用户滚动页面,当然要在一个合适的时间段后自动关闭这些插入信息并重新启用页面滚动功能。本例就来实现最基本的强制禁止页面滚动的方法,其效果如图1.44与图1.45所示。
图1.44 禁止滚轮
图1.45 开启滚轮
本例代码如下:
本例的关键代码是第18~19行中的preventDefault()自定义函数,该函数完成取消事件的默认动作功能,其语法如下:
该函数将通知Web浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果type属性是submit,在事件传播的任意阶段可以调用任意的事件句柄,通过调用该函数,可以阻止提交表单。
设计人员要注意以下两点:
● 如果Event对象的cancelable属性是fasle,那么就表示没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该函数都没有作用。
● 本例代码最后不直接执行obj.onmousewheel(e)语句,是因为若onmousewheel(e)运行时间较长的话,会导致锁定滚动失效,而使用setTimeout()函数可以避免该情况的出现。