JavaScript实现轮播图特效


Posted in Javascript onApril 10, 2020

本文实例为大家分享了JavaScript实现轮播图特效的具体代码,供大家参考,具体内容如下

功能:

1、图片会自动播放,鼠标放上面会暂停播放

2、点击左右出现的箭头可以切换到上一张/下一张图片

3、点击序号会跳转到对应图片 

<!DOCTYPE html>
<html lang="en">
 
<head>
 <meta charset="UTF-8">
 <title>当当网首页轮播图-By小黑</title>
 <style>
  *{
  padding: 0;
  margin: 0;
  list-style: none;
  }
  #wrap{
  margin: 50px auto;
  width: 800px;
  height: 330px;
  overflow: hidden;
  position: relative;
  }
  #list{
  position: absolute;
  bottom: 15px;
  right: 250px;
  }
  #list li{
  float: left;
  margin-right: 15px;
  cursor: pointer;
  width: 23px;
  height: 23px;
  line-height: 23px;
  text-align: center;
  background: #ADA79D;
  color: #FFF ;
  border-radius: 50%;
  }
  #list .on{
  background: red;
  }
  #bar_left,#bar_right{
  width: 33px;
  height: 80px;
  line-height: 80px;
  position: absolute;
  top: 130px;
  background: rgba(0, 0, 0, 0.3);
  }
  #bar_left{
  left: -33px;
  }
  #bar_right{
  right: -35px;
  }
  /*下面利用伪元素实现左侧和右侧的小箭头*/
  #bar_left:after,#bar_left:before,#bar_right:before,#bar_right:after{
  content: "";
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  position: absolute;
  top: 25px;
  }
  /*左边箭头*/
  #bar_left:before{
  border-left: 15px solid transparent;
  border-right: 15px solid #FFF;
  right: 10px;
  }
  #bar_left:after{
  border-left: 15px solid transparent;
  border-right: 15px solid rgba(0, 0, 0, 0.3);
  right: 7px;
  }
  /*右边箭头*/
  #bar_right:before{
  border-right: 15px solid transparent;
  border-left: 15px solid #FFF;
  left: 10px;
  }
  #bar_right:after{
  border-right: 15px solid transparent;
  border-left: 15px solid rgba(0, 0, 0, 0.3);
  left: 7px;
  }
  #wrap:hover #bar_left{
  left: 0;
  cursor: pointer;
  transition: left 0.5s;
  }
  #wrap:hover #bar_right{
  /* display: block; */
  right: 5px;
  cursor: pointer;
  transition: right 0.5s;
  }
  .tex{
  margin: 20px auto;
  width: 400px;
  }
  .tex ul li{
  list-style-type:circle;
  color: red;
  font-weight: bold;
  margin-bottom: 5px;
  }
 </style>
</head>
 
<body>
 <div id="wrap">
 <ul id="pic">
  <li><img src="images/dang1.jpg" alt=""></li>
  <li><img src="images/dang2.jpg" alt=""></li>
  <li><img src="images/dang3.jpg" alt=""></li>
  <li><img src="images/dang4.jpg" alt=""></li>
  <li><img src="images/dang5.jpg" alt=""></li>
  <li><img src="images/dang6.jpg" alt=""></li>
  <li><img src="images/dang7.jpg" alt=""></li>
  <li><img src="images/dang8.jpg" alt=""></li>
 </ul>
 <div id="bar_left"></div>
 <div id="bar_right"></div>
 <ol id="list">
  <li class="on">1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
 </ol>
 </div>
 <div class="tex">
 <ul>
  <li>功能如下:</li>
  <li>图片会自动播放,鼠标放上面会暂停播放</li>
  <li>点击左右出现的箭头可以切换到上一张/下一张图片</li>
  <li>点击序号会跳转到对应图片</li>
 </ul>
 </div>
 <script>
 var wrap=document.getElementById('wrap');
 var pics=document.getElementById('pic');
 var lists=document.getElementById('list').getElementsByTagName('li');
 var point_l=document.getElementById('bar_left');
 var point_r=document.getElementById('bar_right');
 var index=0;
 var counter=null;
 function change(){//计时器
  counter=setInterval(function(){
  index++;
  if(index===lists.length){
   index=0;
  }
  img(index);
  },2000)
 }
 change();
 function img(curIndex){//切换图片
  for (var i=0;i<lists.length;i++){
  if(curIndex===i){
   lists[i].className='on';
  }
  else{
   lists[i].className='';
  }
  }
  index=curIndex;
  pics.style.marginTop=-330*curIndex+'px';//图片上移
  wrap.οnmοuseοver=function(){//鼠标放到图片上时图片停止播放
  pics.style.cursor="pointer";
  clearInterval(counter);//清除计时器
  }
  pics.οnmοuseοut=change;
 }
 //鼠标放到指定序号切换到指定图片
 for (var i=0;i<lists.length;i++){
  lists[i].id=i;
  lists[i].οnmοuseοver=function(){
  img(this.id);
  this.className='on';
  }
 }
 //当鼠标放在箭头上时,点击箭头切换到下一张图片
 point_l.οnmοusedοwn=function(){//点击左边箭头
  if(index<=0){
   index=lists.length;
  }
  img(index-1);
 }
 point_r.οnmοusedοwn=function(){//点击右边箭头
  if (index>=lists.length-1){
  index=-1;
  }
  img(index+1);
 }
 </script>
</body>
 
</html>

效果图

JavaScript实现轮播图特效

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Array扩展实现代码
Oct 14 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
Jun 02 Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 Javascript
Vue2.x中的父子组件相互通信的实现方法
May 02 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
vue filters的使用详解
Jun 11 Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
Vue.js实现大转盘抽奖总结及实现思路
Oct 09 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 #Javascript
Vue实现Layui的集成方法步骤
Apr 10 #Javascript
如何基于layui的laytpl实现数据绑定的示例代码
Apr 10 #Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 #Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 #Javascript
JS实现省市县三级下拉联动
Apr 10 #Javascript
JavaScript实现简单的图片切换功能(实例代码)
Apr 10 #Javascript
You might like
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP 各种排序算法实现代码
2009/08/20 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
PHP面向对象概念
2011/11/06 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
table行随鼠标移动变色示例
2014/05/07 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
python简单获取数组元素个数的方法
2015/07/13 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python目录和文件处理总结详解
2019/09/02 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
Python time库基本使用方法分析
2019/12/13 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
如何使用python传入不确定个数参数
2020/02/18 Python
python 8种必备的gui库
2020/08/27 Python
工程预算与管理应届生求职信
2013/10/06 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang
详解MySQL集群搭建
2021/05/26 MySQL
Python 中random 库的详细使用
2021/06/03 Python