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


Posted in Javascript onJanuary 23, 2013

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>
Javascript 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
js模拟弹出效果代码修正版
Aug 07 Javascript
javascript AutoScroller 函数类
May 29 Javascript
加载列表时jquery获取ul中第一个li的属性
Nov 02 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
js拖拽的原型声明和用法总结
Apr 04 Javascript
JS实现颜色梯度与渐变效果完整实例
Dec 30 Javascript
bootstrap css样式之表单
Jan 19 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
js中addEventListener()与removeEventListener()用法案例分析
Mar 02 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
Jan 23 #Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
Jan 23 #Javascript
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 #Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 #Javascript
重构Javascript代码示例(重构前后对比)
Jan 23 #Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
Jan 22 #Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 #Javascript
You might like
php中的登陆login
2007/01/18 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
js 内存释放问题
2010/04/25 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
python opencv之SIFT算法示例
2018/02/24 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
使用Scrapy爬取动态数据
2018/10/21 Python
使用python3构建文件传输的方法
2019/02/13 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
什么是python的id函数
2020/06/11 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
python中time、datetime模块的使用
2020/12/14 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
如何删除一个表里面的重复行
2013/07/13 面试题
《月球之谜》教学反思
2014/04/10 职场文书
护理见习报告范文
2014/11/03 职场文书
保姆聘用合同
2015/09/21 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python