Нажмите «Действие», «Выключение аффикса» - PullRequest
0 голосов
/ 30 мая 2018

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

$("#MainSpySection")
.on("affix.bs.affix", function (e) {
   $.addLog("affix::affix");
})
.on("affixed.bs.affix", function (e) {
   $.addLog("affix::affixed");
})
.on("affix-top.bs.affix", function (e) {
   $.addLog("affix::affix-top");
})
.on("affixed-top.bs.affix", function (e) {
   $.addLog("affix::affixed-top");
});

Элемент MainSpySection очень прост:

<div id="MainSpySection" data-spy="affix" data-offset-top="0">
    <button type="submit" id="SaveButton" name="Action" value="SAVE" class="btn btn-default">Save</button>
</div>

Я добавил несколько пользовательских CSS, но это не должно повлиять на это:

.affix {
     top: 5px;
     -webkit-transition: all .5s ease-in-out;
     transition: all .5s ease-in-out;
     background-color: #d4dfed;
     border-color: #c2d2e5;
     padding:5px 20px;
     z-index:1000000
}

Когда я прокручиваю вниз, это прекрасно работает, и когда я подхожу к вершине, кнопка сбрасывается отлично.Однако каждый раз, когда я нажимаю на что-либо (элемент или фон), элемент MainSpySection переключается в режим прокрутки.Используя приведенный выше пример ведения журнала, я вижу следующие операторы журнала:

affix::affixed
affix::affix
affix::affixed-top
affix::affix-top

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

1 Ответ

0 голосов
/ 31 мая 2018

После тщательного изучения я обнаружил ошибку в версии 3.3.7 плагина Affix.В методе "getState" есть строка:

if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false

, и исправление состоит в том, чтобы просто сделать значение меньше или меньше или равно:

if (offsetTop != null && this.affixed == 'top') return scrollTop <= offsetTop ? 'top' : false

Это решило проблему.

...