js实现鼠标切换图片(无定时器)


Posted in Javascript onJanuary 27, 2021

本文实例为大家分享了js实现鼠标切换图片的具体代码,供大家参考,具体内容如下

实现效果,可以利用鼠标移动在对应的小点点上,或者点击左右两侧的箭头切换图片,并在图片的上方显示出图片的页数,下方显示出对应图片的标题。

全部代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>图片切换</title>
  <style>
    .picture {
      position: relative;
      width: 500px;
      height: 333px;
      margin: 0 auto;
      border: 2px solid rgb(231, 127, 217);
      overflow: hidden;
    }

    .radius {
      width: 100%;
      height: 10px;
      position: absolute;
      bottom: 30px;
      text-align: center;
    }

    .pg {     //图片上方页码
      position: absolute;
      margin: 0;
      width: 100%;
      height: 20px;
      background-color: rgba(0, 0, 0, .4);
      text-align: center;
      font-size: 16px;
      font-weight: 600;
      color: #fff;
    }

    .title {
      position: absolute;
      width: 100%;
      bottom: 0px;
      text-align: center;
      font-size: 16px;
      font-weight: 600;
      color: rgb(21, 223, 72);
    }

    span {
      display: inline-block;
      border: 10px solid #fdfdfd;
      border-radius: 50%;
    }

    .active {
      border: 10px solid #656466;
    }

    /* 左右箭头 */
    .arrowhead-left,
    .arrowhead-right {
      position: absolute;
      width: 41px;
      height: 69px;
      font-size: 30px;
      line-height: 70px;
      text-align: center;
      color: #D6D8D4;
      background-color: rgba(0,0,0,.3);
    }

    .arrowhead-left {
      left: 0;
      top: 40%;
    }

    .arrowhead-right {
      right: 0;
      top: 40%;
    }
  </style>
</head>

<body>
  <div class="picture">
    <!-- 图片页码 -->
    <p class="pg">封面</p>
    <img src="./image/d8.jpeg" alt="">

    <!-- 小圆点点 -->
    <p class="radius"></p>
    <!-- 图片的下面标题 -->
    <p class="title">标题</p>

    <!-- 左右箭头 -->
    <div class="arrowhead-left" id="al"> < </div> 
    <div class="arrowhead-right" id="ar"> > </div>
  </div>

  <script>
    var address = ["./image/d1.jpeg", "./image/d2.jpeg", "./image/d3.jpeg", "./image/d4.jpeg", "./image/d5.jpeg", "./image/d7.jpeg"];
    // var imgs = document.getElementsByTagName("img");
    var imgs = document.querySelector("img");
    var len = address.length;
    var str = "";
    var pp = document.getElementsByTagName("p");//获取的是一个集合
    // var pp = document.querySelector("p");  //获取的是一个元素
    var al = document.getElementById("al");
    var ar = document.getElementById("ar");
    //添加span标签
    for (i = 0; i < len; i++) {
      str += ' <span></span>'
    }
    console.log(str);
    console.log(pp);
    pp[1].innerHTML = str;
    var spans = pp[1].getElementsByTagName('span');
    spans[0].className = 'active';

    for (i = 0; i < len; i++) {
      spans[i].index = i;
      spans[i].onmouseover = function () {  //所有圆点的类为空
        for (i = 0; i < len; i++) {
          spans[i].className = "";
        }
        this.className = 'active';      //给点击的span(圆点)添加类名
        imgs.src = address[this.index];  
        pp[0].innerHTML = [this.index + 1] + "/6";
        pp[2].innerHTML = "风光" + [this.index + 1];

      }
    }
    var n = 0 ;
    ar.onclick = function () {

      for (i = 0; i < len; i++) {
        spans[i].className = "";
      }

      spans[n].className = "active";
      imgs.src = address[n];
      pp[0].innerHTML = (n+1) + "/6";
      pp[2].innerHTML = "风光" +(n+1);
      if (n<5) {
        n++; 
      }
      else {
       n=0;
      }
    }
    al.onclick = function () {

     for (i = 0; i < len; i++) {
       spans[i].className = "";
     }
     
     spans[n].className = "active";
     imgs.src = address[n];
     pp[0].innerHTML = (n+1) + "/6";
     pp[2].innerHTML = "风光" +(n+1);
     if (n>0) {
       n--; 
     }
     else {}
      n=(len-1);
     }
     }
  </script>
</body>

</html>

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

Javascript 相关文章推荐
菜鸟javascript基础整理1
Dec 06 Javascript
基于jquery的分页控件(C#)
Jan 06 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
Oct 29 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
JavaScript函数获取事件源的小例子
May 14 Javascript
Javascript中3种实现继承的方法和代码实例
Aug 12 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
React全家桶环境搭建过程详解
May 18 Javascript
vue router动态路由设置参数可选问题
Aug 21 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
Aug 03 Javascript
JavaScript实现切换多张图片
Jan 27 #Javascript
jquery实现点击左右按钮切换图片
Jan 27 #jQuery
JavaScript实现点击切换功能
Jan 27 #Javascript
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 #Javascript
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 #Vue.js
vue实现轮播图帧率播放
Jan 26 #Vue.js
vue 组件基础知识总结
Jan 26 #Vue.js
You might like
PHP新手上路(八)
2006/10/09 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
python实现下载整个ftp目录的方法
2017/01/17 Python
Python 读写文件的操作代码
2018/09/20 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
酒店员工检讨书
2014/02/18 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
五四青年节的活动方案
2014/08/20 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers