• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > jquery实现页面百叶窗走马灯式翻滚显示效果的方法

jquery实现页面百叶窗走马灯式翻滚显示效果的方法

作者:sxgkwei 字体:[增加 减小] 来源:互联网 时间:2017-08-16

sxgkwei 通过本文主要向大家介绍了jquery,页面,百叶窗,走马灯,翻滚,显示,效果,方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了jquery实现页面百叶窗走马灯式翻滚显示效果的方法。分享给大家供大家参考。具体如下:

1. 这里的代码需要jquery1.3以上的支持,如下所示:
    function($){
        var l = 4,//卷动行数
            t=5000,//卷动完一次后,隔多长时间下次开始卷动
            rt=500,//每个n卷动过去的耗时
            n="li",//默认的卷动对象内包含的要卷动的HTML标记
            o="ul",//如果卷动时,启用的包裹卷动元素的HTML标记
            e,//调用对象
            en,//调用对象内所有的要卷动的对象集合
            h;//卷动行高度
        var vLimit=80;//比视觉极限0.1s还小点
        var maxRnum=Math.ceil(rt/vLimit);//最大卷动次数
        var maxRh=0;//每次卷动高度
        var fnRollFirst=function(arg){//将arg向上卷1个n,完成之后将第1个n移动到最后一个位置
            var rCount=0;//卷动次数纪录
            var rVal=setInterval(function(){//每隔vLimit循环一次,共循环maxRnum-1次
                        rCount++;
                        arg.scrollTop(arg.scrollTop()+maxRh);
                        if(rCount>=(maxRnum-1)){//少卷1次
                            clearInterval(rVal);
                            arg.scrollTop(arg.scrollTop()+h-maxRh*(maxRnum-1));//最后1次修正卷动值
                            //移动第一个元素到最后
                            var nowN=arg.children(n);
                            nowN.eq(nowN.length-1).after(nowN.eq(0));
                            //第一个位置空出后需要通过倒卷修正回来
                            arg.scrollTop(-h);
                        };
                    },vLimit);
        };
        var fnRollArr=function(arg){//对数组中的对象逐一启动卷动
            var out=setInterval(function(){
                fnRollFirst(arg.shift());
                if(!arg.length){
                    clearInterval(out);
                };
            },rt);     
        };
        var fnRoll=function(){//获得需要逐个卷动的对象集合
            var arr=new Array();
            e.children(o).each(function(){
                var rn=$(this).children(n);
                if(rn.length>1){
                    arr.push($(this));
                };
            });
            setInterval(function(){
                fnRollArr(arr.slice(0));
            },t);
        };
        var fnLay=function(){//布局页面
            h=en.height();
            var nu=Math.ceil(en.length/l);
            var u=$("<"+o+"></"+o+">");
            u.css({"overflow":"hidden","height":h+"px","margin-bottom":"15px"});
            for(var i=0;i<l;i++){
                en.slice(nu*i,nu*(i+1)).wrapAll(u);
            };         
        };
        var fnMain=function(){//卷动主方法
            if(maxRnum>1){
                fnLay();
                maxRh=Math.ceil(h/maxRnum);
                fnRoll();
            };
        };
        var fnStart= function(arg){//初始化显示方式
            e=arg;
            en = e.children(n);
            en.show();
            if(en.length>l){
                fnMain();
            }else{
                return false;
            };
        };
        return {
            setLine : function(num){//设置要分成多少行来卷动
                (!isNaN(num) && num>0)?l=num:"";
                return this;
            },
            setTime : function(num){//卷动间隔时间:毫秒
                (!isNaN(num) && num>0)?t=num:"";
                return this;
            },
            startRoll : function(){//启动卷动
                fnStart(this);
            }
        };
    }
)(jQuery));
2. 页面可以是这样子
 <li>
     <a href="#" class="name">李飞</a>正在申请成为经验达人
 </li>
 <li>
     <a href="#" class="name">李飞</a>已向职场专题《<a href="">我是个亚太人呀亚太人</a>》投稿
 </li>
 <li>
     <a href="#" class="name">董川民</a>已成功购买职场专题《<a href="#">我是个亚太人呀亚太人</a>》
 </li>
 <li>
     <a href="#" class="name">李飞</a>对《<a href="">我是个亚太人呀亚太人</a>》的解决方案又卖出一次
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
   
 <li>
     <a href="#" class="name">李飞</a>向职场专题《<a href="#">我是个亚太人呀亚太人</a>》的投稿已通过审核,获得1元奖励。
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>评论经验:
     <div class="text"><a href="">人生感悟及处事技巧人生感悟及处事</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
  
 <li>
     <a href="#" class="name">李飞</a>已正式成为经验达人
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>评论经验:
     <div class="text"><a href="">人生感悟及处事技巧人生感悟及处事</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
    
 <li>
     <a href="#" class="name">李飞</a>已邀请<a href="#" class="name">董川民</a>成为经验达人
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>评论经验:
     <div class="text"><a href="">人生感悟及处事技巧人生感悟及处事</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
 <li>
     <a href="#" class="name">三内里奥</a>回答了<a href="#" class="name">大飞</a>的提问
     <div class="text"><a href="">人生感悟及处事技巧人生感悟?</a></div>
 </li>
</div>
<script type="text/javascript">
//复杂点的调用写法
//$("#re").setLine(5).setTime(3000).startRoll();
//简单的调用
$("#re").startRoll();
</script>

希望本文所述对大家的jQuery程序设计有所帮助。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于jQuery对象和DOM对象和字符串之间的转化实例
  • jquery+css实现简单的图片轮播效果
  • 使用jQuery实现鼠标点击左右按钮滑动切换
  • jQuery实现上传图片前预览效果功能
  • jQuery初级教程之网站品牌列表效果
  • 基于jquery实现多选下拉列表
  • jQuery接受后台传递的List的实例详解
  • 详解jquery选择器的原理
  • jQuery上传插件webupload使用方法
  • 关于jquery form表单序列化的注意事项详解

相关文章

  • 2017-08-16基于jquery实现的树形菜单效果代码
  • 2017-08-16使用jQuery.form.js/springmvc框架实现文件上传功能
  • 2017-08-16jQuery 核心函数以及jQuery对象
  • 2017-08-16jQuery加载及解析XML文件的方法实例分析
  • 2017-08-16jQuery应用中特殊字符处理的问题
  • 2017-08-16jquery实现input框获取焦点的方法
  • 2017-08-16JQuery控制div外点击隐藏而div内点击不会隐藏的方法
  • 2017-08-16jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
  • 2017-08-16EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
  • 2017-08-16jQuery点击tr实现checkbox选中的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Jquery 学习笔记(一)
    • 浅谈jQuery中的checkbox问题
    • jq实现左侧显示图片右侧文字滑动切换效果
    • JS中批量给元素绑定事件过程中的相关问题使用闭包解决
    • jQuery选择器源码解读(一):Sizzle方法
    • 12款经典的白富美型—jquery图片轮播插件—前端开发必备
    • jQuery查找和过滤_动力节点节点Java学院整理
    • 封装的jquery翻页滚动(示例代码)
    • 详解jQuery向动态生成的内容添加事件响应jQuery live()方法
    • 基于jquery的手风琴图片展示效果实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有