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 相关文章推荐
在线游戏大家来找茬II
Sep 30 Javascript
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
JavaScript 一道字符串分解的题目
Aug 03 Javascript
jquery ajax 局部无刷新更新数据的实现案例
Feb 08 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
JS实现电商商品展示放大镜特效
Jan 07 Javascript
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
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简介
2006/10/09 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
详解Bootstrap插件
2016/04/25 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python自动12306抢票软件实现代码
2018/02/24 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
python实现抽奖小程序
2020/04/15 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
Python sorted对list和dict排序
2020/06/09 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
python字典与json转换的方法总结
2020/12/28 Python
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
委托书的写法
2014/08/30 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
详解thinkphp的Auth类认证
2021/05/28 PHP
MySQL数据库必备之条件查询语句
2021/10/15 MySQL