首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >悬停显示交互模型

悬停显示交互模型
EN

Stack Overflow用户
提问于 2021-04-07 16:21:57
回答 2查看 25关注 0票数 1

您好,当我将鼠标悬停在div上或单击一个按钮时,我想显示一个交互式的3D模型。我使用sketchfab来托管模型。

我不能让它工作,它只是出了点问题。有没有办法让div消失,这样当我点击一个按钮时,模型就可以移动了?

更改位置会打乱对齐,更改z索引也不起作用(至少我是这样尝试的)。

我的代码:

代码语言:javascript
复制
* {
  margin: 0;
  padding: 0;
  font-family: helvetica;
}

h1 {
  text-align: center;
  font-size: 8vw;
  top: 2vh;
  position: relative;
}

h2 {
  text-align: center;
  font-weight: 400;
  margin-top: 3vh;
  font-size: 2.5vw;
}

.navbar {
  background: rgb(87,235,222);
  background: linear-gradient(135deg, rgba(87,235,222,1) 0%, rgba(174,251,42,1) 100%);
  height: 75vh;
}

.grid-container {
    display: grid;
}

.grid-container--fit {
    grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
    grid-template-rows: 20em 20em 20em;
}

.grid-element {
  background-color: white;
  color: #fff;
  border: 1px solid #fff;
  position: relative;
}




.test {
  background-color: black;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  z-index: 1;
}

.test:hover {
  opacity: 0;
  z-index: -1;
}

  .modell {
  background-color: gray;
  z-index: 2;
}

.modell:hover {
  z-index: 99;
}
代码语言:javascript
复制
<nav>
  <div class="navbar">
  <h1>Lorem ipsum</h1>
  <h2><a >nav1</a> <a>nav2</a> <a>nav3</a> <a>nav4</a> <a>nav5</a></h2>
  </div>
</nav>

<div class="grid-container grid-container--fit">


<div class="grid-element modell">
    <iframe title="Weiterverarbeitung" frameborder="0" width="100%" height="100%" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="fullscreen; autoplay; vr" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src="https://sketchfab.com/models/faf947997ac4410d9cf264a15dafab82/embed?ui_theme=dark">
    </iframe>
<div class="test">lorem ipsum</div>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-07 16:30:10

您在父元素上设置了hover,然后在子元素上设置了它,因此您的鼠标悬停被搞乱了。只需在悬停父对象时更新.test样式:

代码语言:javascript
复制
.modell:hover .test {
  opacity: 0;
  z-index: -1;
}

代码语言:javascript
复制
* {
  margin: 0;
  padding: 0;
  font-family: helvetica;
}

h1 {
  text-align: center;
  font-size: 8vw;
  top: 2vh;
  position: relative;
}

h2 {
  text-align: center;
  font-weight: 400;
  margin-top: 3vh;
  font-size: 2.5vw;
}

.navbar {
  background: rgb(87, 235, 222);
  background: linear-gradient(135deg, rgba(87, 235, 222, 1) 0%, rgba(174, 251, 42, 1) 100%);
  height: 75vh;
}

.grid-container {
  display: grid;
}

.grid-container--fit {
  grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
  grid-template-rows: 20em 20em 20em;
}

.grid-element {
  background-color: white;
  color: #fff;
  border: 1px solid #fff;
  position: relative;
}

.test {
  background-color: black;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  z-index: 1;
}

.modell {
  background-color: gray;
  z-index: 2;
}

.modell:hover {
  z-index: 99;
}

.modell:hover .test {
  opacity: 0;
  z-index: -1;
}
代码语言:javascript
复制
<nav>
  <div class="navbar">
    <h1>Lorem ipsum</h1>
    <h2><a>nav1</a> <a>nav2</a> <a>nav3</a> <a>nav4</a> <a>nav5</a></h2>
  </div>
</nav>

<div class="grid-container grid-container--fit">


  <div class="grid-element modell">
    <iframe title="Weiterverarbeitung" frameborder="0" width="100%" height="100%" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="fullscreen; autoplay; vr" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered
      web-share src="https://sketchfab.com/models/faf947997ac4410d9cf264a15dafab82/embed?ui_theme=dark">
    </iframe>
    <div class="test">lorem ipsum</div>
  </div>

票数 1
EN

Stack Overflow用户

发布于 2021-04-07 16:26:18

您可以使用JavaScript来执行以下操作:

代码语言:javascript
复制
document.querySelector(".modell").addEventListener("mouseenter",()=>{
    document.querySelector("iframe").style.display = "block";
    document.querySelector(".test").style.display = "none";
 });

document.querySelector(".modell").addEventListener("mouseleave",()=>{
    document.querySelector("iframe").style.display = "none";
    document.querySelector(".test").style.display = "block;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66982167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档