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 相关文章推荐
滚动经典最新话题[prototype框架]下编写
Oct 03 Javascript
jquery 打开窗口返回值实现代码
Mar 04 Javascript
浅谈javascript的数据类型检测
Jul 10 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 Javascript
jQuery性能优化28条建议你值得借鉴
Feb 16 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
js中数组的常用方法小结
Dec 30 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
微信小程序使用wxParse解析html的方法教程
Jul 06 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
ZK中使用JS读取客户端txt文件内容问题
Nov 07 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面向对象程序设计之类常量用法实例
2014/08/20 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
原生JavaScript实现随机点名表
2021/01/14 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
详解python进行mp3格式判断
2016/12/23 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python pandas修改列属性的方法详解
2018/06/09 Python
基于python实现百度翻译功能
2019/05/09 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
农村优秀教师事迹材料
2014/08/27 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript