简单的渐变轮播插件
更新时间:2017年1月16日 10:00 点击:1903
话不多说,请看代码:
<html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> <style> .CreabineCarousel{ width: 100%; height: 700px; background-size: cover; position: relative; } .CreabineCarousel .CreabineCarousel-dotContainer{ position:absolute; bottom: 5%; margin:0 auto; z-index: 100; list-style-type: none; width: 100%; text-align: center; left: 0; padding: 0; } .CreabineCarousel .CreabineCarousel-dotContainer .dot{ width: 30px; height: 4px; border-radius:3px; background-color:#fff; display: inline-block; margin:0 5px; opacity: 0.7; } .CreabineCarousel .CreabineCarousel-dotContainer .dot:hover{ opacity: 1; } .CreabineCarousel .CreabineCarousel-item{ position:absolute; width: 100%; height: 100%; transition:all 0.8s; } .CreabineCarousel .CreabineCarousel-item h1{ max-width: 600px; text-align: center; font-size: 5rem; line-height: 1.3; color: #fff; padding: 300px 50px 0 50px; margin:0 auto; } .CreabineCarousel .CreabineCarousel-item p{ max-width: 600px; text-align: center; font-size: 1.4rem; line-height: 1.4; color: #fff; padding-top: 10px 50px 0 50px; margin:0 auto; } </style> </head> <body> <div id="carouselRoot"></div> <script> function CreabineCarousel(options){ var imgPathList = options.images; var textList = options.contant; if (!options.root) { throw "require root to this CreabineCarousel"; } if (!imgPathList) { throw "must provide parameter images"; } if (imgPathList.length != textList.length) { throw "images are not equal to contants"; } var changeCount = 0; var timer; var _autoScroll = options.autoScroll || false; var _scrollDuration = options.scrollDuration || 4000; var _height = options.height || 700; function initElements() { var _root = document.getElementById(options.root); if (!_root) { throw "no exist called this name element,please create element called this name"; } _root.className = "CreabineCarousel"; _root.style.height = _height + "px"; var _dotContainer = document.createElement("ul"); _dotContainer.className = 'CreabineCarousel-dotContainer'; _root.appendChild(_dotContainer); for (var i = 0; i < imgPathList.length; i++) { var _dot = document.createElement("li"); _dot.className = "dot"; _dot.id = "item" + (i+1) + "dot"; _dotContainer.appendChild(_dot); var _item = document.createElement("div"); _item.className = "CreabineCarousel-item" _item.id = "item" + (i+1); _item.style.backgroundImage = "url(" + imgPathList[i] + ")"; _item.style.backgroundSize = "cover"; _item.style.backgroundRepeat = "no-repeat"; if(i == 0){ _item.style.opacity = '0'; _item.style.zIndex = '1'; } _root.appendChild(_item); var _h = document.createElement("h1"); _h.innerText = textList[i].title; _item.appendChild(_h); var _p = document.createElement("p"); _p.innerText = textList[i].text; _item.appendChild(_p); } _dotContainer.addEventListener("mouseover",function(e){ if( e.target && e.target.className == "dot" ){ clearInterval(timer); var id = e.target.id.substring(0,5); CarouselHover(id); } }); _dotContainer.addEventListener("mouseout",function(e){ if( e.target && e.target.className == "dot" ){ var id = e.target.id; CarouselOut(id); } }); if(_autoScroll){ timer = setInterval(function(){Carousel()},_scrollDuration); } } function Carousel(){ var all = document.getElementsByClassName('CreabineCarousel-item'); for (var i = all.length - 1; i >= 0; i--) { all[i].style.opacity = '0'; all[i].style.zIndex = '1'; } var i=((changeCount++%5)+1); var id = "item" + i; document.getElementById(id).style.opacity = '1'; document.getElementById(id).style.zIndex = '10'; } function CarouselHover(id){ clearInterval(timer); var all = document.getElementsByClassName('CreabineCarousel-item'); for (var i = all.length - 1; i >= 0; i--) { all[i].style.opacity = '0'; all[i].style.zIndex = '1'; } document.getElementById(id).style.opacity = '1'; document.getElementById(id).style.zIndex = '10'; } function CarouselOut(id){ var num = id.substring(4,5); num = parseInt(num)-1; changeCount = num; timer = window.setInterval(function(){Carousel()},_scrollDuration); } initElements(); new CreabineCarousel({ root:'carouselRoot', autoScroll:true, scrollDuration:3000, height:700, images:['https://cdn.worktile.com/images/index/index_all_bg_1.jpg?v=4.5.18','https://cdn.worktile.com/images/index/index_all_bg_2.jpg?v=4.5.18','https://cdn.worktile.com/images/index/index_all_bg_3.jpg?v=4.5.18','https://cdn.worktile.com/images/index/index_all_bg_4.jpg?v=4.5.18','https://cdn.worktile.com/images/index/index_all_bg_5.jpg?v=4.5.18'], contant:[ { title:"title-1", text:"text-111" }, { title:"title-2", text:"text-222" }, { title:"title-3", text:"text-333" }, { title:"title-4", text:"text-444" }, { title:"title-5", text:"text-555" }, ] }); </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
相关文章
Illustrator渐变网格工具绘制可爱的卡通小猪教程分享
今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说渐变网格工具绘制可爱的卡通小猪的教程,各位想知道具体制作方法的使用者们,那么下面就快来跟着小编一...2016-09-14- 这篇文章主要介绍了JS实现响应鼠标点击动画渐变弹出层效果代码,具有非常自然流畅的动画过度效果,涉及JavaScript针对鼠标事件的响应及页面元素样式的动态操作相关技巧,需要的朋友可以参考下...2016-03-28
- 这篇文章主要为大家分享了Bootstrap教程JS插件滚动监听学习笔记,内容很详细,感兴趣的小伙伴们可以参考一下...2016-05-20
- 这篇文章主要介绍了jquery自定义插件开发之window的实现过程的相关资料,需要的朋友可以参考下...2016-05-09
- Query架构的开发人员能够创建一个插件代码来扩展其功能,从而能够产生一些最好的插件,让你的网站或任何给定的项目达到一个全新的水平。 ...2016-04-27
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
这篇文章主要介绍了JS基于ocanvas插件实现的简单画板效果,结合实例形式分析了ocanvas插件实现画板的相关技巧,并附代码demo源码供读者下载参考,需要的朋友可以参考下...2016-04-06- 这篇文章主要介绍了jquery插件autocomplete用法,结合实例形式分析了jQuery插件autocomplete与后台交互实现搜索的自动完成功能实现技巧,需要的朋友可以参考下...2016-07-06
基于bootstrap插件实现autocomplete自动完成表单
这篇文章主要介绍了基于bootstrap插件实现autocomplete自动完成表单的相关资料,感兴趣的朋友可以参考一下...2016-05-09- PS或者AE中我们在使用渐变工具时,会发现渐变的过渡不均匀,出现明显的波纹,也就是色带(色阶),怎么能很好地优化这个问题呢?(之所以说优化,因为此问题不可能完全解决,只能说能让色...2017-01-22
- 这篇文章主要为大家分享了node.js插件nodeclipse安装图文教程,如何安装node.js支持插件,下面小编为大家分享具体步骤...2016-05-09
在Web项目中引入Jquery插件报错的完美解决方案(图解)
这篇文章主要介绍了在Web项目中引入Jquery插件报错的完美解决方案的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-10-03- 这篇文章主要介绍了JS+CSS实现的漂亮渐变背景特效代码,包含6个渐变效果,涉及JavaScript针对页面元素属性动态操作的相关技巧,需要的朋友可以参考下...2016-03-28
- Bootstrap每天必学之模态框(Modal)插件,模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等,感兴趣的小伙伴们可以参考一下...2016-04-27
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
这篇文章主要介绍了jQuery插件HighCharts绘制2D带有Legend的饼图效果,结合实例形式分析了jQuery使用HighCharts绘制带明细显示的饼状图效果实现技巧,并附带了demo源码供读者下载参考,需要的朋友可以参考下...2017-03-13- 这篇文章主要为大家详细介绍了原生js编写的autoComplete插件,感兴趣的小伙伴们可以参考一下...2016-04-16
- 这篇文章主要帮助大家拥有一个属于自己的javascript表单验证插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-03-28
- 这篇文章主要为大家详细介绍了原生js实现网易轮播图效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-20
- Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。本文给大家介绍Node.js插件安装的教程,非常实用,特此分享给大家,需要的朋友一起学习吧...2016-05-09
- 滚动监听插件是用来根据滚动条所处在的位置自动更新导航项目, 显示导航项目高亮显示。这篇文章主要介绍了Bootstrap滚动监听(Scrollspy)插件的相关资料,需要的朋友可以参考下...2016-04-27
- 这篇文章主要介绍了jquery插件Jplayer使用方法简析,具有实用价值,感兴趣的小伙伴们可以参考一下...2016-04-24