基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)


Posted in Javascript onMarch 28, 2011

从需求上来说,这个功能需要实时调用最新的微博数据,单就前端开发来说,其需求可以拆分如下:
1 内容持续滚动;
2 新微博将下面的微博先推下去,然后淡入进来;
3 鼠标经过内容暂停滚动;
4 容器底部渐变消失在背景色下。
上述4个需求之中,需求1-3为js技术实现,需求4为css技术实现,下面逐个需求来讲。
需求1和需求2:内容持续滚动的需求有些类似前一篇文章《小模块:公告滚动并暂停》中介绍的功能,在那篇文章中,此功能使用css的position定位来控制整个ul列表的移动动画。结合需求2,我们可以写得更简单一些,让最后的li元素定时插入第一个li元素的上方,然后采用animate方法来改变li的高度和透明效果。而不停顿的滚动依然要用到setTimeout方法。在没有新数据加载的情况下,要实现有限内容循环滚动。
需求3:鼠标经过暂停的需求可以当鼠标hover经过的时候在某元素上加上某属性的值,这里采用name属性——判断此值是否存在,如果存在则不执行代码。
需求4:可以通过在内容上覆盖渐变的png24图片来实现,IE6对png24支持不好,如果需要顾及性能的话,在此容器上加display:none的IE6hack。接下来的问题是解决图片覆盖到文字之上,文字如何可以点击或选中的问题,这时候需要一个特殊的css属性“pointer-events”,此属性的值设为none之后,鼠标就可以透过绝对定位在文字上的图片选中下面的文字。
综合代码如下:
HTML

<div class="messagewrap"> 
<ul> 
<li><!--多个li,请自行复制或者设置重复区域--></li> 
</ul> 
<div class="bottomcover"> 
<!--为了符合w3c要求不能有空标签的要求,此处可选择写一个 --> 
</div> 
</div>

CSS
.messagewrap{overflow:hidden;position:relative;width:500px;height:300px} 
li{height:50px;} 
.bottomcover{width:500px;height:45px;position:absolute;bottom:0;left:0; 
pointer-events:none;background:url(halftransp.png) left bottom no-repeat; 
/*某从背景色向上渐变透明图片*/ _display:none;/*针对IE6体验降级*/}

JS
<script> 
$(function(){ 
msgmove(); 
$("ul").hover(function(){ 
$(this).attr("name","hovered"); //鼠标经过设置ul的name值为"hovered" 
},function(){ 
$(this).removeAttr("name"); 
}); 
}); 
function msgmove(){ 
var isIE=!!window.ActiveXObject; 
var isIE6=isIE&&!window.XMLHttpRequest; 
if($("ul").attr("name") != "hovered"){ 
//判断ul的name属性是否为"hovered",决定下面代码块是否运行,以实现鼠标经过暂停滚动。 
var height = $("li:last").height(); 
if(isIE6){ 
//判断IE6,jQuery的animate动画和opacity透明在一起使用在IE6中会出现中文重影现象, 
//所以在ie6中实行透明的禁用。 
$("li:last").css({"height":0}); 
}else{ 
$("li:last").css({"opacity":0,"height":0}); 
//列表最后的li透明和高度设置为0 
} 
$("li:first").before($("li:last")); 
//把列表最后的li提升到顶部,实现有限列表项无限循环滚动显示 
$("li:first").animate({"height":height},300); 
//列表顶部的li高度逐渐变高以把下面的li推下去 
if(!isIE6){ 
$("li:first").animate({"opacity":"1"},300); 
//在非IE6浏览器中设置透明淡入效果 
} 
} 
setTimeout("msgmove()",5000); 
//设置5秒滚动一次 
} 
</script>
Javascript 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
5分钟理解JavaScript中this用法分享
Nov 09 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
Sep 11 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
Jul 25 Javascript
一个手写的vue放大镜效果
Aug 09 Javascript
Vue 刷新当前路由的实现代码
Sep 26 Javascript
微信小程序实现滚动Tab选项卡
Nov 16 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
jquery向.ashx文件post中文乱码问题的解决方法
Mar 28 #Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 #Javascript
jQuery中调用WebService方法小结
Mar 28 #Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 #Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 #Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
Sep 12 #Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 #Javascript
You might like
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
XML的代替者----JSON
2007/07/21 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
python怎么调用自己的函数
2020/07/01 Python
python 实现aes256加密
2020/11/27 Python
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
中学生学雷锋活动心得体会
2014/03/10 职场文书
小学端午节活动方案
2014/03/13 职场文书
环保公益策划方案
2014/08/15 职场文书
水电维修专业推荐信
2014/09/06 职场文书
台风停课通知
2015/04/24 职场文书
杨善洲观后感
2015/06/04 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
python文件目录操作之os模块
2021/05/08 Python