在网站上我们常看到有滚动的文字或者图片,比如消息提醒,新闻列表,等等。那么这些效果是怎么形成的呢?经过查阅,找到一种十分方便的写法,经过改良,得出我自己的终极版滚动效果。

我先写个布局吧

<div class="scrollBox">
    <ul>
            <li>母鸡母鸡母鸡母鸡</li>
            <li>DUCKDUCKDUCK</li>
            <li>母鸡母鸡母鸡母鸡</li>
            <li>母鸡母鸡母鸡母鸡</li>
            <li>DUCKDUCKDUCK</li>
            <li>母鸡母鸡母鸡母鸡</li>
            <li>DUCKDUCKDUCK</li>
            <li>母鸡母鸡母鸡母鸡</li>
            <li>DUCKDUCKDUCK</li>
     </ul>
</div>

正规且常见的布局。当然li标签里的内容根据项目需要进行修改,都是不影响效果的实现的,你可以加个图片或者图片文字都有的状态,例如

要想实现滚动,样式上需要注意以下几点

1.最外面的div要有具体的高度。

2.最外面的div必须加上overflow:hidden

3.因为是获取li标签的高度作为向上滚动的距离,所以li标签的样式里最好不要有padding或者margin,如果效果冲突的话可以在li标签里加个a标签,样式写在a标签里

下面是核心部分

<script>

    function autoScroll(obj){

        var n=$(obj).find("li").height();
        $(obj).find("ul").animate({
               marginTop:-n
    },500,function(){
         $(this).css({marginTop:"0px"}).find("li:first").appendTo(this);
    })

    $(function(){

       setInterval('autoScroll(".scrollBox")',3000)

    })

}

</script>

这样写代码的复用性比较强,在$(function(){})里面可以加入多条语句,从而实现页面多处滚动的效果。

对了,千万不要在页面中引入jquery了噢

jquery轻松实现li标签上下滚动的原理的更多相关文章

  1. jQuery动态添加li标签并添加属性和绑定事件

    代码如下: <%@page import="java.util.ArrayList"%> <%@ page language="java" c ...

  2. jquery点击li标签之后在该li标签上添加一个class,点击下一个li时删除上一个li的class

    思路:点击当前li元素后是用removeClass()删除所有兄弟元素(使用siblings()获取)的class样式,然后使用addClass()为当前li添加class 具体演示如下: 1.HTM ...

  3. Jquery和JS获取ul中li标签(转)

    js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...

  4. Jquery和JS获取ul中li标签

    js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...

  5. 前端学习笔记(zepto或jquery)——对li标签的相关操作(二)

    对li标签的相关操作——8种方式获取li标签的第一个元素的内容 1.alert($("ul>li").first().html());2.alert($('ul>li' ...

  6. jquery如何实现点击LI标签和下面的LI互换顺序? 超简单代码

    转: jquery如何实现点击LI标签和下面的LI互换顺序? 上面的效果涉及jquery的两个方法: next()  :  获得匹配元素集合中每个元素紧邻的下一个同胞元素. after() :在被选元 ...

  7. 利用jQuery对li标签操作

    <ul class="con" id="products"> <li i=" class=""> < ...

  8. jquery <li>标签 隔若干行 加空白或者加虚线

    $(function () { $('ul li').addClass(function (i) { return i % 6 == 5 ? "ab" : "" ...

  9. 前端学习笔记(zepto或jquery)——对li标签的相关操作(五)

    对li标签的相关操作——has与find的差异性 demo代码: <ul> <li><p>1</p></li> <li>2< ...

随机推荐

  1. easyui datagrid自定义操作列

    通过formatter方法给Jquery easyui 的datagrid 每行增加操作链接 我们都知道Jquery的EasyUI的datagrid可以添加并且自定义Toolbar, 这样我们选择一行 ...

  2. D3DXCreateTextureFromFileInMemoryEx函数

    注:限于翻译水平限制,详情请查阅MSDN D3DXCreateTextureFromFileInMemoryEx 函数 从内存文件创建一个纹理,这是个比D3DXCreateTextureFromFil ...

  3. Discuz开源论坛

      Discuz开源论坛本地部署自动生成数据库   这个版本可能比较有点老,但是万变不离其宗,再新的版本都是在已有的基础上更新的,所以掌握方法是最重要的! 先上几张安装成功后的图 (安装成功的论坛首页 ...

  4. 广播,多播,IGMP:网际组管理协议

    广播,多播,IGMP:网际组管理协议 1.概述      IP有三种地址:单播地址, 广播地址,多播地址.      广播和多播仅应用于UDP.      每个以太网帧包含源主机和目的主机的以太网地址 ...

  5. 最简单的linux内存清理方法

    vmstat -s 查看剩余内存 然后用一下命令清理内存 echo 1 > /proc/sys/vm/drop_caches

  6. How to deploy openbr on linux server very shorly---- linuxmint13/ubuntu12.04 AMD64/debian7

    SO FAST ON A SERVER!!!! There are serveral packages that you have to install: 1. openbr 0.6.0 packag ...

  7. pipe----管道

    #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h&g ...

  8. [置顶] MyElipse9.0 M1安装svn(测试100%通过)

    为什么标题要写100%通过呢?原因是以前的方法(直接复制到plugin里(MyEclipse 6.0可以,我试过),link安装)都不好用了,9.0M1不吃这一套,所以告诉大家这么做一定能够装上!! ...

  9. 根据Mob官网的天气预报接口写了一个简单的demo

    第一步 自己注册一个应用,然后获取里面的 App Key,下载MobAPI SDK 然后拖入 MobAPI.framework 和 MOBFoundation.framework 到你的项目中 第二步 ...

  10. 【翻译】在Mac上使用VSCode创建你的第一个Asp.Net Core应用

    Setting Up Your Development Environment 设置你的开发环境 To setup your development machine download and inst ...