Не удается заставить CSS-переходы работать с ASP.NET

0

Поэтому я пытаюсь создать веб-приложение с div с таблицей в левой половине экрана и div, полный текстовых полей и материалов для редактирования объектов из таблицы справа. На мобильном телефоне, однако, я пытаюсь сделать оба divs равными 100% экрана, при этом первый слева появляется, и если щелкнут объект в его таблице, div справа переместится поверх него.

В настоящее время я использую абсолютное позиционирование, чтобы страницы выглядели правильно, и я просто установил правый div слева равным 100% страницы, а затем повернул его дисплей до нуля. И когда щелкнут объект внутри левого div, он превращает отображение правого div в блок и устанавливает слева на 0. Я включил CSS3 Transitions, чтобы попытаться заставить это сделать эффект скольжения. Я также должен сделать все это в кодовом коде ASP.NET, поскольку это тот проект, в котором он находится. Поэтому вместо того, чтобы использовать JQuery для переключения классов, я должен использовать С# для этого. Я не знаю, вызвала ли эта проблема, и если что-нибудь могу с этим поделать.

Вот соответствующий HTML:

<div class="section admin_body">
    <div class="container left">
        [[table and other stuff here]]
    </div>
    <div class="container right" id="RightContainer" runat="server">
        [[other stuff here]]
    </div>
</div>

И некоторые CSS:

.section.admin_body {
    margin: 1rem 0;
    position: relative;
    background: none;
    border: none;
}

.container.left {
    position: absolute;
    top: 0;
    left: 0;
    width: 99%;
    border: .1em solid #aaa;
    background: #eee;
    border-radius: 3px;
    padding-bottom: 1rem;
    z-index: 1;
}

.container.right {
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    width: 99%;
    border: .1em solid #aaa;
    background: #eee;
    border-radius: 3px;
    z-index: 99;
    -webkit-transition: left 2s linear;
    -moz-transition: left 2s linear;
    -o-transition: left 2s linear;
    transition: left 2s linear;
}

.container.right.selected {
    display: block;
    left: 0;
}

И, наконец, С#:

protected internal void LoadCase(object sender, EventArgs e)
{
    ...
    BindData();
    LoadHeader();
    RightContainer.Attributes.Add("class", "container right selected");
}

У меня есть все для работы, кроме части переходов CSS. Никакого скользящего эффекта вообще нет. Опять же, я не уверен, что это связано с тем, что я использую С# для привязки данных до того, как попытаюсь запутаться с классами, которые активируют переходы. Если кто-нибудь знает, что я делаю неправильно, я бы очень признателен за помощь!

  • 0
    Где разметка источника для RightContainer ? Вы показываете вывод HTML ...
  • 0
    Я редактировал вопрос. Виноват!
Теги:
css-transitions

2 ответа

0

переходы, по моему мнению, реагируют на действия мыши на стороне клиента

попробуйте это, чтобы увидеть, есть ли эффект:

.container.right {
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    width: 99%;
    border: .1em solid #aaa;
    background: #eee;
    border-radius: 3px;
    z-index: 99;
}

.container.right:hover {
    display: block;
    left: 0;
    -webkit-transition: left 2s linear;
    -moz-transition: left 2s linear;
    -o-transition: left 2s linear;
    transition: left 2s linear;
}
  • 0
    Переходы работают, когда стили элемента изменяются, это может быть действие мыши или сценарий на стороне клиента, изменяющий стили или классы элемента. В этом случае OP хочет добавить класс к элементу, когда возникает определенное условие.
  • 0
    правильно - но вы должны предотвратить обратную передачу, чтобы увидеть переход, если только вы не собираетесь просматривать переход после обратной передачи, и в этом случае вам понадобится JS для работы с элементами.
Показать ещё 4 комментария
0

Если у вас нет элементов Html в UpdatePanel, установка CSS с помощью кода позади не будет работать. Класс CSS будет в браузере с самого начала, поэтому вы не увидите никаких анимаций, переходящих из одного стиля в другой.

Возможно, вы сможете достичь этого эффекта, используя UpdatePanel или другой метод Ajax, не можете ли вы вообще писать javascript в WebForm?

  • 0
    Ах, это имеет смысл. Я попытался обернуть его в UpdatePanel, хотя страница все еще загружается и переходы не происходят. Кроме того, у меня есть javascript в WebForm, но не для переключения классов, поскольку он влияет только на текущее состояние страницы, а затем стирается после перезагрузки страницы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню