jQuery制作全屏宽度固定高度轮播图(实例讲解)


Posted in jQuery onJuly 08, 2017

前端新手自己写的,练习一下基本功,也是留下的第一次记录

html部分

div class="cm-banner">
  <div class="cm-banner-list">
    <ul id="cm_banner_list">
      <!--图片宽度和高度在css中定为1920x300-->
      <li><img src="cm-banner-01.png" /></li>
      <li><img src="cm-banner-02.png" /></li>
      <li><img src="cm-banner-03.png" /></li>
      <li><img src="cm-banner-04.png" /></li>
    </ul>
    <ul class="cm-banner-num" id="cm_banner_num"></ul>
  </div>
  <div class="cm-banner-in w">
    <img src="cm-arrow-left.png" id="cm_prev" class="cm-banner-arrow" />
    <img src="cm-arrow-right.png" id="cm_next" class="cm-banner-arrow" />
  </div>
</div>

css部分

*{
  margin: 0;
  padding: 0;
}
.cm-banner {
  width: 100%;
  height: 300px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
}

.cm-banner-in {
  width: 1100px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -550px;
}

#cm_banner_list li{
  display: none;
  position: absolute;
  top: 0;
  left: 0;
}

.cm-banner-num {
  width: 100%;
  position: absolute;
  bottom: 0;
  text-align: center;
  z-index: 2; /*如果没有在这里设置层次小圆点的点击效果无法触发*/
}

.cm-banner-num li{
  width: 10px;
  margin: 10px 3px;
  height: 10px;
  background-color: #fff;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  display: inline-block;
  opacity: 0.7;
}

.cm-banner-num .active {
  background-color: #3982de;
}

.cm-banner-arrow {
  position: absolute;
  top: 50%;
  margin-top: -22px;
  opacity: 0.5;
  display: none;
}

#cm_prev {
  left: 0;
}

#cm_next {
  right: 0;
}

js部分

$(function(){
  //鼠标移入显示箭头按钮
  $('.cm-banner').hover(function(){
    $('.cm-banner-arrow').show();
    clearInterval(cm_timer);
  },function(){
    $('.cm-banner-arrow').hide();
    cm_timer = setInterval(function(){
      i++;
      if(i > cm_length - 1){
        i = 0;
      }
      $('#cm_banner_list li').eq(i).fadeIn(800).siblings().fadeOut(800);
      cm_toggle(i);
    },2500);
  });

  //鼠标移入箭头按钮高亮
  $('.cm-banner-arrow').hover(function(){
    $(this).css('opacity','1');
  },function(){
    $(this).css('opacity','0.5');
  });

  //初始化必要变量
  var i = 0;
  var cm_length = $('#cm_banner_list li').length;
  var cm_toggle = function(point){
    $('#cm_banner_num li').eq(point).addClass('active').siblings().removeClass('active');
  };

  //动态添加小圆点
  for(j = 0;j < cm_length;j++){
    $('#cm_banner_num').append('<li></li>');
  }

  //给第一个小圆点添加样式
  $('#cm_banner_num li').first().addClass('active');

  //给第一张图片添加样式
  $('#cm_banner_list li').first().css('display','block');

  //鼠标点击左箭头切换
  $('#cm_prev').click(function(){
    i--;
    if(i < 0){
      i = cm_length - 1;
    }
    $('#cm_banner_list li').eq(i).fadeIn(800).siblings().fadeOut(800);
    cm_toggle(i);
  });

  //鼠标点击右箭头切换
  $('#cm_next').click(function(){
    i++;
    if(i > cm_length - 1){
      i = 0;
    }
    $('#cm_banner_list li').eq(i).fadeIn(800).siblings().fadeOut(800);
    cm_toggle(i);
  });

  //鼠标点击圆点切换
  $('#cm_banner_num li').click(function(){
    var cm_index = $(this).index();
    $('#cm_banner_list li').eq(cm_index).fadeIn(800).siblings().fadeOut(800);
    i = cm_index;
    cm_toggle(cm_index);
  });

  //自动播放
  cm_timer = setInterval(function(){
    i++;
    if(i > cm_length - 1){
      i = 0;
    }
    $('#cm_banner_list li').eq(i).fadeIn(800).siblings().fadeOut(800);
    cm_toggle(i);
  },2500);
});

以上这篇jQuery制作全屏宽度固定高度轮播图(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
最常用的jQuery表单验证(简单)
May 23 jQuery
jquery.masonry瀑布流效果
May 25 jQuery
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
Nov 13 jQuery
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
jQuery使用each遍历循环的方法
Sep 19 jQuery
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
jQuery HTML css()方法与css类实例详解
May 20 jQuery
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 #jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 #jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 #jQuery
jQuery 实现图片的依次加载图片功能
Jul 06 #jQuery
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 #jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 #jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 #jQuery
You might like
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
JS中的BOM应用
2018/02/02 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
Python 将pdf转成图片的方法
2018/04/23 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
python语音识别实践之百度语音API
2018/08/30 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
python队列Queue的详解
2019/05/10 Python
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
信息合作协议书
2014/10/09 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
公司表扬信格式
2015/05/04 职场文书
工资证明范本
2015/06/12 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
七个Python必备的GUI库
2021/04/27 Python
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
Python创建SQL数据库流程逐步讲解
2022/09/23 Python