Как сделать Pop-Up Title Card при наведении курсора? - PullRequest
0 голосов
/ 08 января 2019

Итак, для моего веб-сайта у меня есть страница портфолио, и я хочу создать простую миниатюру изображения для документов Google или Word, чтобы связать эссе и прочее. То же самое для PDF, слайдов и т. Д.

Я хочу, чтобы логотип или буква были показаны, и когда вы наводите на них курсор, я хочу, чтобы титульная карточка «всплывала» и слегка подпрыгивала, а затем, когда вы зависаете, я хочу, чтобы карточка скользила вниз и исчезают.

Теоретически я хочу, чтобы это выглядело так: Thumbnail

Если он просто скользит вверх, а затем скользит вниз или стреляет вверх, отскакивает, как будто он падает на дно квадрата, а затем падает, не имеет значения - мне просто интересно, как это сделать.

1 Ответ

0 голосов
/ 08 января 2019

Существует множество способов сделать это.

Вот CSS единственный способ.

По сути, вы должны создать разные имена классов для каждой титульной карточки, для которой вы хотите иметь всплывающую подсказку. Я использую псевдо-селектор для контента во всплывающем окне.

Надеюсь, это поможет!

.title-card {
  position: relative;
  display: inline-block;
  width: 200px;
  height: 200px;
  margin: 5px;
  background: #e8e8e8;
  border: 1px solid #fff;
  box-shadow: 1px 1px 3px 0px rgba(0,0,0,0.38);
  border-radius: 6px;
  color: black;
  padding: 10px;
  overflow: hidden;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  font-family: Arial, sans-serif;
}

.title-card::before {
  position: absolute;
  display: inline-block;
  left: 0;
  width: 100%;
  height: 50%;
  padding: 10px;
  background: -moz-linear-gradient(top, rgba(0,0,0,0.53) 0%, rgba(0,0,0,0.24) 100%); 
  background: -webkit-linear-gradient(top, rgba(0,0,0,0.53) 0%,rgba(0,0,0,0.24) 100%);
  background: linear-gradient(to bottom, rgba(0,0,0,0.53) 0%,rgba(0,0,0,0.24) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#87000000', endColorstr='#3d000000',GradientType=0 );
  color: #fff;
  overflow-x: hidden;
  overflow-y: auto;
  opacity: 0;
  transform: translateY(200%);
  transition: all 500ms ease;
}

.title-card:hover::before {
  opacity: 1;
  transform: translateY(100%);
}

.title-card.caption-a::before {
  content: "Hello from the other side!";
}

.title-card.caption-b::before {
  content: "It's tricky!";
}

.title-card.caption-c::before {
  content: "Don't call it a comeback!";
}

.title-card.logo-a {
 background-image: url(https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a);
}

.title-card.logo-b {
 background-image: url(https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/se/se-icon.png?v=93426798a1d4);
}

.title-card.logo-c {
 background-image: url(https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/sf/sf-icon.png?v=6c3100d858bb);
}

.title-card.logo-d {
 background-image: url(https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/su/su-icon.png?v=0ad5b7a83e49);
}
<div class="title-card logo-a caption-a">I have a caption, hover over me!</div>
<div class="title-card logo-b caption-b">I have a caption, hover over me!</div>
<div class="title-card logo-c caption-c">I have a caption, hover over me!</div>
<div class="title-card logo-d">I don't have a hover caption :(</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...