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 相关文章推荐
JSONP获取Twitter和Facebook文章数的具体步骤
Feb 24 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
Jquery性能优化详解
May 15 Javascript
jQuery中 delegate使用的问题
Jul 03 Javascript
Node.js开启Https的实践详解
Oct 25 Javascript
详解Web使用webpack构建前端项目
Sep 23 Javascript
vue-cli构建项目使用 less的方法
Oct 04 Javascript
微信小程序支付PHP代码
Aug 23 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
Aug 14 Javascript
Echarts如何重新渲染实例详解
May 30 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中smarty实现多模版网站的方法
2015/06/11 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python函数返回不定数量的值方法
2019/01/22 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
人力资源主管岗位职责
2014/01/29 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
化学教学随笔感言
2014/02/19 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
新教师个人工作总结
2015/02/06 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers