JS实现横向跑马灯效果代码
首先我们需要一个html代码的框架如下:
<div style='position: absolute; top: 0px; left: 168px; width: 100%; margin-left: auto; margin-right: auto; height: 47px; border: 0px solid red; overflow: hidden;'> <ul style='margin: 0px;left:0; top:0;margin-bottom:0px;width:100%;height:47px;position:absolute;'> </ul> </div>
我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容应该是动态的。于是应该发送ajax来进行内容的获取拼接。
$.ajax({ type:'post', dataType:'json', url:'${contextPath}/indexPage/getSyNoticeInfo', success:function(result){var totalStr = '';if(result.length>0){ for(var i=0 ; i<result.length;i++){ str = '<li style='list-style: none;display:inline-block;float:left;height:47px;padding-right:50px;line-height:47px;'>'+ '<a class='sstzNoticeStyle'>'+result[i].peopleName+'</a>'+ '</li>'; totalStr +=str; }}$('#syNoticeUlNew').empty();$(’#syNoticeUlNew’).html(totalStr);syRunHorseLight(); } });
拼接li时候有个class为sstzNoticeStyle。其样式如下:
.sstzNoticeStyle{ color:white; font-size:16px;text-decoration:none;}.sstzNoticeStyle:hover{ color:white; font-size:16px;text-decoration:none;}
ajax调用syRunHorseLight函数,函数如下:
function syRunHorseLight() { if (syTimer != null) { clearInterval(syTimer); } var oUl = document.getElementById('syNoticeUlNew'); if(oUl != null){ oUl.innerHTML += oUl.innerHTML; oUl.innerHTML += oUl.innerHTML; oUl.innerHTML += oUl.innerHTML; var lis = oUl.getElementsByTagName(’li’); var lisTotalWidth = 0; var resetWidth = 0; for (var i = 0; i < lis.length; i++) {lisTotalWidth += lis[i].offsetWidth; } for (var i = 1; i <= lis.length / 4; i++) {resetWidth += lis[i].offsetWidth; } oUl.style.width = lisTotalWidth + ’px’; var left = 0; syTimer = setInterval(function() {left -= 1;if (left <= -resetWidth) { left = 0;}oUl.style.left = left + ’px’; }, 20) $('#syNoticeUlNew').hover(function() {clearInterval(syTimer); }, function() {clearInterval(syTimer);syTimer = setInterval(function() { left -= 1; if (left <= -resetWidth) { left = 0; } oUl.style.left = left + ’px’;}, 20); }) } }
跑马灯效果就此实现。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. SpringBoot2整合Ehcache组件实现轻量级缓存管理2. Django def clean()函数对表单中的数据进行验证操作3. django中嵌套的try-except实例4. 浅谈vue实现双向事件绑定v-model的原理5. Android WebView通过动态的修改js去拦截post请求参数实例6. Admin - SpringBoot + Maven 多启动环境配置实例详解7. 如何用python写个模板引擎8. SpringBoot 启动方法run()源码解析9. spring boot集成mongodb的增删改查的示例代码10. Django结合使用Scrapy爬取数据入库的方法示例