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 相关文章推荐
jQuery 源码分析笔记(7) Queue
Jun 19 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
May 13 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
Jan 27 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
Bootstrap基本组件学习笔记之导航(10)
Dec 07 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
获取url中用&amp;隔开的参数实例(分享)
May 28 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
Vue 2.0双向绑定原理的实现方法
Oct 23 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 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
PHP 模板高级篇总结
2006/12/21 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
sina的lightbox效果。
2007/01/09 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
跟老齐学Python之开始真正编程
2014/09/12 Python
Python执行时间的计算方法小结
2017/03/17 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Python装饰器原理与用法分析
2018/04/30 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
动物学专业毕业生求职信
2013/10/11 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
询价采购方案
2014/06/09 职场文书
个人委托书范本
2014/09/13 职场文书
学习十八大演讲稿
2014/09/15 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
礼貌问候语大全
2015/11/10 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题