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 相关文章推荐
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
浅谈JavaScript超时调用和间歇调用
Aug 30 Javascript
javascript下拉列表中显示树形菜单的实现方法
Nov 17 Javascript
vue.js加载新的内容(实例代码)
Jun 01 Javascript
使用Electron构建React+Webpack桌面应用的方法
Dec 15 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
js实现旋转木马轮播图效果
Jan 10 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
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
使用vs code编辑调试php配置的方法
2019/01/29 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
wxPython学习之主框架实例
2014/09/28 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python实现简单遗传算法
2018/03/19 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
小学毕业感言50字
2014/02/16 职场文书
土建工程师岗位职责
2014/06/10 职场文书
学校食品安全实施方案
2014/06/14 职场文书
感恩主题班会教案
2015/08/12 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
Python pandas之求和运算和非空值个数统计
2021/08/07 Python
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android