我想知道我的代码出了什么问题,但不知道发生了什么.

这就是JS

const slider = document.querySelector('.slider');
let newTranslate = 0

const next = () => {
    newTranslate -= 100
    slider.style.transform = `translateX(${newTranslate}%)`
};

const prev = () => {
    newTranslate += 100
    slider.style.transform = `translateX(${newTranslate}%)`
};

和我的超文本标记语言

 <section class="quote">
        <a onclick="prev()">
            <i class="arrow arrow-left"></i>
        </a>
        <div class="slider-container slider-1">
            <div class="slider">
                <div class="slide slide-1">
                    <div class="quote_container">
                      ...
                    </div>
                </div>
            </div>
        </div>
    <a onclick="next()">
          <i class="arrow arrow-right"></i>
     </a>
 </section>

奇怪的是,next()运行良好,但prev()只在页面加载后运行一次.当我点击next(),然后点击prev(),prev()就不工作了.

当我在控制台中运行该函数时,它工作得很好.

好像没有异步元素,所以我一点也不明白.

有人能帮上忙吗?

非常感谢

推荐答案

这是因为您的滑块元素位于堆栈中左箭头(prev())的上方,因此当它向左移动时,它位于顶部,从而阻止您的单击.只需将链接设置为position:relativez-index:1(或高于滑块),它应该可以工作

const slider = document.querySelector('.slider');
let newTranslate = 0

const next = () => {
  newTranslate -= 100
  slider.style.transform = `translateX(${newTranslate}%)`
};

const prev = () => {
  newTranslate += 100
  slider.style.transform = `translateX(${newTranslate}%)`
};
.slider-container {
  background: #ccc;
  display: inline-block;
  width: 100px;
}

.quote a {
  color: red;
  position: relative;
  z-index: 1;
  cursor: pointer;
}
<section class="quote">
  <a onclick="prev()">
    <i class="arrow arrow-left">left</i>
  </a>
  <div class="slider-container slider-1">
    <div class="slider">
      <div class="slide slide-1">
        <div class="quote_container">
          ...
        </div>
      </div>
    </div>
  </div>
  <a onclick="next()">
    <i class="arrow arrow-right">right</i>
  </a>
</section>

Javascript相关问答推荐

有没有方法在Angular中的bowser选项卡之间移动HTML?

如何制作删除按钮以从列表中删除该项目所属的项目?

如何解决(不忽略)reaction详尽的linter规则,而不会在获取数据时导致无限的reender循环

如何在不使用类型化数组的情况下将32位浮点数按位转换为整值?

ReactJS中的material UI自动完成类别

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

我开始使用/url?q=使用Cheerio

在JavaScript中声明自定义内置元素不起作用

Redux查询多个数据库Api reducerPath&

React Code不在装载上渲染数据,但在渲染上工作

Angular:动画不启动

在我的html表单中的用户输入没有被传送到我的google表单中

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

如何从Intl.DateTimeFormat中仅获取时区名称?

在JS中拖放:检测文件

这个值总是返回未定义的-Reaction

在运行时使用Next JS App Router在服务器组件中运行自定义函数

Angular 形式,从DOM中删除不会删除指定索引处的内容,但会删除最后一项

Next.js中的服务器端组件列表筛选

如何在Java脚本中对数据进行签名,并在PHP中验证签名?