无缝循环marquee滚动JS代码实现,兼容IE, FireFox, Chrome,供大家参考,具体内容如下

首先是CSS和HTML如下:
#marquee_zxd {
border: 1px solid red;
white-space: nowrap;
overflow: hidden;
width: 500px;
padding-top: 5px;
}
#marquee_zxd img {
height: 100px;
}
<!-- 横向一定要是span -->
<div id="marquee_zxd"><span>
<!-- 内嵌一个div很重要,里面的元素必须是一个整体的移动。另外横移时,必须是行级元素只占自己的空间。 -->
<div id="marquee_inner" style="position:relative; display: inline-block;">
<img src="img/duck.png"/>
<img src="img/donkey.png"/>
<img src="img/eggbird.png"/>
<img src="img/elephant.png"/>
<img src="img/butterfly.png"/>
</div>
</span></div>
<script type="text/javascript" src="${cpath}/js/marquee_zxd.js"></script>
下面是JS实现marquee_zxd.js:
/**除了Chrome以外的浏览器可以通过scrollLeft属性控制滚动*/
function scrolleft(obj){
var $obj = $(obj);
//到右边顶端后不会再变
//var temp = obj.scrollLeft;
//obj.scrollLeft++;
var temp = $obj.scrollLeft();
//console.log(temp);
$obj.scrollLeft(temp+1);
//当滚动条到达右边顶端时;或本身长度不够不好滚动(漫出才好滚)
//if(obj.scrollLeft == temp){
if($obj.scrollLeft() == temp){
obj.innerHTML += obj.innerHTML;
console.log('copy');
}
//当滚动条滚动了初始内容的宽度时,滚动条回到最左端,模拟循环
//if (obj.scrollLeft >= obj.firstChild.offsetWidth)
// obj.scrollLeft = 0;
if ($obj.scrollLeft() >= obj.firstChild.offsetWidth)
$obj.scrollLeft(0);
}
/**除了Chrome以外的浏览器可以通过scrolleft()滚动*/
function initMarquee(){
var aaa = document.getElementById('marquee_zxd');
var MyMar = setInterval(function(){
scrolleft(aaa);
}, 20);
//鼠标移上时清除定时器达到滚动停止的目的
aaa.onmouseover=function() {clearInterval(MyMar);};
//鼠标移开时重设定时器
aaa.onmouseout=function() {MyMar = setInterval(function(){
scrolleft(aaa);
}, 20);};
}
/**Chrome定时器循环函数,通过relative布局的left属性控制滚动*/
function scrolleftChrome($marquee_inner, inner_width){
var width = parseInt(inner_width);
var leftPx = $marquee_inner.css("left");
//兼容IE
if(leftPx == 'auto')
leftPx = 0;
//位置左移
var left = parseInt(leftPx);
left = left - 1;
//到顶归位
if(left <= -width)
left = 0;
$marquee_inner.css("left", left);
//console.log(width + ", " + left);
}
/**Chrome浏览器可以通过scrolleftChrome滚动*/
function initMarqueeChrome() {
//局部变量不污染全局变量空间
var $marquee_inner = $('#marquee_inner');
//原内容大小
var inner_width = $marquee_inner.css('width');
//复制一份原内容
var innerHtml = $marquee_inner.html();
$marquee_inner.html(innerHtml + innerHtml);
console.log(inner_width);
//参数采用字符串形式的缺陷:参数不能被周期性改变,参数必须是全局变量
//var MyMar = setInterval("scrolleftChrome($marquee_inner, inner_width)", 5000);
var MyMar = setInterval(function(){
//参数不污染全局变量空间
scrolleftChrome($marquee_inner, inner_width);
}, 50);
var marquee_zxd = document.getElementById('marquee_zxd');
//鼠标移上时清除定时器达到滚动停止的目的
marquee_zxd.onmouseover=function() {clearInterval(MyMar);};
//鼠标移开时重设定时器
marquee_zxd.onmouseout=function() {
//参数采用字符串形式的缺陷:参数不能被周期性改变,参数必须是全局变量
//MyMar = setInterval("scrolleftChrome($marquee_inner, inner_width)", 50);
MyMar = setInterval(function(){
//参数不污染全局变量空间
scrolleftChrome($marquee_inner, inner_width);
}, 50);
};
}
$(function(){
var ua = window.navigator.userAgent;
var isIE = window.ActiveXObject != undefined && ua.indexOf("MSIE") != -1;
var isFirefox = ua.indexOf("Firefox") != -1;
var isChrome = ua.indexOf("Chrome") && window.chrome;
if(isChrome){
initMarqueeChrome();
console.log("isChrome: initMarqueeChrome");
}else{
initMarquee();
console.log("isChrome: initMarquee");
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# marquee
# 滚动
# js实现列表自动滚动循环播放
# js实现列表循环滚动
# 原生js实现表格循环滚动
# JS实现的文字间歇循环滚动效果完整示例
# JS实用的带停顿的逐行文本循环滚动效果实例
# JS实现头像循环滚动示例
# 鼠标
# 全局变量
# 可以通过
# 滚动条
# 移开
# 上时
# 自己的
# 是一个
# 左端
# 很重要
# 动了
# 才好
# 会再
# 具体内容
# 大家多多
# 只占
# 内嵌
# 横移
# FireFox
# Chrome
相关文章:
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
如何在阿里云部署织梦网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何高效完成自助建站业务培训?
小程序网站制作需要准备什么资料,如何制作小程序?
小型网站建站如何选择虚拟主机?
已有域名如何免费搭建网站?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何快速完成中国万网建站详细流程?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
建站之星后台密码遗忘如何找回?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
如何用PHP工具快速搭建高效网站?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
,购物网站怎么盈利呢?
广州营销型建站服务商推荐:技术优势与SEO优化解析
外贸公司网站制作哪家好,maersk船公司官网?
如何快速生成专业多端适配建站电话?
如何快速打造个性化非模板自助建站?
高防服务器如何保障网站安全无虞?
,巨量百应是干嘛的?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
h5网站制作工具有哪些,h5页面制作工具有哪些?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
建站之星如何保障用户数据免受黑客入侵?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何在阿里云完成域名注册与建站?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
建站三合一如何选?哪家性价比更高?
高端企业智能建站程序:SEO优化与响应式模板定制开发
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何快速配置高效服务器建站软件?
制作旅游网站html,怎样注册旅游网站?
如何在橙子建站中快速调整背景颜色?
建站主机是否等同于虚拟主机?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
如何用搬瓦工VPS快速搭建个人网站?
已有域名能否直接搭建网站?
建站之星微信建站一键生成小程序+多端营销系统
装修招标网站设计制作流程,装修招标流程?
*请认真填写需求信息,我们会在24小时内与您取得联系。