原生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中巧用cssText属性批量操作样式
Mar 13 Javascript
Js 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
七个很有意思的PHP函数
May 12 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
jQuery实现淡入淡出的模态框
Feb 09 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
Vue初始化中的选项合并之initInternalComponent详解
Jun 11 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
Feb 14 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扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
php生成扇形比例图实例
2013/11/06 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
python将回车作为输入内容的实例
2018/06/23 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
幼儿园运动会加油词
2014/02/14 职场文书
大学活动总结格式
2014/04/29 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
2015年节能减排工作总结
2015/05/14 职场文书