基于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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 Javascript
jquery-syntax动态语法着色示例代码
May 14 Javascript
chrome下img加载对height()的影响示例探讨
May 26 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
浅谈Javascript的静态属性和原型属性
May 07 Javascript
asp知识整理笔记3(问答模式)
Sep 27 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
Aug 20 Javascript
Vue实现类似Spring官网图片滑动效果方法
Mar 01 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 Javascript
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下读取文本文件的代码
2008/07/02 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
Python 专题三 字符串的基础知识
2017/03/19 Python
python制作小说爬虫实录
2017/08/14 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
python学生信息管理系统实现代码
2019/12/17 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
计算机维护专业推荐信
2014/02/27 职场文书
愚人节活动策划方案
2014/03/11 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2016教师节感恩话语
2015/12/09 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python