jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码

 更新时间:2013年01月23日 16:07:20   作者:  
多行滚动jQuery循环新闻列表代码包括以下功能:鼠标滑上焦点图时停止自动播放/滑出时开始自动播放以及判断执行横向或纵向滚动,感兴趣的朋友可以了解下哦
html 文件
gundong-0.1.html
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>多行滚动jQuery循环新闻列表代码</title>
<style type="text/css">
ul,li{margin:0;padding:0}
img{border:0px;}
a{text-decoration:none;border:0px;}
/* 横向滚动 */
#scrollDiv2{border:#ccc 1px solid;}
#scrollDiv3{border:#ccc 1px solid;}
</style>
<script src="../jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="wordscroll-0.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){

$.wordScroll({
objId:"scrollDiv2"
});
$.wordScroll({
objId:"scrollDiv3",
isHorizontal:true
});
});
</script>
</head>
<body>
<div id="scrollDiv2">
<ul>
<li>这是公告标题的第一行</li>
<li>这是公告标题的第二行</li>
<li>这是公告标题的第三行</li>
<li>这是公告标题的第四行</li>
<li>这是公告标题的第五行</li>
<li>这是公告标题的第六行</li>
<li>这是公告标题的第七行</li>
<li>这是公告标题的第八行</li>
<li>这是公告标题的第九行</li>
</ul>
</div>
<div id="scrollDiv3">
<ul>
<li>这是公告标题的第一行</li>
<li>这是公告标题的第二行</li>
<li>这是公告标题的第三行</li>
<li>这是公告标题的第四行</li>
<li>这是公告标题的第五行</li>
<li>这是公告标题的第六行</li>
<li>这是公告标题的第七行</li>
<li>这是公告标题的第八行</li>
<li>这是公告标题的第九行</li>
</ul>
</div>
</body>
</html>

js文件
wordscroll-0.1.js

复制代码 代码如下:

<P>/**
* 多行文字滚动,可以实现向左和向上两种滚动
*
**/
$.extend({
wordScroll:function(opt,callback){
//alert("suc");
this.defaults = {
objId:"",
width:300, // 每行的宽度
height:100, // div的高度
liHeight:25, // 每行高度
lines:2, // 每次滚动的行数
speed:1000, // 动作时间
interval:2000, // 滚动间隔
picTimer:0, // 间隔句柄,不需要设置,只是作为标识使用
isHorizontal:false // 是否横向滚动
}
//参数初始化
var opts = $.extend(this.defaults,opt);
// 纵向横向通用
$("#"+opts.objId).css({
width:opts.width,
height:opts.height,
"min-height":opts.liHeight,
"line-height":opts.liHeight+"px",
overflow:"hidden"
});
$("#"+opts.objId+" li").css({
height:opts.liHeight
});
if(opts.lines==0)
opts.lines=1;
// 横向滚动
if(opts.isHorizontal){
$("#"+opts.objId).css({
width:opts.width*opts.lines + "px"
});
$("#"+opts.objId+" li").css({
"display":"block",
"float":"left",
"width":opts.width + "px"
});
$("#"+opts.objId+" ul").css({
width:$("#"+opts.objId).find("li").size()*opts.width + "px"
});</P><P> // 横向使用,不够一屏则不滚动
if($("#"+opts.objId).find("li").size()<=opts.lines)
return;
var scrollWidth = 0 - opts.lines*opts.width;
}else{
//如果不够一屏内容 则不滚动
if($("#"+opts.objId).find("li").size()<=parseInt($("#"+opts.objId).height()/opts.liHeight,10))
return;
var upHeight=0-opts.lines*opts.liHeight;
}
// 横向滚动
function scrollLeft(){
$("#"+opts.objId).find("ul:first").animate({
marginLeft:scrollWidth
},opts.speed,function(){
for(i=1;i<=opts.lines;i++){
$("#"+opts.objId).find("li:first").appendTo($("#"+opts.objId).find("ul:first"));
}
$("#"+opts.objId).find("ul:first").css({marginLeft:0});
});
};
// 纵向滚动
function scrollUp(){
$("#"+opts.objId).find("ul:first").animate({
marginTop:upHeight
},opts.speed,function(){
for(i=1;i<=opts.lines;i++){
$("#"+opts.objId).find("li:first").appendTo($("#"+opts.objId).find("ul:first"));
}
$("#"+opts.objId).find("ul:first").css({marginTop:0});
});
};
//鼠标滑上焦点图时停止自动播放,滑出时开始自动播放
$("#"+opts.objId).hover(function() {
clearInterval(opts.picTimer);
},function() {
opts.picTimer = setInterval(function() {
// 判断执行横向或纵向滚动
if(opts.isHorizontal)
scrollLeft();
else
scrollUp();
},opts.interval); // 自动播放的间隔,单位:毫秒
}).trigger("mouseleave");
}
})
</P>

相关文章

  • AspNet中使用JQuery上传插件Uploadify详解

    AspNet中使用JQuery上传插件Uploadify详解

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用
    2015-05-05
  • jQuery淡入淡出元素让其效果更为生动

    jQuery淡入淡出元素让其效果更为生动

    把一个元素淡出或淡入可以达到更为生动的效果,在任何一种情况下,都只是随着时间来改变元素的透明度
    2014-09-09
  • jQuery实现遍历复选框的方法示例

    jQuery实现遍历复选框的方法示例

    这篇文章主要介绍了jQuery实现遍历复选框的方法,结合实例形式分析了jQuery针对表单复选框元素的遍历与字符串操作相关技巧,需要的朋友可以参考下
    2017-03-03
  • jquery插入兄弟节点的操作方法

    jquery插入兄弟节点的操作方法

    下面小编就为大家带来一篇jquery插入兄弟节点的操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • jquery 多行滚动代码(附详细解释)

    jquery 多行滚动代码(附详细解释)

    在网上可以随处找到这段代码,但是没有任何人解释这段代码,只要自己研究好久。
    2010-06-06
  • JQuery中SetTimeOut传参问题探讨

    JQuery中SetTimeOut传参问题探讨

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,解决办法是在此函数的基础上在做一层封装
    2013-05-05
  • jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法

    jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法

    这篇文章主要介绍了jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法,涉及jQuery中load方法的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • jQuery实现带延迟的二级tab切换下拉列表效果

    jQuery实现带延迟的二级tab切换下拉列表效果

    这篇文章主要介绍了jQuery实现带延迟的二级tab切换下拉列表效果,涉及jquery鼠标事件及页面元素样式动态变换的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • 源码解读jQ中浏览器兼容模块support

    源码解读jQ中浏览器兼容模块support

    jquery support主要是检测浏览器兼容性,支持力度的方法,用于展示不同浏览器各自特性和bug的属性集合。作为一个静态成员,提供给jquery内部函数,告诉他们某些功能是否能用。避免了以往通过检测浏览器版本做修改。下面我们通过源码详细解读jQ中浏览器兼容模块support。
    2016-08-08
  • 浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用

    浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用

    文章从JSON和JSONP区别开始讲起,用实例来对比他们之间的不同之处,然后详细讲解了jQuery中的ajax jsonp的使用并给出了示例及详细参数说明。这里推荐给大家,希望对小伙伴能有所帮助
    2014-11-11

最新评论