javascript 模拟滚动 隐藏滚动条

想隐藏掉难看的滚动条,四处翻看博客,思路来源https://www.cnblogs.com/chefweb/p/6473517.html,不知道有没有更好的思路,先凑合着用吧。

html


 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title></title>
 6         <link rel="stylesheet" href="css/index.css" />
 7         <script type="text/javascript" src="js/index.js"></script>
 8     </head>
 9
10     <body>
11         <div class="content">
12             <ul>
13                 <!--面1 -->
14                 <li>
15                     <div class="first">
16                         00000000
17
18                     </div>
19                 </li>
20                 <!--面2 -->
21                 <li>
22                     <div class="second">1111111111111111111111</div>
23                 </li>
24                 <!--面3 -->
25                 <li>
26                     <div class="third">22222222222222222</div>
27                 </li>
28                 <!--面4 -->
29                 <li>
30                     <div class="fourth">333333333333333333333</div>
31                 </li>
32             </ul>
33         </div>
34     </body>
35 </html>

css

* {
    margin: 0;
    padding: 0;
}
ul li {
    list-style-type: none;
}
.content {
    overflow: hidden;
}

.content ul li>div{box-sizing: border-box;border: 1px solid #AB86C0;height:100%;width:100%}

js

 1 window.onload = function() {
 2     var bodyHeight = window.innerHeight;
 3     var bodyWidth = window.innerWidth;
 4     var ulLis = document.querySelectorAll(".content ul li");
 5     var divContent = document.querySelector(".content");
 6     divContent.style.height = bodyHeight + "px";
 7     divContent.style.width = bodyWidth + "px";
 8     for(var i = 0; i < ulLis.length; i++) {
 9         ulLis[i].style.height = bodyHeight + "px";
10         ulLis[i].style.width = bodyWidth + "px";
11     }
12     window.onresize = function() {
13         var bodyHeight = window.innerHeight;
14         var bodyWidth = window.innerWidth;
15         var ulLis = document.querySelectorAll(".content ul li");
16         var divContent = document.querySelector(".content");
17         divContent.style.height = bodyHeight + "px";
18         divContent.style.width = bodyWidth + "px";
19         for(var i = 0; i < ulLis.length; i++) {
20             ulLis[i].style.height = bodyHeight + "px";
21             ulLis[i].style.width = bodyWidth + "px";
22         }
23         divContent.scrollTop = ulLis[0].offsetTop
24     }
25
26     document.body.addEventListener("DOMMouseScroll", function(event) {
27         if(event.detail) {
28             event.detail < 0 && mouseToTop();
29             event.detail > 0 && mouseToBottom();
30         }
31     });
32     window.onmousewheel = function(event) {
33         var e = event || window.event;
34         if(e.wheelDelta) {
35             e.wheelDelta > 0 && mouseToTop();
36             e.wheelDelta < 0 && mouseToBottom();
37         }
38
39     }
40
41     function mouseToBottom() {
42         for(let i = 0; i < ulLis.length; i++) {
43             if(divContent.scrollTop == ulLis[i].offsetTop) {
44                 (i > ulLis.length - 2) || setTimeout(function() {
45                     myScroll(i + 1, "下");
46                 }, 10);
47             }
48
49         }
50     }
51
52     function mouseToTop(m) {
53         for(let i = 0; i < ulLis.length; i++) {
54             if(divContent.scrollTop == ulLis[i].offsetTop) {
55                 (i == 0) || (i == ulLis.length) || setTimeout(function() {
56                     myScroll(i - 1, "上");
57                 }, 10);
58             }
59         }
60     }
61
62     function myScroll(m, a) {
63         var v = 0;
64         var time = setInterval(function() {
65             if(a == "下" ? (divContent.scrollTop < ulLis[m].offsetTop) : (divContent.scrollTop > ulLis[m].offsetTop)) {
66                 v = Math.abs(Math.ceil(Math.abs((ulLis[m].offsetTop - divContent.scrollTop)) / 15));
67                 a == "下" ? (divContent.scrollTop = divContent.scrollTop + v) : (divContent.scrollTop = divContent.scrollTop - v);
68             } else {
69                 divContent.scrollTop = ulLis[m].offsetTop;
70                 clearInterval(time);
71             }
72         }, 1);
73     }
74 }

原文地址:https://www.cnblogs.com/li-jun-wei/p/8994249.html

时间: 2024-10-10 15:08:54

javascript 模拟滚动 隐藏滚动条的相关文章

javascript模拟post提交隐藏地址栏的参数

想要隐藏地址栏的参数,就只能用javascript模拟post提交,下面是示例代码,需要的朋友可以看看 通过js模拟post提交 1:请求需要的参数过长,超过get允许的最大长度 2:想要隐藏地址栏的参数 view source print? 01 //新创建一个form表单 02 document.write('<form name=myForm></form>');  03 var myForm=document.forms['myForm'];  04 myForm.acti

CSS 实现隐藏滚动条同时又可以滚动

移动端页面为了更接近原生的体验,是否可以隐藏滚动条,同时又保证页面可以滚动? 使用 overflow:hidden 隐藏滚动条,但存在的问题是:页面或元素失去了滚动的特性.由于只需要兼容移动浏览器(Chrome 和 Safari),于是想到了自定义滚动条的伪对象选择器::-webkit-scrollbar. 关于这个选择器的介绍可以参考:Styling ScrollbarsCustom Scrollbars in WebKit 应用如下 CSS 可以隐藏滚动条: .element::-webki

egret:设置滚动视图、隐藏滚动条以及层级的问题

一.设置滚动视图 二.隐藏滚动条 三.层级问题 我将图中list列表内容添加到界面后,我发现右上角的关闭按钮失灵了, 第一反应是将这个按钮的层级设置到最高层, 但是我直接设置后,发现还是有问题. 最后找到原因,因为我将背景(包括关闭按钮)打了组, 将这个组给解组之后 在去设置该关闭按钮的层级后: 此时再去点击关闭按钮,就能正常关闭了. 原文地址:https://www.cnblogs.com/WentingC/p/8675492.html

js禁止滚动条滚动并且隐藏滚动条

禁止鼠标滑过滚动条滚动 document.body.onmousewheel = function () {return false;} 恢复鼠标滑过滚动条滚动 document.body.onmousewheel = function () {return true;} 禁止键盘控制滚动条滚动 document.body.onkeydown = function (e) {   if (e.keyCode == 38 || e.keyCode == 40) {    return false;

DIV模拟的自定义滚动条

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>div模拟的自定义滚动条</title><style type="text/css">* { margin: 0; padding: 0;} p { heigh

Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)

日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资源,当然,最重要的还是未能达到自己的预期,是不是很内伤啊.此时,我们就不得不像正常用户操作一样,通过滚动页面至相应的区域,那么该如何滚动呢,此文就此给出答案. 此文实现的页面滚动,是通过 js 操作实现的,敬请各位小主参阅.若有不足之处,敬请大神指正,非常感谢! 直接上码了...... 1 /**

asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)

自从腾讯微博上线以来,基本上就开始用了,一直到现在,作为一个开发人员,也看到了腾讯微博一直在不停的改变,也不知道大家有没有发现,腾讯微博提供两种加载数据的方式,一种是分页,一种是滚动浏览器滚动条加载数据,分页功能我想大家都做得太多了,今天我与大家分享一下我用滚动条滚动加载数据,小生不才,还望各位大侠指教,呵呵~ 下面开讲: 首先说一下思路,我用的是Jquery,然后通过Jquery的ajax()方法通过 HTTP 请求加载远程数据来实现的,用到Jquery,首先要应用jquery.min.js类

javascript无缝滚动

无缝滚动好像是互联网广告最大的一个载体,可以用“无处不在”来形容它.不过它比起早期的闪光字体,浮动广告算进步了.由于需求巨大,做前台迟早会遇到它.我先给出结构层部分,再慢慢讲解其实现原理. <dl id="marquee">   <dt>     <img src="http://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_s017.jpg" alt="无缝滚动&quo

CSS中隐藏滚动条的简单实现方法

xhtml中隐藏滚动条 在用ie6浏览有框架的xhtml页面的时候,默认会水平和垂直滚动条会一起出现,这是ie6的一个 bug,在firefox上是正常的,出现的原因是其对XHTML 1.0 transitional doctype的解释缺陷. 对于这个bug一般有3种解决方案, 方法1: 代码: 程序代码 html { overflow-y: scroll; } 原理:强制显示ie的垂直滚动条,而忽略水平滚动条 优点:完全解决了这个问题, 允许你保持完整的XHTML doctype. 缺点:即