当前位置: 首页 > news >正文

网页网站制作维护做调查的网站知乎

网页网站制作维护,做调查的网站知乎,梧州网页设计,百度移动网站排名最近在做一个聊天室的小案例,遇到了一个关于滚动条的问题,需要对获取的信息即时滚动以保证用户总能看到最新消息。聊天程序是基于 ajax 实现的,没有使用框架,消息容器是一个 div,查阅大量资料后写下这篇文章&#xff0…

最近在做一个聊天室的小案例,遇到了一个关于滚动条的问题,需要对获取的信息即时滚动以保证用户总能看到最新消息。聊天程序是基于 ajax 实现的,没有使用框架,消息容器是一个 div,查阅大量资料后写下这篇文章,以作记录!

文章目录

  • 1. div 添加滚动条
  • 2. 滚动条绑定事件
      • (1. 基本属性及方法
      • (2. 绑定滚动事件
      • (3. 判断向上 & 向下滚动
      • (4. 判断滚动条移动至最底部
  • 3. 滚动条样式
      • 样式 demo
  • 4. 小案例

1. div 添加滚动条

  overflow:scroll;

只要要设置这么一行 css 语句,我们就为 div 标签添加了一个滚动条,但这是一个双向滚动条,也就是说会在 div标签的上下方向和左右方向都添加一个滚动条,一般我们只需要在一个方向添加滚动条即可,因此我们可以使用overflow-x 或者 overflow-y 来设置单方向滚动条!
在这里插入图片描述

2. 滚动条绑定事件

(1. 基本属性及方法

先介绍一些 js 中和 scroll 滚动相关的属性及方法,了解这些方法可以更方便的帮助我们理解下边的几个事件。

属性解释
element.scrollHeight返回元素整个滚动区域的高度
element.scrollWidth返回元素整个滚动区域的宽度
element.scrollLeft返回水平滚动条滚动的距离
element.scrollTop返回垂直滚动条滚动的距离
element.clientHeight返回元素的可见高度
element.clientWidth0返回元素的可见宽度
方法解释
scrollBy(x,y)在滚动条原位置的基础上向右或者向下滚动的像素数
scrollTo(x,y)将滚动条直接向右或者向下滚动的像素数
element.scrollTop = 0  `垂直滚动条在最顶端`element.scrollLeft = 0  `水平滚动条在最左端`element.scrollTop + element.clientHeight >= element.scrollHeight `垂直滚动条在最底端`element.scrollLeft + element.clientWidth >= element.scrollWidth `水平滚动条在最右端`

(2. 绑定滚动事件

div 可以直接使用 onscroll 属性来绑定滚动事件,如下所示,当我们在界面进行滚动时,控制台就会打印信息了!

<!-- div 使用 onscroll 来为滚动条绑定绑定事件 --><div style="width:200px;height:150px;overflow-y:scroll;" class="div_soroll" onscroll="scroll_move()"><br><br><br><br><br><br><br><br><br></div><script type="text/javascript">var i = 0;function scroll_move(){i += 1;console.log("滚动了"+i+"次")}</script>

(3. 判断向上 & 向下滚动

为 div 标签添加自定义属性 scrollTop 用来保存当前滚动条位置,在滚动事件中获取滚动之后的位置,判断两个位置的大小即可得出滚动条 向上 或者 向下 移动,最后将滚动之后的位置赋值给 自定义属性 scrollTop。

<div style="width:200px;height:150px;border:1px solid;overflow-y:scroll;" class="div_soroll" onscroll="scroll_move(this)" scrollTop="0"><br><br><br><br><br><br><br><br><br></div><script type="text/javascript">function scroll_move(div){last_scrollTop = div.getAttribute("scrollTop");now_scrollTop = div.scrollTop;if (last_scrollTop<now_scrollTop){console.log("向下移动了");}else if(last_scrollTop>now_scrollTop){console.log("向上移动了");}div.setAttribute("scrollTop",now_scrollTop)}</script>

(4. 判断滚动条移动至最底部

通过上述 element.scrollTop + element.clientHeight >= element.scrollHeight 该公式即可判断!

3. 滚动条样式

在 css3 中,我们可以通过 ::-webkit-scrollbar 伪类选择器来设置滚动条的样式

::-webkit-scrollbar 仅仅在支持 WebKit 的浏览器生效 ( 例如, 谷歌Chrome, 苹果Safari )

样式 demo

在这里插入图片描述
详细内容请参考:

  • css scrollbar 样式设置
  • MDN web docs

4. 小案例

效果展示

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#the_div {border: 1px solid black;width: 200px;height: 100px;overflow-y: scroll;}#info{position:absolute;top: 90px;left: 8px;width: 200px;height: 20px;background-color: #ffc34c;color: white;text-align: center;line-height: 20px;font-size: 12px;opacity:0.8;visibility: hidden;}</style></head><body><div id="the_div" onscroll="scroll_move(this)" scrollTop="0"></div><div id="info" onclick="go_bottom()">∨ 有更多新的消息</div><script>var scroll_FLAG = truefunction scroll_move(div) {div_scrollTop = div.getAttribute("scrollTop");if (div.offsetHeight + div.scrollTop >= div.scrollHeight) {scroll_FLAG = true;document.getElementById("info").style.visibility = "hidden"return}else{scroll_FLAG = false;document.getElementById("info").style.visibility = "visible"}}function go_bottom() {var div = document.getElementById("the_div");div.scrollTo(0, div.scrollHeight);}function add_msg(){var div = document.getElementById("the_div");div.innerText += "123\n"if(scroll_FLAG){div.scrollTo(0,div.scrollHeight)}}setInterval(add_msg,1000)</script></body>
</html>
http://www.yayakq.cn/news/866747/

相关文章:

  • 画画在线南宁seo规则
  • 辽宁省住房城乡建设厅网站wordpress设置显示为英文
  • 网站建设如何盈利服装品牌网站建设
  • 青岛免费网站建设网站运营做seo
  • 网站地图生成器抖音代运营公司经营范围
  • 被墙的网站有哪些做ppt的图片素材网站有哪些
  • 大连网站开发选领超科技wordpress 4.5.3 ueditor
  • 做织梦网站之前要新建数据库吗c语言开发网站
  • 网站信息系统设计程序员开发软件
  • 网站设计作品案例讲解手机网站用什么开发好
  • 绵阳住房和城乡建设厅官方网站wordpress商品分销
  • 宜春代做网站男科治疗价目表
  • 网站软件下载大全证书查询网免费查询
  • 朝阳公园网站建设网站开发需要什么步骤
  • 河南省建设人才信息网站wp网站打开太慢怎么做优化
  • 卖掉的网站了对方用来做违法海外推广软件
  • 为什么自己花钱做的网站竟然不是自己的?(wordpress建站双语
  • 云南城市建设职业学校官方网站做网站项目的流程
  • 青岛网站建设青岛博采网络装修公司宣传册设计样本
  • 个人网站推广平台大全在线做app的网站
  • 大兴网站开发网站建设咨询wordpress怎么私人媒体库
  • 常州在线制作网站专业建设的意义
  • 合肥网站建设市场厦门网站设计推广公司
  • 网站没备案能访问吗正规现货交易平台app
  • 公司高端网站建设衡阳网站开发培训
  • 网站效果图怎么做建筑网片的用途有哪些
  • 三拼域名做网站嘉兴建站软件
  • 关于加强网站建设的建议在网站上保存网址怎么做
  • 张家港设计网站做招聘网站的客户想退钱
  • 建设部网站注册师免费设计网站素材