原生JS实现图片轮播效果


Posted in Javascript onDecember 26, 2016

之前页面需要图片轮播的时候,都是直接在网上找一个插件,然后自己动手改一下,把图片的路径改成自己图片的路径,然后万事大吉。后来觉得这样并不能提高自己的前端水平,于是乎,自己动手写了一个图片轮播的小demo,用的是jquery,小弟前端小白一个,各位前端大神看了之后,望批评指正。

我的思路是这样的,定义两个变量,一个用来保存当前页码$index,一个用来保存上一页的页码$exdex,首先判断$index和$exdex的大小,如果$index大于$exdex,说明是朝左翻页,反之,就是朝右翻页。如果是朝左翻页,就把当前页朝左偏移100%的宽度,让下一页同样朝左偏移100%宽度。以下是代码部分:

<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    .banner{
      width:300px;
      height:250px;
      position: relative;
      z-index: 100;
      background: skyblue;
      margin:100px auto;
      overflow:hidden ;
    }

    .banner .first{
      left:0;
    }
    .banner a{
      width: 100%;
      height: 100%;
      position: absolute;
      display:block;
      top:0;
      left:100%;
    }
    .banner a img{
      width: 100%;
      height: 100%;
    }
    .banner .pre{
      position: absolute;
      left:0;
      top:120px;
      background: gray;
      width:30px;
      height:30px;
      border-radius: 30px;
      line-height: 30px;
      text-align: center;
      opacity: 0.4;
      z-index: 1000;
      cursor: pointer;
    }
    .banner .next{
      position: absolute;
      right:0;
      top:120px;
      background: gray;
      width:30px;
      height:30px;
      border-radius: 30px;
      line-height: 30px;
      text-align: center;
      opacity: 0.4;
      z-index: 1000;
      cursor: pointer;
    }
    .choose{
      position: absolute;
      width:100px;
      height:20px;
      bottom:10px;
      left:90px;
      z-index: 1000;
    }
    .choose span{
      display: block;
      float: left;
      margin-left:15px;
      width:10px;
      height:10px;
      border-radius: 10px;
      background: blue;
      cursor: pointer;
    }
    .choose .red{
      background: red;
    }
  </style>
</head>
<body>
  <div class="banner">
    <span class="pre"><=</span>
    <span class="next">=></span>
    <a href="#" class="first"><img src="./1.jpg" alt=""/></a>
    <a href="#"><img src="./2.jpg" alt=""/></a>
    <a href="#"><img src="./3.jpg" alt=""/></a>
    <a href="#"><img src="./4.jpg" alt=""/></a>
    <div class="choose">
      <span class="red"></span>
      <span></span>
      <span></span>
      <span></span>
    </div>
  </div>
</body>
<script src="./jquery.min.js"></script>
<script>
  var $index = 0;
  var $exdex = 0;
  $('.choose span').mouseover(function(){
    $index = $(this).index();
    $('.choose span').eq($index).addClass("red").siblings().removeClass("red");
    if($index > $exdex) {
      next();
    } else {
      pre();
    }
    return $exdex = $index;
  });

  function next() {
    $('.banner a').eq($index).stop(true,true).css('left',"100%").animate({"left":0});
    $('.banner a').eq($exdex).stop(true,true).css('left',"0").animate({"left":"-100%"});
  }

  function pre() {
    $('.banner a').eq($index).stop(true,true).css('left',"-100%").animate({"left":"0"});
    $('.banner a').eq($exdex).stop(true,true).css('left',"0").animate({"left":"100%"});
  }
</script>
</html>

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

Javascript 相关文章推荐
js 动态文字滚动的例子
Jan 17 Javascript
javascript unicode与GBK2312(中文)编码转换方法
Nov 14 Javascript
javascript 处理null及null值示例
Jun 09 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 Javascript
bootstrap datetimepicker日期插件使用方法
Jan 13 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
Mar 24 jQuery
Node.js  REPL (交互式解释器)实例详解
Aug 06 Javascript
vue项目实战总结篇
Feb 11 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
vue 实现强制类型转换 数字类型转为字符串
Nov 07 Javascript
输入框点击时边框变色效果的实现方法
Dec 26 #Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 #Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 #Javascript
Bootstrap 轮播(Carousel)插件
Dec 26 #Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 #Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
Dec 26 #Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 #Javascript
You might like
解析MySql与Java的时间类型
2013/06/22 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
ES6 十大特性简介
2020/12/09 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
Linux下Python获取IP地址的代码
2014/11/30 Python
python实现ID3决策树算法
2017/12/20 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
python破解同事的压缩包密码
2020/10/14 Python
Python爬取某平台短视频的方法
2021/02/08 Python
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
大学生个人简历中的自我评价
2013/12/27 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
法律意见书范本
2015/06/04 职场文书
关于分班的感言
2015/08/04 职场文书
2019公司管理制度
2019/04/19 职场文书