欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-08-09 17:58:17
html 文件 gundong-0.1.html . 代码如下:

html 文件
gundong-0.1.html

. 代码如下:


<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "https://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="https://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>
<p id="scrolldiv2">
<ul>
<li>这是公告标题的第一行</li>
<li>这是公告标题的第二行</li>
<li>这是公告标题的第三行</li>
<li>这是公告标题的第四行</li>
<li>这是公告标题的第五行</li>
<li>这是公告标题的第六行</li>
<li>这是公告标题的第七行</li>
<li>这是公告标题的第八行</li>
<li>这是公告标题的第九行</li>
</ul>
</p>
<p id="scrolldiv3">
<ul>
<li>这是公告标题的第一行</li>
<li>这是公告标题的第二行</li>
<li>这是公告标题的第三行</li>
<li>这是公告标题的第四行</li>
<li>这是公告标题的第五行</li>
<li>这是公告标题的第六行</li>
<li>这是公告标题的第七行</li>
<li>这是公告标题的第八行</li>
<li>这是公告标题的第九行</li>
</ul>
</p>
</body>
</html>


js文件
wordscroll-0.1.js

. 代码如下:


<p>/**
* 多行文字滚动,可以实现向左和向上两种滚动
*
**/
$.extend({
wordscroll:function(opt,callback){
//alert("suc");
this.defaults = {
objid:"",
width:300, // 每行的宽度
height:100, // p的高度
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");
}
})