Заставьте отделение исчезнуть приятно после данного количества времени

Я использую метод Database.CompatibleWithModel (доступный в EF5) для проверки соответствия модели и базы данных, прежде чем использовать ее. Я вызываю этот метод сразу после создания контекста ...

        // test the context to see if the model is out of sync with the db...
        if (!MyContext.Database.CompatibleWithModel(true))
        {
            // delete the old version of the database...
            if (File.Exists(databaseFileName))
                File.Delete(databaseFileName);
            MyContext.Database.Initialize(true);

            // re-populate database

        }
5
задан MyItchyChin 26 December 2015 в 06:52
поделиться

6 ответов

Не уверенный, почему Вы были бы так против использования чего-то как jQuery, который сделает выполнение этого эффекта почти тривиальным, но по существу, необходимо перенести серию изменений в - moz-непрозрачность, непрозрачность и filter:alpha правила CSS в setTimeout ().

Или, используйте jQuery и перенесите постепенное исчезновение () вызов в setTimeout. Ваш выбор.

12
ответ дан 18 December 2019 в 10:50
поделиться

Вот некоторый JavaScript, который делает это. Я нашел его на учебном веб-сайте JavaScript где-нибудь (который я не мог найти снова), и изменил его.

var TimeToFade = 200.0;

function fade(eid)
{
    var element = document.getElementById(eid);
    if(element == null) return;

    if(element.FadeState == null)
    {
        if(element.style.opacity == null || element.style.opacity == ''
               || element.style.opacity == '1') {
            element.FadeState = 2;
        } else {
            element.FadeState = -2;
        }
    }

    if(element.FadeState == 1 || element.FadeState == -1) {
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    } else {
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime()
           + ",'" + eid + "')", 33);
    }
}

function animateFade(lastTick, eid)
{
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;

    var element = document.getElementById(eid);

    if(element.FadeTimeLeft <= elapsedTicks) {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = '
            + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        element.style.display = "none";
        return;
    }

    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft/TimeToFade;
    if(element.FadeState == 1) {
        newOpVal = 1 - newOpVal;
    }

    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';

    setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

Следующий HTML показывает, как он работает:

<html><head>
    <script type="text/javascript" src="fade.js"></script>
</head><body>
    <div id="fademe" onclick="fade( 'fademe' )">
        <p>This will fade when you click it</p>
    </div>
</body></html>
4
ответ дан 18 December 2019 в 10:50
поделиться

В эти дни я всегда пользовался бы библиотекой для того - успехи, которые они сделали, было феноменально, и одна только функциональность перекрестного браузера стоит того. Таким образом, этот ответ является неответом. Я был бы точно так же, как, чтобы указать, что jQuery является всеми 15 КБ.

2
ответ дан 18 December 2019 в 10:50
поделиться

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

Однако jQuery может перейти о 15k и является одноразовой загрузкой для клиента, таким образом, я не назвал бы это огромным.

0
ответ дан 18 December 2019 в 10:50
поделиться

Попробуйте библиотеку YUI (Yahoo User Interface) Animation: http://developer.yahoo.com/yui/animation/

Не изобретать велосипед. Библиотеки являются нашими друзьями.:-)

0
ответ дан 18 December 2019 в 10:50
поделиться

Я знаю, что Вы снижаетесь на библиотеках, но я рекомендовал бы смотреть на moo.fx: http://moofx.mad4milk.net/ - я думаю, что это похоже на 3k.

jQuery является довольно чертовски маленьким также.

-2
ответ дан 18 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: