使用前提:

页面内容过多,默认的滚动条太难看,在不引入滚动条插件情况下让界面不使用滚动条,又能通过鼠标滚动

实现步骤:

1 在会出现滚动条的组件上设置隐藏滚动条

overflow:hidden;

2  在上述组件的bind-mouseenter(鼠标进入事件)增加滚动监听器

  var num = 0;
var i = true;
Model.prototype.buttonGroup1Mouseenter = function(event){
var me = this; this.getElementByXid("buttonGroup1").addEventListener("mousewheel", function(e){ if(i||(num++)%5===0){ i = false;
if(e.wheelDelta>0){
up(me); // 向上滚动
}else{
down(me); //向下滚动
}
setTimeout(function(){
i=true;
num=0;
}, 300); } });
};

其中,当鼠标进行滚动时,每一下滚动都会触发滚动事件,这会造成代码的执行滞后于事件的触发,给人一种卡顿的感觉,并造成页面卡停,所以需要通过 i 变量来设置当一次事件代码执行完毕后才能执行下一次处理;但又想通过快速滚动鼠标让事件执行的快点,所以又加入了 num ,每滚动5次鼠标视为一次有效的触发,既可以通过鼠标滚动的快慢控制滚动的速度,也可以防止触发事件次数过多导致页面的卡顿。

3 实现滚动代码

    // 向上滚动一次
var up = function(me){
var scroll = $(me.getElementByXid("buttonGroup1"))[0]; if(scroll.scrollTop-39>0){
scroll.scrollTop -=39;
}else{
scroll.scrollTop = 0;
} }; // 向下滚动一次
var down = function(me){
var scroll = $(me.getElementByXid("buttonGroup1"))[0];
var bottom = scroll.scrollHeight- scroll.offsetHeight; if(bottom-scroll.scrollTop>39){
scroll.scrollTop +=39;
}else{
scroll.scrollTop = bottom;
}
};

其中,me.getElementByXid("buttonGroup1")为1中设置了样式的组件对象,39为滚动一次移动的高度,我这里刚好跳过一个功能项,不至于只移动半个按钮

4 在绑定了事件监听器的组件的bind-mouseleave事件上移除监听器

Model.prototype.buttonGroup1Mouseleave = function(event){
  this.getElementByXid("buttonGroup1").removeEventListener("mousewheel",function(){});
};

BEX5下实现鼠标滚动滚动条的更多相关文章

  1. IE11下使用fixed定位时鼠标滚动不平滑

    很久不用IE了,近期做兼容性测试发现一个fixed定位的问题,当元素使用fixed定位时,其应该不随页面滚动,在chrome/firefox/edge下都很完美,元素完全不动,但是使用IE11时,如果 ...

  2. JavaScript判断鼠标滑轮是向下还是向上滚动

    我们常用的就是鼠标,鼠标中键一般都用于滑动网页,但是网页中很多很炫的效果,使用鼠标滑轮操作更好. 当然对于手机就没有这个设备了,所以就不用考虑手机端的实现方法,手机端有触摸滑动事件. 使用JavaSc ...

  3. 纯css解决div隐藏浏览器原生滚动条,但保留鼠标滚动效果的问题

    当我们的内容超出了我们的div,往往会出现滚动条,影响美观.尤其是当我们在做一些导航菜单的时候.滚动条一出现就破坏了UI效果.  我们不希望出现滚动条,也不希望超出去的内容被放逐,就要保留鼠标滚动的效 ...

  4. 纯css,div隐藏滚动条,保留鼠标滚动效果。

    示例1: html,body { height: 100%; } body { overflow: hidden; } .full-screen { position: relative; width ...

  5. 通过HTML+CSS+Javascript实现向下滚动滚动条出现导航栏并出现回到顶部按钮点击按钮回到顶部(一)

    回到顶部实例一 效果:默认隐藏导航栏,当滚动条滚到超过300px后导航栏和按钮出现,点击回到顶部按钮回到顶部,并隐藏导航栏和按钮(导航栏和按钮都是固定定位) <!doctype html> ...

  6. JavaScript一个鼠标滚动事件的实例

    <script type="text/javascript" src="./whenReady.js"></script> <!- ...

  7. 通通玩blend美工(6)下——仿iPhone滚动选择器的ListBox(交互逻辑)

    原文:通通玩blend美工(6)下--仿iPhone滚动选择器的ListBox(交互逻辑) 上一篇我们已经把界面画出来了,这篇我们就来制作交互的逻辑吧.上一篇的电梯: http://www.cnblo ...

  8. WIN7下vs2010滑轮滚动不正确的解决方法

    win7下vs2010在滚动滑轮时文档滚动条不滚动而是解决方案的滚动条滚动的解决方法, 控制面板>设备和打印机>鼠标设置>滚轮选项卡里面将滚轮功能设置设为只使用office97预设的 ...

  9. wpf图片查看器,支持鼠标滚动缩放拖拽

    最近项目需要,要用到一个图片查看器,类似于windows自带的图片查看器那样,鼠标滚动可以缩放,可以拖拽图片,于是就写了这个简单的图片查看器. 前台代码: <Window x:Class=&qu ...

随机推荐

  1. Android安全–检测是否为Android模拟器

    有时候需要检测是否在模拟器上运行还是在真机运行,话不多说.检测代码如下: package com.monkey.antiemulator; import java.io.File; import ja ...

  2. jsp基础语言-jsp代码段

    jsp代码段:是放在<% %>标记之间符合java语言规范的代码片段 格式:<% 代码段 %>  代码段中可以包含用于jsp变量和方法的声明.显示表达式.HTML以及调用Jav ...

  3. matlab练习程序(对应点集配准的四元数法)

    这个算是ICP算法中的一个关键步骤,单独拿出来看一下. 算法流程如下: 1.首先得到同名点集P和X. 2.计算P和X的均值up和ux. 3.由P和X构造协方差矩阵sigma. 4.由协方差矩阵sigm ...

  4. ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET C ...

  5. 从0开始的Python学习003序列

    sequence 序列 序列是一组有顺序数据的集合.不知道怎么说明更贴切,因为python的创建变量是不用定义类型,所以在序列中(因为有序我先把它看作是一个有序数组)的元素也不会被类型限制. 序列可以 ...

  6. 宋宝华:Docker 最初的2小时(Docker从入门到入门)【转】

    最初的2小时,你会爱上Docker,对原理和使用流程有个最基本的理解,避免满世界无头苍蝇式找资料.本人反对暴风骤雨式多管齐下狂轰滥炸的学习方式,提倡迭代学习法,就是先知道怎么玩,有个感性认识,再深入学 ...

  7. eclipse设置新建jsp默认编码格式utf-8

  8. HBase源码实战:BufferedMutator

    /** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agr ...

  9. Kafka集成Kerberos之后如何使用生产者消费者命令

    1.生产者1.1.准备jaas.conf并添加到环境变量(使用以下方式的其中一种)1.1.1.使用Kinit方式前提是手动kinit 配置内容为: KafkaClient { com.sun.secu ...

  10. Kafka 0.11.0.0 实现 producer的Exactly-once 语义(中文)

    很高兴地告诉大家,具备新的里程碑意义的功能的Kafka 0.11.x版本(对应 Confluent Platform 3.3)已经release,该版本引入了exactly-once语义,本文阐述的内 ...