按左右箭头改变图像?

2023-12-06

所以我有这个简单的幻灯片:

<div class="container">
    <div id="slideshow">
        <img alt="slideshow" src="1.jpg" id="imgClickAndChange" onclick="changeImage()" />
    </div>
</div>

当我像这样单击时,我已经设法使图像发生变化:

<script language="javascript">
    var imgs = ["2.jpg", "3.jpg", "4.jpg", "5.jpg"];

    function changeImage() {
        document.getElementById("imgClickAndChange").src = imgs[0];
        imgs.push(imgs.shift())
    }
</script>

问题是我也希望当我按下时图像会改变右箭头(下一个)和左箭头(回去)。我怎样才能做到这一点?我尝试添加“onkeypress”事件,但似乎没有任何效果。我做错事了。我对 javascript 很陌生,所以如果你能帮助我那就太好了。谢谢 :)


查看实际答案http://jsfiddle.net/7LhLsh7L/(提琴手注意:因为它在按箭头(左,右)键之前在编辑器本身中运行,所以您应该将焦点(只需单击结果区域)赋予结果区域)

这是标记和脚本:

<div class="container">
    <div id="slideshow">
        <img alt="slideshow" src="http://thumb7.shutterstock.com/photos/thumb_large/253822/156271139.jpg" id="imgClickAndChange" onclick="changeImage()" />
    </div>
</div>
<script>
    var imgs = ["http://thumb7.shutterstock.com/photos/thumb_large/253822/156271139.jpg", "http://thumb9.shutterstock.com/photos/thumb_large/554278/132632972.jpg", "http://thumb7.shutterstock.com/photos/thumb_large/101304/133879079.jpg", "http://thumb101.shutterstock.com/photos/thumb_large/422038/422038,1327874090,3.jpg", "http://thumb1.shutterstock.com/photos/thumb_large/975647/149914934.jpg", "http://thumb9.shutterstock.com/photos/thumb_large/195826/148988282.jpg"];

    function changeImage(dir) {
        var img = document.getElementById("imgClickAndChange");
        img.src = imgs[imgs.indexOf(img.src) + (dir || 1)] || imgs[dir ? imgs.length - 1 : 0];
    }

    document.onkeydown = function(e) {
        e = e || window.event;
        if (e.keyCode == '37') {
            changeImage(-1) //left <- show Prev image
        } else if (e.keyCode == '39') {
            // right -> show next image
            changeImage()
        }
    }
</script>

上述解决方案的特点:

  • 如果您单击图像,它将带您到下一个图像,并在到达最后一个图像时重复循环。
  • 对于左箭头(
  • 右箭头 (->) 行为与单击类似。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按左右箭头改变图像? 的相关文章

随机推荐

  • Android 拆分操作栏,操作项位于顶部和底部?

    有没有办法将某些操作项指定到拆分操作栏的顶部 而其他操作项指定到底部 或者是全有或全无 即所有操作项仅进入拆分的底部 目前这是不可能的 请参阅 Android 开发者 Reto Meier 和 Roman Nurik 在 Android 开
  • 类方法和实例方法的区别?

    当我在编程中使用实例方法和类方法时 我总是感到困惑 请告诉我实例方法和类方法之间的区别以及彼此的优点 所有其他答案似乎都被错误的标签所捕获 现已修复 在 Objective C 中 实例方法是当消息发送到类的实例时调用的方法 因此 例如 i
  • 使用 Flexbox 包裹元素

    我刚刚完成了弹性盒课程并且正在练习 所以如果答案涉及弹性盒概念 我将不胜感激 我有 2 个文章元素 我希望第二篇文章始终位于该位置 第一篇文章的文本可以放在它下面 但是 目前每篇文章的大小都受到尊重 我该如何解决这个问题 这是我当前的 HT
  • 是否可以使用 SQL 中的“Where”子句仅显示仅包含字母和数字的字段?

    我希望能够仅选择某个字段同时包含字母和数字的字段 例如 Select field1 field2 from db1 table1 where field2 LETTERS AND NUMBERS 我使用的是 SQL Server 2005
  • 从 iCloud 备份中排除文件

    我使用的是 iOS 5 1 我使用这种和平的代码 pathURL setResourceValue NSNumber numberWithBool YES forKey NSURLIsExcludedFromBackupKey error
  • 在 Codeblocks 中设置 GLUT 项目 (Ubuntu 12.04)

    我通过 apt get 安装了 freeglut3 和 freeglut3 dev 我想在 Codeblocks 中创建一个 OPENGL GLUT 项目 有人问我 GLUT 的位置 我输入了 usr 正如我在教程中找到的那样 但我收到错误
  • 使用活动记录进行计数/分组?

    我有一张包含以下信息的表 id user id points 1 12 48 2 15 36 3 18 22 4 12 28 5 15 59 6 12 31 etc 我想要的是每个 user id 包含最多条目的前 10 个 数组 顺序从高
  • 列表视图选择如何改变事件的工作方式。它叫了两次

    我有列表视图控件 在更改选择时 我会检查 如果所选记录计数大于零 则仅启用组框控件 否则将其禁用 因为 这些控件仅与选定的记录相关 如果没有选择记录 则不应启用它 以下是我的列表视图的选定更改事件 Private Sub lv Select
  • Play 2.5 对某些请求禁用csrf保护

    我正在使用 play Framework v 2 5 3 编写我的应用程序 并使用官方文档中所述的 CSRF 保护 public class Filters implements HttpFilters Inject CSRFFilter
  • 是否可以在循环中创建并行的 Jenkins 声明式管道阶段?

    我的项目中的不同子项目有一个长期运行的 Gradle 任务列表 我想使用 Jenkins 声明式管道并行运行它们 我希望这样的事情可能会起作用 projects a b c pipeline stage Deploy parallel fo
  • GMailApp Gmail 搜索

    我有一个问题GmailApp搜索 查询 功能 根据它使用的手册Gmail 查询 因此所有参数都应该可访问并返回正确的结果 这是我的查询 var sent threads GmailApp search in sent after 2016
  • SVG animateTransform 同时旋转和缩放同一对象?

    我想同时对缩放和旋转对象进行动画处理 到目前为止 我的尝试失败了 我只能链接动画 旋转 然后缩放 但不能一起旋转和缩放 我错过了什么 我尝试删除 additive sum 但这只是覆盖并忽略了缩放动画
  • 闭包在幕后是如何工作的? (C#)

    我觉得我对闭包 如何使用它们以及它们何时有用有相当不错的理解 但我不明白的是它们实际上是如何在内存中幕后工作的 一些示例代码 public Action Counter int count 0 Action counter gt count
  • 在 mysql where in 子句中对数组使用 implode

    我试图在 mysql where in 子句中使用数组 result myDB gt query SELECT sum total as total FROM myDB gt prefix mydata WHERE categoryname
  • GWT (Google Web Toolkit) 中的 Fire ResizeEvent

    在我的网站上 我有许多 Google 地图 v3 您可以通过 TabPanel 选择它们 每个选项卡一个 但切换选项卡时会出现问题 当您选择该选项卡时 它不会 唤醒 地图 要解决这个问题 我只需要使用 ResizeEvent fire so
  • 从命令行java读取标准输入和参数[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 运行 java 文件时 我在从命令行读取参数和标准输入时遇到问题 我可以单独读取参数 也可以单独读取标准输入 但不能一起读取 例如 java myFile 6 2 lt numbers
  • CSS 网格布局中的等高行

    我认为使用 Flexbox 不可能实现这一点 因为每一行只能是适合其元素所需的最小高度 但是使用较新的 CSS 网格可以实现这一点吗 需要明确的是 我希望网格中所有行中的所有元素的高度相等 而不仅仅是每行 基本上 最高的 单元格 应该决定所
  • 如何解决ActivityThread.performLaunchActivity中的java.lang.ClassNotFoundException?

    对于我的 Android 应用程序 我在 Google Play 开发者控制台中收到以下错误 java lang RuntimeException Unable to instantiate activity ComponentInfo P
  • Ms Access 发送带有报告附件的电子邮件

    使用 MS Access 中的 VBA 代码生成器 我能够编写打开 Outlook 的代码 并通过单击按钮向我发送电子邮件 我在添加附件时遇到问题 我发现的大多数代码都会将 MS 数据库外部的文件添加为附件 我想添加在我的数据库中创建的报告
  • 按左右箭头改变图像?

    所以我有这个简单的幻灯片 div class container div img alt slideshow src 1 jpg div div 当我像这样单击时 我已经设法使图像发生变化