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 文件夹选择框的两种解决方案
Jul 01 Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
JS实用的动画弹出层效果实例
May 05 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
AngularJS基础 ng-init 指令简单示例
Aug 02 Javascript
JS控件bootstrap suggest plugin使用方法详解
Mar 25 Javascript
集合Bootstrap自定义confirm提示效果
Sep 19 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
js实现图片粘贴到网页
Dec 06 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
Sep 17 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 网上商城促销设计实例代码
2012/02/17 PHP
PHP小教程之实现链表
2014/06/09 PHP
19个Android常用工具类汇总
2014/12/30 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
python3中编码获取网页的实例方法
2020/11/16 Python
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
法雷奥SQA(electric)面试问题
2016/01/23 面试题
外贸英语毕业生自荐信
2013/11/14 职场文书
先进员工事迹材料
2014/12/20 职场文书
老乡聚会通知
2015/04/23 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL