Вопрос:

JQuery Slide Animation + CSS

javascript jquery html css

276 просмотра

2 ответа

31 Репутация автора

Я так долго искал, как заставить JQuery выдвигаться на div. Было несколько документов, но я не нашел ту, которая подходит моей проблеме.

Я просто хочу, чтобы текст 1 скользил влево, и в то же время текст 2 скользил справа и располагался по центру экрана.

введите описание изображения здесь

Вот код ^ - ^.

enter code herehttps://jsfiddle.net/sru33se6/4/

Автор: Insanic Источник Размещён: 12.03.2017 12:06

Ответы (2)


2 плюса

108 Репутация автора

Я не знаю, если это лучший способ продолжить, но вы могли бы попробовать так, как я сделал:

@keyframes slide-from-center{
  from {left: 50%}
  to {left: -50%}
}

@keyframes slide-from-right{
  from {left: 150%}
  to {left: 50%}
}

body {
  display: flex;
  overflow-x: hidden;
  overflow-y: hidden;
}

.content {
  display: flex;
  margin-left: auto;
  margin-right: auto;
}

.text {
  position: relative;
  min-width: 200px;
  min-height: 100px;
  background-color: teal;
  color: white;
  border: 4px solid black;
  border-radius: 5px;
  margin-left: 10px;
  overflow: hidden;
}

.text h1 {
  position: absolute;
  transform: translate(-50%, -50%);
  font-size: 0.8rem;
  width: 100%;
  text-align: center;
  margin: auto 0 auto 0;
  top: 50%;
}

.text h1:first-of-type{
  left: 50%;
  animation: slide-from-center 3s linear 1 forwards;
}

.text h1:nth-of-type(2){
  left: 150%;
  animation: slide-from-right 3s linear 1 forwards;
}
<html>
  <head>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
    <link rel="stylesheet" href="../css/test.css">
  </head>
  <body>
    <div id="content" class="content">
      <!--Text 1 slides smooth out to the left.-->
      <div class="text"><h1>Text 1</h1><h1>
      Text 2
      </h1></div>
      <!--Text 2 should slide in to the right after Text 2 slided out. Currently commented out Text 2 below-->
      
      <!--<div class="text" style="display: hidden;"><h1>Text 2</h1></div>-->
      
    </div>
</body>
</html>

Автор: vesna Размещён: 12.03.2017 12:39

1 плюс

2471 Репутация автора

Решение

Я сделал это с помощью jquery UI переключения слайдов. запустить фрагмент ниже (нажмите где угодно, чтобы вставить текст)

var startWithText1 = true;
var first;
var second;
$(document).click(function() {
  if (startWithText1) {
    first = $("#text1");
    second = $("#text2");
  } else {
    first = $("#text2");
    second = $("#text1");
  }
  first.toggle("slide", {
      'direction': 'left'
    }, 500,
    function() {
      second.toggle("slide", {
        'direction': 'right'
      }, 500)
    }
  );
  startWithText1 = !startWithText1;
});
body {
  display: flex;
  overflow-x: hidden;
  overflow-y: hidden;
}

.content {
  display: flex;
  margin-left: auto;
  margin-right: auto;
}

.text {
  width: 200px;
  height: 100px;
  background-color: teal;
  font-size: 72px;
  color: white;
  display: flex;
  border: 4px solid black;
  border-radius: 5px;
  margin-left: 10px;
}

.text h1 {
  margin-left: auto;
  margin-right: auto;
  margin-top: auto;
  margin-bottom: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
<link rel="stylesheet" href="../css/test.css">

<div id="content" class="content">
  <!--Text 1 slides  smooth out to the left.-->
  <div class="text">
    <h1 id="text1">Text 1</h1>
    <h1 id="text2" style="display: none;">Text 2</h1>
  </div>
</div>

Автор: Bryan Dellinger Размещён: 12.03.2017 12:53
Вопросы из категории :
32x32