相思资源网 Design By www.200059.com
自己模仿JQ插件的写法写了一个循环滚动列表插件,支持自定义上、下、左、右四个方向,支持平滑滚动或者间断滚动两种方式,都是通过参数设置。JQ里面有些重复的地方,暂时没想到更好的方法去精简。不过效果还是可以的,如下(效果图上传后都加速了,实际效果比这个要慢很多):
html代码如下:
<!doctype html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <title>循环滚动列表</title> <link href="css/style.css" rel="stylesheet"/> <script src="/UploadFiles/2021-04-02/jquery-1.9.1.min.js">css样式如下:
@charset "utf-8"; /* 简单reset */ body, ul, li { margin: 0; padding: 0; } body { font: 14px/24px Microsoft YaHei; color: #333; } ul { list-style: none; } a { color: #333; outline: none; text-decoration: none; } a:hover { color: #2986dd; } img { border: none; } .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .clear { display: block; clear: both; height: 0; font-size: 0; line-height: 0; content: "."; overflow: hidden; } .wrap { width: 900px; padding-top: 30px; margin: 0 auto; } .boxs { padding: 15px; margin: 0 auto 30px; background-color: #e4fbff; } .box01 { width: 870px; } .box02 { float: left; width: 400px; } .box03 { float: right; width: 400px; } .box04 { width: 720px; } /* 具体样式 ---------- */ /* 通用必需样式 */ /* PS:有些重要样式在js里先写好了,下面id容器、ul和li标签的样式比较重要 */ .autoBox { position: relative; margin: 0 auto; overflow: hidden; } .autoBox ul { position: absolute; list-style: none; z-index: 2; } /* 第一、四个列表 */ /* PS:左右滚动型列表需要css定义高度,li标签可以有margin值 */ #autoScroll01, #autoScroll04 { width: auto; height: 174px; } #autoScroll01 ul li, #autoScroll04 ul li { float: left; width: 128px; height: 168px; padding: 3px; margin: 0 5px; _display: inline; } #autoScroll01 li a, #autoScroll04 li a { display: block; padding: 3px; border: 1px solid #dbdbdb; box-shadow: 0 0 3px rgba(170, 223, 252, 0.5); } #autoScroll01 li a:hover, #autoScroll04 li a:hover { border-color: #71ddff; box-shadow: 0 0 3px rgba(77, 185, 245, .90); } #autoScroll01 li img, #autoScroll04 li img { display: block; width: 120px; height: 160px; } /* 第二、三个列表 */ /* PS:上下滚动型列表需要css定义宽度,li标签尽量不要设置margin值 */ #autoScroll02, #autoScroll03 { width: 100%; height: auto; } #autoScroll02 ul li { height: 30px; line-height: 30px; overflow: hidden; } #autoScroll03 ul li { height: 40px; line-height: 40px; overflow: hidden; } #autoScroll02 li a, #autoScroll03 li a { display: block; width: 100%; height: 24px; line-height: 24px; margin: 3px 0; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } #autoScroll03 li a { margin: 8px 0; }js代码如下:
/** * Name : 循环滚动列表 **/ (function(jQuery){ $.fn.autoScroll = function (o) { o = $.extend({ //设置默认参数 direction: 'left', interval: null, speed: null, distance: null, liWidth: null, liHeight: null, showNum: null },o || {}); return this.each(function(){ //回调开始 var $ts = $(this), $ul = $ts.children("ul"), $li = $ul.children("li"), len = $li.length; if (o.direction == 'up' || o.direction == 'down' ){ //根据类型设置css $ts.css({ "width": "100%", "height": o.showNum * o.liHeight }); $ul.css({ "width": "100%", "height": len * o.liHeight }); $li.css({ "float": "none", "width": "100%", "height": o.liHeight, "margin": 0,"padding": 0 }); }; if (o.direction == 'left' || o.direction == 'right' ){ //其实也可以在css里写好 $ts.css({ "width": o.showNum * o.liWidth }); $ul.css({ "width": len * o.liWidth }); $li.css({ "float": "left" }); }; switch (o.direction){ //分四种情况,进行事件调用 case 'left': sroLeft(); break; case 'right':sroRight(); break; case 'up': sroUp(); break; case 'down': sroDown(); break; }; function sroLeft(){ //向左滚动事件 $ul.css("left", 0); var left; function leftMoving(){ var dis = -o.distance, dif = -o.liWidth * (len - o.showNum); left = parseFloat($ul.css("left")); if (left <= dif){ $ul.css("left",0); left = 0; $ul.delay(o.interval); }; var ltDis = left + dis; if(ltDis <= dif){ ltDis = dif; }; $ul.animate({"left":ltDis+"px"}, o.speed); }; $ul.hover( //鼠标移上、移下的阻止与恢复滚动 function(){ clearInterval(fnLeft); }, function(){ fnLeft = setInterval(function(){leftMoving()}, o.interval); } ); fnLeft = setInterval(function(){leftMoving()}, o.interval); }; function sroRight(){ //向右滚动事件 $ul.css("right", 0); var right; function rightMoving(){ var dis = -o.distance, dif = -o.liWidth * (len - o.showNum); right = parseFloat($ul.css("right")); if (right <= dif){ $ul.css("right",0); right = 0; $ul.delay(o.interval); }; var rtDis = right + dis; if(rtDis <= dif){ rtDis = dif; }; $ul.animate({"right":rtDis+"px"}, o.speed); }; $ul.hover( function(){ clearInterval(fnRight); }, function(){ fnRight = setInterval(function(){rightMoving()}, o.interval); } ); fnRight = setInterval(function(){rightMoving()}, o.interval); }; function sroUp(){ //向上滚动事件 $ul.css("top", 0); var top; function upMoving(){ var dis = -o.distance, dif = -o.liHeight * (len - o.showNum); top = parseFloat($ul.css("top")); if (top <= dif){ $ul.css("top",0); top = 0; $ul.delay(o.interval); }; var tpDis = top + dis; if(tpDis <= dif){ tpDis = dif; }; $ul.animate({"top":tpDis+"px"}, o.speed); }; $ul.hover( function(){ clearInterval(fnUp); }, function(){ fnUp = setInterval(function(){upMoving()}, o.interval); } ); fnUp = setInterval(function(){upMoving()}, o.interval); }; function sroDown(){ //向下滚动事件 $ul.css("bottom",0); var bottom; function downMoving(){ var dis = -o.distance, dif = -o.liHeight * (len - o.showNum); bottom = parseFloat($ul.css("bottom")); if (bottom <= dif){ $ul.css("bottom",0); bottom = 0; $ul.delay(o.interval); }; var bmDis = bottom + dis; if(bmDis <= dif){ bmDis = dif; }; $ul.animate({"bottom":bmDis+"px"}, o.speed); }; $ul.hover( function(){ clearInterval(fnDown); }, function(){ fnDown = setInterval(function(){downMoving()}, o.interval); } ); fnDown = setInterval(function(){downMoving()}, o.interval); }; }); }; })(jQuery);兼容到IE6+,jq库用1.7+的都没问题 。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无多种JQuery循环滚动文字图片效果代码的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。