jquery实现marquee效果(文字或者图片的水平垂直滚动)


Posted in Javascript onJanuary 07, 2013

原本在前端html代码中,实现文字或者图片的水平垂直滚定,都是使用的marquee,但随着考虑浏览器的兼容性和符合为w3c的标准,后来想想那还是使用javascript代码来实现。后来又喜欢上了jquery,下面写的内容希望对初学者有些帮助,高手勿喷,但欢迎指导,感激不尽。

原理:无缝滚动的原理,就是利用两个内容相同的容器,来达到欺骗人的视觉的效果。然后通过整个大容器滚动条的左右或者上下的移动来实现滚动。下面附上一张手绘的图,来简要阐述下原理。首先,我们的目的是实现框1中的内容水平向左滚动(向右滚动,上下滚动的原理其实大致是一样的,只要知道其中一种,其他都不是问题。)。那么我们在页面加载的时候就用js动态将框2中的内容(html内容)赋值成和框1的内容一样。然后随着滚动条的渐渐地往右移动,来实现向左的效果。说了这么多。等会就附上代码(配有注释)。
jquery实现marquee效果(文字或者图片的水平垂直滚动) 
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> 
<title>juqery实现marquee的效果</title> 
<script src="jquery-1.4.2.js" type="text/javascript"></script> 
<style type="text/css"> 
#container /*这个是最外面的容器,最关键的一点是将overflow:hidden隐藏起来。*/ 
{ 
width:600px; 
height:80px; 
overflow:hidden; 
} 
#longwidth 
{ 
height:80px; 
width:1000%; /*要足够的大,需要能够把div1和div2的内容都能够装下,不然因为float:left装不下,就会到第二行*/ 
} 
.kuang 
{ 
float:left; 
height:80px; 
} 
</style> 
<script type="text/javascript"> 
$(function () { 
$("#div2").html($("#div1").html()); //将div2的html设置成div1的html 
var mar = function () { 
if ($("#container").scrollLeft() > $("#div1").width()) { //当滚动条隐藏的长度大于div1的宽度 
$("#container").scrollLeft(0); 
} 
else { 
$("#container").scrollLeft($("#container").scrollLeft() + 5); //每次滚动条往右移动1px; 
} 
}; 
var vid = setInterval(mar, 1); 
$("#container").mouseenter(function () { 
clearInterval(vid); 
}).mouseleave(function () { 
vid = setInterval(mar,1); 
}); 
}); 
</script> 
</head> 
<body> 
<!--容器可以使用div,内容中使用ul li,那么框1就是div1,框2就是div2,需要两个div在一行,就需要设置div的float:left属性--> 
<!--当然如果你对于css不是很了解,也可以使用table来实现,用td1和td2来实现。本人对table有种不喜,所以就通过div来做了--> 
<div id="container"> 
<div id="longwidth"> 
<div id="div1" class="kuang"> 
<img src="04.jpg" width="120px" height="80px" /> 
<img src="04.jpg" width="120px" height="80px" /> 
<img src="04.jpg" width="120px" height="80px" /> 
<img src="04.jpg" width="120px" height="80px" /> 
<img src="04.jpg" width="120px" height="80px" /> 
<img src="04.jpg" width="120px" height="80px" /> 
<img src="04.jpg" width="120px" height="80px" /> 
</div> 
<div id="div2" class="kuang"></div> 
</div> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
Code: write(s,d) 输出连续字符串
Aug 19 Javascript
JSON.parse()和JSON.stringify()使用介绍
Jun 20 Javascript
jQuery随机密码生成的方法
Mar 09 Javascript
jQuery模拟新浪微博首页滚动效果的方法
Mar 11 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
vue 指定组件缓存实例详解
Apr 01 Javascript
JavaScript调用模式与this关键字绑定的关系
Apr 21 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 Javascript
jquery乱码与contentType属性设置问题解决方案
Jan 07 #Javascript
jQuery插件开发基础简单介绍
Jan 07 #Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 #Javascript
jquery入门—编写一个导航条(可伸缩)
Jan 07 #Javascript
jquery入门—访问DOM对象方法
Jan 07 #Javascript
jQuery.clean使用方法及思路分析
Jan 07 #Javascript
js获取height和width的方法说明
Jan 06 #Javascript
You might like
Apache中php.ini的设置方法
2013/02/28 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
JQuery live函数
2010/12/24 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
Javascript中的数组常用方法解析
2016/06/17 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
python logging日志模块的详解
2017/10/29 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python如何使用函数做字典的值
2019/11/30 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
应届生.NET方向面试题
2015/05/23 面试题
《小小竹排画中游》教学反思
2014/02/26 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
女性健康讲座主持词
2015/07/04 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript