原生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 相关文章推荐
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
原生Javascript封装的一个AJAX函数分享
Oct 11 Javascript
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
node.js中格式化数字增加千位符的几种方法
Jul 03 Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
js通过指定下标或指定元素进行删除数组的实例
Jan 12 Javascript
vue 项目接口管理的实现
Jan 17 Javascript
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
Vue实现Layui的集成方法步骤
Apr 10 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
让PHP支持页面回退的两种方法
2008/01/10 PHP
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
php 修改密码实现代码
2017/05/24 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
python导入模块交叉引用的方法
2019/01/19 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
详解Anaconda 的安装教程
2020/09/23 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
几个判断型的面试题
2012/07/03 面试题
运动会搞笑广播稿
2014/10/14 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
婚礼领导致辞大全
2015/07/28 职场文书