FRPG Энирин

Объявление

    Основная игра Библиотека Организационная
  • 1415 - 1416 г.г.

    Под покровом хаоса и неразберихи, творящихся в нашем грешном мире, есть те, кто строит свои планы. Их действия кажутся незначительными на фоне общей картины бытия. И пока сильные мира сего заняты передвижкой пограничных столбов, а боги соревнуются за влияние на смертных, стремясь получить как можно больше Нектара веры до прихода Зверя, – пожирателя миров, – таинственные "фруктовые" женщины являют себя то тут, то там, готовясь опрокинуть ту самую первую доминошку, которая запустит ужасающую цепную реакцию. Читать полностью

  • География Энирин сегодня Расы Магия Военное дело и технология Историческая сводка Организации Боги Летописи Расширенная библиотека
  • На календаре весна 1416г.



Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » FRPG Энирин » #Флуд » Флуд №439 - В честь вампирских приключений


Флуд №439 - В честь вампирских приключений

Сообщений 941 страница 945 из 945

1

[nic]Флуд[/nic][sta]https://upforme.ru/uploads/0018/28/7e/19/516288.png[/sta][ava]https://c.pxhere.com/photos/dd/2c/flames_fire_heat_fires_flame_fireplace-633738.jpg!s2[/ava][sgn] [/sgn]

https://i.redd.it/d5h8snmzh9zc1.jpeg

Голосуем на РПГ ТОП и получаем герцогское уважение: http://img.rpgtop.su/rpgtop1.gif

0

941

Родан, арбузер подкрепил. %) В макс (у нас опять красный уровень угрозы, больше ничего не работало). Но она пока не прочитала.

+1

942

[nic]Родан[/nic][sta]Сэр рыцарь[/sta][ava]https://forumavatars.ru/img/avatars/0006/f5/43/2-1746565023.jpg[/ava][sgn] [/sgn]
Морис, я уже третью извилину сломал и не понимаю почему эта кнопка (я потом удалю, это просто для наглядности) не работает.
https://upforme.ru/uploads/0006/f5/43/2/100163.png

Код
Код:
<!-- Кнопка "Ролевая маска" и её меню -->
<style>
/* Стили для меню ролевой маски */
#mask-menu {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #d2c6ae;
    border: 3px double #bfa681;
    box-shadow: 0px 0px 15px rgba(0,0,0,0.5), inset 0px 0px 5px 0px #c3ac89;
    padding: 20px;
    z-index: 10000;
    border-radius: 8px;
    min-width: 300px;
}
#mask-menu h3 {
    margin: 0 0 15px 0;
    color: #525923;
    text-align: center;
    font-family: Georgia, Tahoma, serif;
}
#mask-menu input, #mask-menu textarea {
    width: 100%;
    margin: 5px 0 10px 0;
    padding: 8px;
    box-sizing: border-box;
    background: #dacdb4;
    border: 1px solid #987b54;
    color: #2b2114;
    border-radius: 4px;
}
#mask-menu textarea {
    resize: vertical;
    min-height: 60px;
}
#mask-menu label {
    font-weight: bold;
    color: #8a5c2e;
    display: block;
    margin-top: 5px;
}
#mask-menu button {
    margin-top: 15px;
    padding: 8px 15px;
    background: #d2c6ae;
    border: 1px solid #ab9171;
    box-shadow: 0 1px 5px #c1a37c;
    font-weight: bold;
    cursor: pointer;
    border-radius: 4px;
    color: #483216;
}
#mask-menu button:hover {
    background: #e8ddc5;
}
.mask-menu-buttons {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}
#mask-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    z-index: 9999;
}
</style>

<!-- Кнопка "Ролевая маска" -->
<button id="mask-button" style="margin-right: 5px;" title="Ролевая маска">
    <img src="https://i.gyazo.com/ca5e4e2929d937352a8098b4744e3287.png" alt="Ролевая маска" style="vertical-align: middle;">
    Ролевая маска
</button>

<!-- Меню ролевой маски -->
<div id="mask-overlay" onclick="closeMaskMenu()"></div>
<div id="mask-menu">
    <h3>Ролевая маска</h3>
    <label>Ник:</label>
    <input type="text" id="mask-nic" placeholder="Новое имя персонажа">
    <label>URL аватарки:</label>
    <input type="text" id="mask-ava" placeholder="https://...">
    <label>Статус:</label>
    <input type="text" id="mask-sta" placeholder="Статус персонажа">
    <label>Подпись:</label>
    <textarea id="mask-sgn" placeholder="Подпись персонажа"></textarea>
    <div class="mask-menu-buttons">
        <button onclick="insertMask()">Вставить маску</button>
        <button onclick="closeMaskMenu()">Отмена</button>
         </div>
</div>

<script>
// Функция открытия/закрытия меню
function showMaskMenu() {
    document.getElementById('mask-overlay').style.display = 'block';
    document.getElementById('mask-menu').style.display = 'block';
}

function closeMaskMenu() {
    document.getElementById('mask-overlay').style.display = 'none';
    document.getElementById('mask-menu').style.display = 'none';
}

// Функция для вставки текста в текстовое поле (без отправки формы)
function insertTextToReply(text) {
    var textarea = document.getElementById('main-reply');
    if (!textarea) return;
    
    // Получаем текущее значение
    var currentValue = textarea.value;
    var cursorPos = textarea.selectionStart;
    
    // Вставляем текст в позицию курсора
    var newValue = currentValue.substring(0, cursorPos) + text + currentValue.substring(cursorPos);
    textarea.value = newValue;
    
    // Перемещаем курсор после вставленного текста
    var newCursorPos = cursorPos + text.length;
    textarea.setSelectionRange(newCursorPos, newCursorPos);
    
    // Фокусируемся на текстовом поле
   textarea.focus();
}

// Функция вставки маски в форму ответа
function insertMask() {
    var nic = document.getElementById('mask-nic').value.trim();
    var ava = document.getElementById('mask-ava').value.trim();
    var sta = document.getElementById('mask-sta').value.trim();
    var sgn = document.getElementById('mask-sgn').value.trim();
    
    var result = '';
    
    if (nic) result += '';
    if (ava) result += '';
    if (sta) result += '';
    if (sgn) result += '';
    
    if (result) {
        result += '\n';
        insertTextToReply(result);
    }
    
    // Очищаем поля
    document.getElementById('mask-nic').value = '';
    document.getElementById('mask-ava').value = '';
    document.getElementById('mask-sta').value = '';
    document.getElementById('mask-sgn').value = '';
    
    // Закрываем меню
    closeMaskMenu();
}

// Привязываем обработчик к кнопке маски
$(function() {
    $('#mask-button').click(function(e) {
         e.preventDefault();
         showMaskMenu();
    });
});
</script>

И я вот хоть убей не понимаю, почему тут:
<div id="mask-overlay" onclick="closeMaskMenu()"></div>
Всё работает как надо, а тут:
<button onclick="closeMaskMenu()">Отмена</button>
Происходит отправка поста, хотя функция вызывается одна и та же. Может, я что-то про HTML такое заковыристое не знаю? Не подскажешь, в чём причина?

0

943

#p682876,Родан написал(а):

Может, я что-то про HTML такое заковыристое не знаю?

Оч-чень даже может быть... div - это просто блок, коробочка без прикрученного к ней функционала, а button  - кнопка, у которой есть функционал, даже если никаких функций к ней не привязывать. По умолчанию, если не указано иное, кнопка имеет тип submit, а это как раз и есть отправка формы, внутри которой эта кнопка находится. Пропиши ей атрибут type="button", должна перестать отправлять форму и выполнять только привязанную на onclick функцию. Ну можно ещё извратиться и прописать в функции предотвращение действий по умолчанию... Но это уже немножко излишество.

+1

944

#p682878,Морис написал(а):

Пропиши ей атрибут type="button", должна перестать отправлять форму и выполнять только привязанную на onclick функцию.

Большое спасибо, попробую.

0

945

#p682878,Морис написал(а):

Пропиши ей атрибут type="button"

Помогло. Ещё раз благодарю за эту подсказку. Без тебя я бы сломал ещё три извилины.

+1


Вы здесь » FRPG Энирин » #Флуд » Флуд №439 - В честь вампирских приключений


Рейтинг форумов | Создать форум бесплатно