利用dom-drag实现flash滚动条功能
在上一篇《一个拖拽的效果类和dom-drag.js浅析》中,我大概介绍了dom-drag的拖拽功能,这次我们用dom-drag来实现flash上比较常用的滚动条效果。效果如下:
实际效果,请狠狠点击这里。
这是实现文字滚动功能的代码,其中需要导入dom-drag类和addEvent类

<script language="javascript">
//hDistant,滚动条的可以移动距离,初始位置,x,y是滑块相对父级元素的,即relative
var hDistant='';
var x='';
var y='';
//两个组件
var slider = '';
var content ='';
//内容的top
var contentTop='';
//缓东效果的计数器
var add=0;
function setSlider(){
slider = id("slider");
content = id("scrollContent");
contentTop=content.offsetTop;
x=slider.offsetLeft;
y=slider.offsetTop;
hDistant=slider.parentNode.offsetHeight-slider.offsetHeight;
//x,y是相对父级元素的,即relative
Drag.init(slider,null,x,x,y,y+hDistant,false,false,null,null);
setInterval("onScroll()",30);
}
function id(elem){
return document.getElementById(elem);
}
//文字滚动
function onScroll(){
var addY=(content.offsetHeight-id("mask").offsetHeight)*(slider.offsetTop-y)/hDistant;
//currentY是最终的文本框最终的Y坐标位置
var currentY=contentTop-addY;
//content.offsetTop每次都会相应减少,
add+=parseInt((currentY-content.offsetTop)*0.1);
content.style.top=add+"px";
}
window.onload =setSlider;
</script>
其中稍为复杂的是缓动的部分:
1 2 3 4 5 6 | function onScroll(){ var addY=(content.offsetHeight-id( "mask" ).offsetHeight)*(slider.offsetTop-y)/hDistant; var currentY=contentTop-addY; add+=parseInt((currentY-content.offsetTop)*0.1); content.style.top=add+ "px" ; } |
addY是求出滑块移动的距离对应滚动区域移动的距离,currentY则是最终要移动的y坐标,利用add实现缓动。目前测试可以兼容主流的浏览器。
BY 橡树小屋 FROM http://www.cnblogs.com/babyzone2004/
本文地址:http://www.cnblogs.com/babyzone2004/archive/2010/07/18/1780000.html
分类:
javascript在路上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架