温馨提示×

JavaScript如何实现滑动门效果

小亿
109
2023-08-01 10:38:22
栏目: 编程语言

滑动门(Sliding Doors)效果是一种常见的用于制作按钮、导航菜单等元素的技术。它可以通过使用 CSS 和 JavaScript 结合实现。下面是一个使用 JavaScript 实现滑动门效果的示例:

HTML:

<div class="sliding-door">

  <div class="left"></div>

  <div class="right"></div>

  <a href="#">Button</a>

</div>

CSS:

.sliding-door {

  position: relative;

  display: inline-block;

  overflow: hidden;

}

.left, .right {

  position: absolute;

  top: 0;

  width: 50%;

  height: 100%;

  background-color: #ccc;

  transition: transform 0.3s ease-in-out;

}

.left {

  left: 0;

}

.right {

  right: 0;

  transform: translateX(100%);

}

a {

  display: block;

  width: 100%;

  height: 100%;

  line-height: 2rem;

  text-align: center;

  color: #fff;

  text-decoration: none;

}

JavaScript:

const slidingDoor = document.querySelector('.sliding-door');

const left = document.querySelector('.left');

const right = document.querySelector('.right');

slidingDoor.addEventListener('mouseenter', () => {

  left.style.transform = 'translateX(0)';

  right.style.transform = 'translateX(-100%)';

});

slidingDoor.addEventListener('mouseleave', () => {

  left.style.transform = 'translateX(-100%)';

  right.style.transform = 'translateX(100%)';

});

在上述示例中,我们首先定义了一个包含左半部分和右半部分的滑动门容器(.sliding-door)。然后使用 CSS 将左右两个部分定位到合适的位置,并设置过渡效果。最后,通过 JavaScript 监听鼠标进入和离开事件,来触发滑动门效果的展开和收起。

当鼠标进入 .sliding-door容器时,我们将左侧部分移动回原始位置(translateX(0)),同时将右侧部分向左移出视图(translateX(-100%))。当鼠标离开容器时,我们将左侧部分向左移出视图(translateX(-100%)),同时将右侧部分向右移出视图(translateX(100%))。

这样就实现了简单的滑动门效果。你可以根据实际需求和设计进行调整和扩展,添加更多样式和交互效果。

0