基于jQuery实现一个marquee无缝滚动的插件
发布时间 - 2026-01-11 00:05:27 点击率:次基于jQuery,实现一个marquee无缝滚动的插件,已经发布到 git.oschina.net,演示稍后更新(更新到 http://git.oschina.net/mqycn/jQueryMarquee )。

代码如下:
/**
* 类库名称:jQuery.marquee
* 实现功能:基于 jquery 实现的 marquee 无缝滚动插件
* 作者主页:http://www.miaoqiyuan.cn/
* 联系邮箱:mqycn@126.com
* 使用说明:http://www.miaoqiyuan.cn/p/jquery-marquee
* 最新版本:http://git.oschina.net/mqycn/jQueryMarquee
*/
jQuery.fn.extend({
marquee : function(opt, callback){
opt = opt || {};
opt.speed = opt.speed || 30;
opt.direction = opt.direction || 'left';
opt.pixels = opt.pixels || 2;
switch( opt.direction ){
case "left":
case "right":
opt.weight = "width";
opt.margin = "margin-left";
opt.tpl = '<table><tr><td>[TABLE]</td><td>[TABLE]</td></tr></table>';
break;
case "top":
case "bottom":
opt.weight = "height";
opt.margin = "margin-top";
opt.tpl = '<table><tr><td>[TABLE]</td></tr></tr><td>[TABLE]</td></tr></table>';
break;
default:
throw Error("[jQuery.marquee.js] Options.direction Error!");
}
switch( opt.direction ){
case "left":
case "top":
opt.addon = -1;
break;
case "right":
case "bottom":
opt.addon = 1;
break;
default:
throw Error("[jQuery.marquee.js] Options.direction Error!");
}
callback = typeof callback == "function" ? callback : function(){};
//设置宽度
$(this).each(function(){
if( this.control ){
clearInterval(this.control);
} else {
//如果第一次执行,初始化代码
$(this)
.data(opt.weight, opt.weight == 'width' ? $(this).find("table").width() : $(this).find("table").height())
.width($(this).data(opt.weight) * 2)
.html(opt.tpl.replace(/\[TABLE\]/ig, $(this).html()))
.mouseover(function(){
$(this).data("pause", true);
}).mouseout(function(){
$(this).data("pause", false);
});
}
this.control = setInterval((function(){
if( $(this).data("pause") ){
return;
}
var _margin = parseInt($(this).css(opt.margin)) + opt.addon * opt.pixels;
if( opt.addon == -1 && _margin + $(this).data(opt.weight) < 0 ){
_margin = 0;
}else if( opt.addon == 1, _margin > 0 ){
console.log(_margin < 0,$(this).data(opt.weight));
_margin = -1 * $(this).data(opt.weight);
}
$(this).css(opt.margin, _margin + "px");
callback.bind(this)();
}).bind(this), opt.speed);
});
return $(this);
}
});
如果在IE9以下使用,还需要在之前增加如下代码:
/**
* IE8插件(解决 function 不支持 bind 的问题),非原创
*/
if (!Function.prototype.bind) {
Function.prototype.bind = function(oThis) {
if (typeof this !== "function") {
throw new TypeError("[jQuery.marquee.ie8] Caller is not a function");
}
var aArgs = Array.prototype.slice.call(arguments, 1),
fToBind = this,
fNOP = function() {},
fBound = function() {
return fToBind.apply(this instanceof fNOP && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
};
fNOP.prototype = this.prototype;
fBound.prototype = new fNOP();
return fBound;
};
}
一共有三个可选参数,一个回调方法。
direction,移动方向:支持 左:left 右:right 上:top 下:bottom;
pixels,每次移动的像素数
speed,两次移动之前的间隔时间数(毫秒)
调用方法如下:
$("scroll-a").marquee();
$("scroll-b").marquee({direction:'top'});
$("scroll-c").marquee({direction:'top',pixels:2,speed:30});
$("scroll-d").marquee({direction:"top",pixels:2,speed:30}, function(){
console.log("执行了一次");
});
以上所述是小编给大家介绍的基于jQuery实现一个marquee无缝滚动的插件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# marquee
# 无缝滚动
# jquery无缝滚动插件
# jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
# jQuery模拟Marquee实现无缝滚动效果完整实例
# JQuery插件Marquee.js实现无缝滚动效果
# jquery xMarquee实现文字水平无缝滚动效果
# 小编
# 在此
# 两次
# 要在
# 给大家
# 不支持
# 可选
# 最新版本
# 所述
# 还需
# 回调
# 给我留言
# 稍后
# 感谢大家
# 方法如下
# 新到
# 像素数
# 疑问请
# 类库
# 有任何
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
在线制作视频网站免费,都有哪些好的动漫网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
SQL查询语句优化的实用方法总结
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
简单实现Android验证码
如何在建站之星绑定自定义域名?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Laravel如何使用Collections进行数据处理?(实用方法示例)
Swift中switch语句区间和元组模式匹配
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何用狗爹虚拟主机快速搭建网站?
Laravel如何生成URL和重定向?(路由助手函数)
Laravel如何使用withoutEvents方法临时禁用模型事件
如何快速登录WAP自助建站平台?
如何在腾讯云免费申请建站?
网站图片在线制作软件,怎么在图片上做链接?
EditPlus中的正则表达式实战(5)
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何用y主机助手快速搭建网站?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
如何在IIS中新建站点并配置端口与物理路径?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
EditPlus中的正则表达式 实战(1)
网站优化排名时,需要考虑哪些问题呢?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何使用查询构建器?(Query Builder高级用法)
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
如何在腾讯云服务器上快速搭建个人网站?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
免费视频制作网站,更新又快又好的免费电影网站?
Laravel如何实现文件上传和存储?(本地与S3配置)
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel如何实现模型的全局作用域?(Global Scope示例)
如何在阿里云香港服务器快速搭建网站?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何自定义建站之星网站的导航菜单样式?
如何用VPS主机快速搭建个人网站?
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
网页设计与网站制作内容,怎样注册网站?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Laravel如何实现事件和监听器?(Event & Listener实战)
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
上一篇:yii日志文件在哪
上一篇:yii日志文件在哪

