【问题标题】:Replace icon in mobile version of web site替换移动版网站中的图标
【发布时间】:2019-03-05 19:51:28
【问题描述】:

我有一个带有音轨的块,我想用一个播放/停止图标替换所有音轨。我该怎么做?

.lesson-item {
    max-width: 100%;
    transition: transform 300ms linear 0ms, box-shadow 300ms linear 0ms, z-index 300ms linear 0ms;
    cursor: pointer;
    transform-origin: left top;
}

.lesson-item:after {
    content: '';
    clear: both;
    display: block;
}
    
.img {
    background-size: cover;
    float: left;
    margin-right: 1rem;
    width: 100px;
    height: 100px;
    transition: height 300ms, width 300ms;
    transform-origin: left top;
}
<div class="lesson-item">
    <div class="img" style="background-image: url(https://dummyimage.com/100x100/000/fff)"></div>
    <div class="description">
        <div class="player">
            <audio preload="auto" controls>
                <source src="assets/audio.mp3" />
                <source src="assets/audio.ogg" />
                <source src="assets/audio.wav" />
            </audio>
        </div>
    </div>
    <div class="bottom">
        <a href="#">Text</a>
        <a href="#">Text</a>
        <a href="#">Text</a>
    </div>
</div>

我只需要播放/停止一个图标而不是所有曲目。

【问题讨论】:

  • 关于重复链接:您需要做的就是从音频标签中删除controls,然后从您的自定义元素监听器中手动触发播放/暂停
  • @Kaddath 它不是重复的。这是另一个问题。你能在我的样品上展示它吗?

标签: html css responsive


【解决方案1】:

工作示例:https://jsfiddle.net/laberg/jhugx58y/22/

function togglePlay(video) {

  var audio = document.getElementsByTagName("audio")[0];
  
  if (audio) {
  
    if (audio.paused) {
    	audio.play();
        document.getElementById("button").src = "https://image.flaticon.com/icons/svg/149/149658.svg";
    } else {
    	audio.pause();
        document.getElementById("button").src = "https://image.flaticon.com/icons/svg/149/149657.svg";
    }
  
  }
}
.lesson-item {
    max-width: 100%;
    transition: transform 300ms linear 0ms, box-shadow 300ms linear 0ms, z-index 300ms linear 0ms;
    cursor: pointer;
    transform-origin: left top;
}

.lesson-item:after {
    content: '';
    clear: both;
    display: block;
}
    
.img {
    background-size: cover;
    float: left;
    margin-right: 1rem;
    width: 100px;
    height: 100px;
    transition: height 300ms, width 300ms;
    transform-origin: left top;
}
#button {
  width:20px;
}
<div class="lesson-item">
    <div class="img" style="background-image: url(https://dummyimage.com/100x100/000/fff)"></div>
    <div class="description">
        <div class="player">
            <img src="https://image.flaticon.com/icons/svg/149/149657.svg" onclick="togglePlay(this)" id="button">
            <audio preload="auto">
                <source src="https://ccrma.stanford.edu/~jos/mp3/bachfugue.mp3" />
                <source src="assets/audio.ogg" />
                <source src="assets/audio.wav" />
            </audio>
        </div>
    </div>
    <div class="bottom">
        <a href="#">Text</a>
        <a href="#">Text</a>
        <a href="#">Text</a>
    </div>
</div>

【讨论】:

  • 你能告诉我们为什么在js代码中需要[0]吗?我的意思是这段代码的目的是什么?谢谢。
  • 没问题。这是一种访问页面上元素的方式。 getElementsByTagName('audio') 方法返回所有带有
猜你喜欢
  • 2015-08-29
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
相关资源
最近更新 更多