简单的渐变轮播插件


Posted in Javascript onJanuary 12, 2017

话不多说,请看代码:

<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>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
关于递归运算的顺序测试代码
Nov 30 Javascript
如何将一个String和多个String值进行比较思路分析
Apr 22 Javascript
js给onclick赋值传参数的两种方法
Nov 25 Javascript
jQuery中replaceAll()方法用法实例
Jan 16 Javascript
详解JavaScript中的异常处理方法
Jun 16 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
js禁止表单重复提交
Aug 29 Javascript
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 Javascript
JavaScript实现模态对话框实例
Jan 13 Javascript
如何用threejs实现实时多边形折射
May 07 Javascript
那些精彩的JavaScript代码片段
Jan 12 #Javascript
JavaScript实现星级评分
Jan 12 #Javascript
angular2倒计时组件使用详解
Jan 12 #Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 #Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 #Javascript
js中常用的Math方法总结
Jan 12 #Javascript
Vue数据驱动模拟实现4
Jan 12 #Javascript
You might like
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
php header函数的常用http头设置
2015/06/25 PHP
twig模板常用语句实例小结
2016/02/04 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
JS的replace方法介绍
2012/10/20 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
详解webpack模块化管理和打包工具
2018/04/21 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
js实现简单进度条效果
2020/03/25 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
Python中用于计算对数的log()方法
2015/05/15 Python
Python Matplotlib库入门指南
2015/05/18 Python
python技能之数据导出excel的实例代码
2017/08/11 Python
python openpyxl使用方法详解
2019/07/18 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
浅谈Python中的字符串
2020/06/10 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
在校实习生求职信
2014/06/18 职场文书
活动总结报告怎么写
2014/07/03 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python