【问题标题】:changing images and text bits by clicks通过单击更改图像和文本位
【发布时间】:2018-07-09 01:59:57
【问题描述】:

我正在使用脚本来更改用户单击 HTML 站点中的图像。该脚本很适合在没有菜单的情况下播放这种幻灯片。

但现在我希望(从设计的角度)在图像下方显示图像编号和一些图像描述,并且(当然)它们也应该在有人点击图像时发生变化。

这是我迄今为止用于更改图像的脚本。有人可以快速帮助我更改文本吗?理想情况下,它会从我定义的字符串变量列表中获取文本,或者它也可以从外部 TXT 文件等中读取文本。

这是我目前使用的代码!

     <div id="content">
     <img src= "testbild01.jpg" width="100%" height="auto" style="float:left" id="imageisabutton" />



        <script type="text/javascript">
        var images = ['testbild01.jpg', 'testbild02.jpg', 'testbild02.jpg'],
            i = 0;

        // preload
        for (var j=images.length; j--;) {
            var img = new Image();
            img.src = images[j];
        }

        // event handler
        document.getElementById('imageisabutton').addEventListener('click', function() {
            this.src = images[i >= images.length - 1 ? i = 0 : ++i];
        }, false);
    </script> 

【问题讨论】:

  • 你是对的 - 抱歉是一大早(谢谢)

标签: javascript html image text dynamic


【解决方案1】:

添加另一个数组进行描述,如

var descriptions = ['description 1', 'description 2', 'description 3'],

为描述添加新元素,在图片下方,如

<div id="mydescription"></div>

this.src = ...之后添加如下代码

document.getElementById('mydescription').innerHTML = i + ' ' + descriptions[i];

【讨论】:

  • 感谢您的快速回答。虽然我认为第二个数组的想法看起来不错,但它仍然不起作用(仅更改图像)。我更新了代码也许你知道出了什么问题?
  • Description 定义为 mydescriptions 但用作 desc 未定义且应为 NaN
【解决方案2】:

这样就可以了!谢谢

     <div id="content">

     <center> 
     <c id='numbers'>image 1/3</c>
     <br />


     <img src= "testbild01.jpg" width="100%" height="auto" style="float:left" id="myButton" />

     <script type="text/javascript">

    var images = [
    'testbild01.jpg',
    'testbild02.jpg',
    'testbild03.jpg'
    ],
    i = 0;

    var mydescriptions = [
    'text 1, 
    'text 2, 
    'text 2'
    ],
    i = 0;


    // preload
    for (var j=images.length; j--;) {
        var img = new Image();
        img.src = images[j];
    }

    // event handler
    document.getElementById('myButton').addEventListener('click', function() {
        this.src =              
        images[i >= images.length - 1 ? i = 0 : ++i];

    document.getElementById('mydescriptions').innerHTML =  mydescriptions[i];
    document.getElementById('numbers').innerHTML = 'image ' + (i+1) + '/' + (j+4);

    }, false);                                          


     </script> 

     <br />
     <c id='mydescriptions'>click image to move through slideshow</c>

     </center> 

【讨论】:

  • 第二个数组名称是“mydescriptions”而不是“desc”。您在 document.getElementById('mydescriptions').innerHTML = x + ' ' + desc[i]; 行中有拼写错误而是使用下面的 document.getElementById('mydescriptions').innerHTML = (i+1) + ' ' + mydescriptions[i];
  • 变量定义为mydescriptions,但用作desc,未定义,应为NaN
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
相关资源
最近更新 更多