鱼C论坛

 找回密码
 立即注册
查看: 3012|回复: 5

[见证历程] JS使用DOM 鼠标键盘操作实现图片的翻页

[复制链接]
发表于 2021-3-2 12:10:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用了dom中的onclick事件来绑定两个按钮的功能
使用了onkeydown事件来绑定键盘左键跟右键
一个比较简单的使用js实现的小效果~


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>Document</title>
  8.     <style>
  9.         *{
  10.             margin: 0;
  11.             padding: 0;
  12.         }

  13.         #outer{
  14.             width: 500px;
  15.             margin: 50px auto;
  16.             padding: 10px;
  17.             background-color: greenyellow;
  18.             /*文本居中*/
  19.             text-align: center;
  20.         }
  21.     </style>

  22.     <script>

  23.         window.onload = function(){

  24.             /*
  25.                 点击按钮切换图片
  26.             */

  27.             //获取两个按钮
  28.             var prev = document.getElementById("prev");
  29.             var next = document.getElementById("next");

  30.             /*
  31.                 要切换图片就是要修改img标签的src属性
  32.                
  33.             */

  34.             //获取img标签
  35.             var img = document.getElementsByTagName("img")[0];

  36.             //创建一个数组,用来保存图片的路径
  37.             var imgArr = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.jpg"];
  38.             

  39.             //创建一个变量,来保存当前正在显示图片的索引
  40.             var index = 0;

  41.             //设置提示文字
  42.             //获取id为info的p元素
  43.             var info = document.getElementById("info");
  44.             //设置提示文字
  45.             info.innerHTML = "一共 " + imgArr.length + " 张图片, 现在第 " + (index+1) + " 张";

  46.             //分别为两个按钮绑定单机响应函数
  47.             prev.onclick = function(){
  48.                 /*
  49.                     切换到上一张,index自减
  50.                 */
  51.                 index--;
  52.                 //判断index是否小于0
  53.                 if(index < 0){
  54.                     //如果index小于0,则调回图片4.
  55.                     index = imgArr.length - 1;
  56.                 }

  57.                 img.src = imgArr[index];

  58.                 //当点击按钮以后,重新设置信息
  59.                 info.innerHTML = "一共 " + imgArr.length + " 张图片, 现在第 " + (index+1) + " 张";
  60.             };

  61.             next.onclick = function(){
  62.                 /*
  63.                     切换到下一张,index自增
  64.                 */
  65.                 index++;
  66.                 //判断index是否大于4
  67.                 if(index > imgArr.length - 1){
  68.                     //如果index大于4则跳回图片1
  69.                     index = 0;
  70.                 };

  71.                 //切换图片就是修改img的src属性
  72.                 //要修改一个元素属性, 元素.属性 = 属性值
  73.                 img.src = imgArr[index];

  74.                 info.innerHTML = "一共 " + imgArr.length + " 张图片, 现在第 " + (index+1) + " 张";
  75.             };

  76.             //给document绑定一个键盘按下事件
  77.             document.onkeydown = function(event){
  78.                 event = event || window.event;
  79.                 /*
  80.                     键盘按下左键则往后退
  81.                     键盘按下右键则向前翻
  82.                 */
  83.                 switch(event.keyCode){
  84.                     //左键37
  85.                     case 37:
  86.                         //切换到上一张
  87.                         index--;
  88.                         if(index < 0){
  89.                             //切换到最后一张图片
  90.                             index = imgArr.length-1;
  91.                         }
  92.                         info.innerHTML = "一共 " + imgArr.length + " 张图片, 现在第 " + (index+1) + " 张";
  93.                         img.src = imgArr[index];
  94.                         break;
  95.                     //右键39   
  96.                     case 39:
  97.                         //切换到下一张
  98.                         index ++;
  99.                         //如果index大于图片数组的长度
  100.                         if(index > imgArr.length-1){
  101.                             //切换回第一张图片
  102.                             index = 0;
  103.                         }
  104.                         img.src = imgArr[index];
  105.                         info.innerHTML = "一共 " + imgArr.length + " 张图片, 现在第 " + (index+1) + " 张";
  106.                         break;
  107.                 }
  108.             };
  109.         };

  110.     </script>
  111. </head>
  112. <body>
  113.     <div id="outer">

  114.         <p id="info"></p>

  115.         <img src="img/1.jpg" alt="冰棍" />

  116.         <button id="prev">上一张</button>
  117.         <button id="next">下一张</button>
  118.     </div>
  119. </body>
  120. </html>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-2 18:34:11 | 显示全部楼层

回帖奖励 +5 鱼币

感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-3 09:29:05 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-5 09:44:00 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-5 13:47:11 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-6 16:10:30 | 显示全部楼层

回帖奖励 +5 鱼币

1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 05:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表