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 相关文章推荐
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
struts2 jquery 打造无限层次的树
Oct 23 Javascript
JavaScript传递变量: 值传递?引用传递?
Feb 22 Javascript
zShowBox 图片放大展示jquery版 兼容性
Sep 24 Javascript
Function.prototype.bind用法示例
Sep 16 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
JS作为值的函数用法示例
Jun 20 Javascript
jQuery插件fullPage.js实现全屏滚动效果
Dec 02 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
Vue路由history模式解决404问题的几种方法
Sep 29 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 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 异常处理实现代码
2009/03/10 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
CI框架常用函数封装实例
2016/11/21 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
Python的Django框架安装全攻略
2015/07/15 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python reverse反转部分数组的实例
2018/12/13 Python
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
医学生自荐信
2013/12/03 职场文书
班组长安全职责
2014/01/05 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
租车协议书
2015/01/27 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL