`

scrollLeft,scrollTop,滚动代码的总结

阅读更多
今天和兄弟一起研究了一下横向和竖向图片滚动的代码,很兴奋,因为解决了几个小问题
第一个:
for(var i=1;i<50;i++)
     {
          document.getElementById("TextBox1").scrollTop++;
          document.getElementById("TextBox1").scrollLeft++;
      }
我刚开始的时候写成了
for(int i=1;i<50;i++)
     {
          //document.getElementById("TextBox1").scrollTop++;
          document.getElementById("TextBox1").scrollLeft++;
      }
IE提示错误,Exception ;我半天不知道怎么回事,最后才发现是犯了个很低级的错误,javascript中的
变量用var定义,可以不定义!
下面入正题
clientHeight
大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看
到内容的这个区域的高度。

offsetHeight
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。
NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。

scrollHeight
IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。
NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。

简单地说
clientHeight 就是透过浏览器看内容的这个区域高度。
NS、FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于
clientHeight 时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。
scrollHeight 则是网页内容实际高度。

同理
clientWidth、offsetWidth 和 scrollWidth 的解释与上面相同,只是把高度换成宽度即可。

说了半天还是给个图吧



那么当容器如div中的table的宽大与定义的div的宽的时候,这个时候ScrollLeft++是可以起作用的!
example




<body>
    <form id="form1" runat="server">
    <div id="demo">
        <asp:TextBox ID="TextBox1" runat="server" Height="50px" TextMode="SingleLine" Width="200px" Wrap="False">
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        </asp:TextBox>
        <input id="Button1" type="button" value="button" onclick="scrolltop1()" /></div>
    <script language="javascript" type="text/javascript">
  function scrolltop1()
  {
     for(var i=1;i<50;i++)
     {
          document.getElementById("TextBox1").scrollTop++;
          document.getElementById("TextBox1").scrollLeft++;
      }
  window.alert(document.getElementById("TextBox1").scrollTop);
  window.alert(document.getElementById("TextBox1").scrollWidth);
  window.alert(document.getElementById("TextBox1").scrollLeft);
  }
    </script>
    </form>
</body>




而这里的 document.getElementById("TextBox1").scrollTop++;是不能起作用的!为什么呢?因为他的容器的
高scrollHeight不大于定义的 <asp:TextBox ID="TextBox1" runat="server" Height="50px">中的50px
如果大于就可以起作用了,如
<body>
    <form id="form1" runat="server">
    <div id=demo>
      
        <asp:TextBox ID="TextBox1" runat="server" Height="24px" TextMode="MultiLine" Width="30px" Wrap="False">
        fghdsfgfdgdf
guj</asp:TextBox>
        <input id="Button1" type="button" value="button" onclick="scrolltop1()" /></div>
    <script language="javascript" type="text/javascript">
  function scrolltop1()
  {
      for(var i=1;i<500;i++)
      {
          document.getElementById("TextBox1").scrollTop++;
          document.getElementById("TextBox1").scrollLeft++;
      }
  window.alert(document.getElementById("TextBox1").scrollWidth);
  window.alert(document.getElementById("TextBox1").scrollLeft);
  }
    </script>
    </form>
</body>
这个时候,scrollleft和scrolltop都是可以起作用的,这里给我们一起提示
要想用这两个家伙就必须把实际的内容弄得多于定义的容器的width和height

下面给出横向移动的代码




<form runat=server>
<div id="demo" style="overflow:hidden;width:300px;align=center">
<table border=0 align=center cellpadding=1 cellspacing=1 cellspace=0 >
<tr>
<td valign=top bgcolor=ffffff id=marquePic1>
<table width=90% border=0 cellspacing=0 cellpadding=0>
<tr align="center">
<td><a href="#" target="new"><img src="image/iecool001.gif" /></a></td>
<td><a href="#" target="new"><img src="image/iecool002.gif" /></a></td>
<td><a href="#" target="new"><img src="image/iecool003.gif" /></a></td>
<td><a href="#" target="new"><img src="image/iecool004.gif" /></a></td>
<td><a href="#" target="new"><img src="image/iecool005.gif" /></a></td>
</tr>
</table>
</td>
<td id="marquePic2" valign="top"></td>
</tr>
</table>
</div>
<script type="text/javascript">
var speed=30 ;
//marquePic2.innerHTML=marquePic1.innerHTML;
function Marquee(){
if(demo.scrollLeft>=marquePic1.scrollWidth){
  demo.scrollLeft=0;
}
else{
  demo.scrollLeft++;
}
}
var MyMar=setInterval(Marquee,speed);
demo.onmouseover=function() {
clearInterval(MyMar);
}
demo.onmouseout=function() {
MyMar=setInterval(Marquee,speed);
}
</script>
</form>


在给出竖向移动的代码




<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<div id="demo" style="height:72px; width:180px; overflow:hidden ">   
      <div id="demo1">
        <div align="center">
       
            <img src="image/iecool001.gif" />
            <img src="image/iecool002.gif" />
            <img src="image/iecool003.gif" />
            <img src="image/iecool004.gif" />
            <img src="image/iecool005.gif" />
            <img src="image/iecool006.gif" />     
          </div>
      </div>
<div id="demo2"></div>
<!--滚动的javascript-->
<script>
var speed1=8
demo2.innerHTML=demo1.innerHTML
function Marquees1(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
}
var MyMars1=setInterval(Marquees1,speed1)
demo.onmouseover=function() { clearInterval(MyMars1) }
demo.onmouseout=function() { MyMars1=setInterval(Marquees1,speed1) }

</script>
</div>
</body>
</html>


其实代码是比较简单的,只是要理解其意思就可以了!
  • 大小: 18.1 KB
分享到:
评论

相关推荐

    对offsetLet,offsetTop,scrollLeft,scrollTop几个方法的理解

    ### 对offsetLeft,offsetTop,scrollLeft,scrollTop几个方法的理解 在前端开发中,了解DOM元素的位置、大小以及滚动情况是非常重要的。`offsetLeft`, `offsetTop`, `scrollLeft`, `scrollTop`等属性可以帮助我们更好...

    scrollLeft,scrollTop等等详解[定义].pdf

    总结一下,`scrollLeft`、`scrollTop`、`offsetTop`、`offsetLeft`、`clientHeight`、`offsetHeight`和`scrollHeight`是Web开发中的核心属性,它们帮助开发者精确控制和响应网页元素的滚动和布局,是构建交互性更强...

    网页上下 左右循环滚动代码

    左右滚动的JavaScript逻辑与上下滚动相似,主要区别在于使用`scrollLeft`属性代替`scrollTop`,实现水平方向的滚动效果。 ### 结语 通过以上分析,我们可以看出,无论是上下还是左右循环滚动,其核心思路都是通过...

    上下左右无缝滚动代码

    本篇文章将深入探讨如何实现“上下左右无缝滚动代码”。 首先,我们要明白实现无缝滚动的核心在于JavaScript(JS)代码,因为HTML和CSS本身不直接支持这种动态滚动效果。在描述中提到的资源来源于阿里西西(Alixixi...

    网页横纵滚动代码

    ### 知识点解析:网页横纵滚动代码 #### 一、概述 本文将详细介绍一个简单易懂且方便好用的网页元素横纵滚动代码。该代码实现了网页内容的不间断滚动效果,适用于需要循环播放文字或图片等元素的场景。 #### 二、...

    jquery文本向上滚动代码带上下翻转按钮的jQuery插件

    总结,创建一个jQuery文本向上滚动代码带上下翻转按钮的插件涉及到理解jQuery库的基本操作、插件开发模式、事件监听以及动画效果的实现。通过以上步骤,你可以构建一个具有用户交互性的文本滚动组件,增强网页的动态...

    图片无缝滚动代码

    ### 图片无缝滚动代码知识点详解 #### 一、概述 图片无缝滚动技术是网页设计中常见的一种效果,常用于广告轮播、新闻滚动等场景。本文档提供的代码示例实现了一个简单的图片无缝垂直滚动功能,并且能够根据鼠标移动...

    jQuery表格顶部与左右两侧固定滚动代码

    为了解决这一问题,"jQuery表格顶部与左右两侧固定滚动代码"应运而生。这款插件允许表格的顶部表头和左侧列始终保持可见,即使在用户滚动页面时也是如此,从而提供了更好的用户体验。 jQuery是一个广泛使用的...

    JS+DIV无缝滚动代码

    根据给定的文件信息,我们可以总结出以下关于“JS+DIV无缝滚动代码”的知识点: ### 一、基础知识 #### 1.1 DIV容器与CSS样式 - **`&lt;div&gt;`**:HTML文档中最常见的标签之一,用于组合其他HTML元素,没有特定的格式...

    JS图片不间断四向滚动代码

    ### JS图片不间断四向滚动代码知识点解析 #### 一、概览 在现代网页设计中,动态效果的应用能够显著提升用户体验。本篇文章将详细介绍一种基于JavaScript实现的图片不间断四向滚动效果,即可以让图片在页面上、下...

    关于scrollLeft,scrollTop的浏览器兼容性测试

    `scrollLeft` 和 `scrollTop` 是JavaScript中用于获取或设置元素滚动条位置的属性。它们在不同的浏览器中可能存在兼容性问题,特别是在处理跨浏览器的页面布局和动态定位时。这两个属性分别代表元素水平和垂直方向上...

    保持页面滚动条位置的javascript代码

    标题与描述中提到的知识点是关于使用JavaScript代码来保持页面滚动条的位置,即在用户离开页面后再次返回时,能够恢复到之前滚动的位置。这一功能对于提升用户体验非常重要,尤其是在长篇文档、论坛或博客等场景下,...

    常用JS图片滚动(无缝、平滑、上下左右滚动)代码

    - 可以通过修改`scrollTop`为`scrollLeft`,将垂直滚动改为水平滚动。 2. **左右方向滚动**: - 在现有基础上增加新的`div`容器,并调整CSS样式,使用类似的方法实现左右方向的滚动。 3. **动画优化**: - 利用CSS3...

    js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍

    在示例代码中,`scrollTop`和`scrollLeft`在`onclick`事件中被输出,但并未进行设置。 4. `scrollTop`: 对应地,`scrollTop`属性则是用于设置或获取元素在垂直方向上的滚动位置,即元素内部内容相对于其顶部被隐藏...

    jquery鼠标滚动列表切换代码.zip

    3. **计算偏移量**:在滚动事件中,我们需要获取滚动条的当前位置,通常可以使用`$(window).scrollTop()`来获取垂直滚动条的位置。如果涉及到水平滚动,可以使用`$(window).scrollLeft()`。 4. **切换效果**:根据...

    javascript 原生代码实现滚动条

    总结来说,JavaScript原生代码实现滚动条涉及到对DOM的深入理解,以及熟练运用事件监听、样式修改和动画处理等技巧。通过`wjscroll.js`这样的工具或源码,开发者可以创建出符合自己需求的定制化滚动条,提升网页的...

    不随滚动条滚动而滚动的浮动效果

    JavaScript代码会在滚动条滚动时执行,从而使得浮动元素固定在浏览器窗口的某个位置不变。 HTML代码: ```html &lt;!DOCTYPE ...

    jquery scroll()区分横向纵向滚动条的方法

    jquery在scroll()事件里面,...然后绑定scroll事件,触发的时候获取scrollLeft/scrollTop和初始化的scrollLeft/scrollTop对比判断是横向还是纵向,同时更新对象存储的scrollLeft/scrollTop 代码如下:&lt;style&gt;.c{h

    js获取滚动距离的方法

    总结来说,`window.pageXOffset`、`window.pageYOffset`、`document.documentElement.scrollLeft`、`document.documentElement.scrollTop`、`document.body.scrollLeft` 和 `document.body.scrollTop` 这几个属性是...

Global site tag (gtag.js) - Google Analytics