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入门教程(3) js面向对象
Jan 31 Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
js 3种归并操作的实例代码
Oct 30 Javascript
让table变成exls的示例代码
Mar 24 Javascript
JS实现在页面随时自定义背景颜色的方法
Feb 27 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 Javascript
es6系列教程_ Map详解以及常用api介绍
Sep 25 Javascript
js中url对象化管理分析
Dec 29 Javascript
JS跨域请求的问题解析
Dec 03 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
用Golang运行JavaScript的实现示例
Nov 25 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警告错误信息的解决方法
2013/06/03 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
Python实现Linux监控的方法
2019/05/16 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python有参函数使用代码实例
2020/01/06 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
销售副总经理岗位职责
2013/12/11 职场文书
毕业生的自我评价范文
2013/12/31 职场文书
写给老师的表扬信
2014/01/21 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
新员工考核评语
2014/12/31 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python