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 相关文章推荐
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
JavaScript实现瀑布流图片效果
Jun 30 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
Angular6使用forRoot() 注册单一实例服务问题
Aug 27 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
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
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
js left,right,mid函数
2008/06/10 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
python是否适合网页编程详解
2019/10/04 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
电信专业应届生自荐信
2013/09/28 职场文书
个人简历自我鉴定
2013/10/11 职场文书
预备党员党校学习自我评价分享
2013/11/12 职场文书
职专应届生求职信
2013/11/16 职场文书
九年级语文教学反思
2016/03/03 职场文书
Hive日期格式转换方法总结
2022/06/25 数据库