في jQuery ، هل يمكنك أن تتلاشى () دون أن تفقد عقارات العنصر؟ (غير مرئي مقابل العرض: لا شيء)

StackOverflow https://stackoverflow.com/questions/3074015

سؤال

لأنني بحاجة إلى fadein () عنصر آخر من نفس الحجم مرة أخرى ، هل هناك طريقة لتتلاشى () العنصر بحيث يتم الاحتفاظ بالمساحة ، بحيث لا يتم إعادة تدفق العناصر الأخرى لمدة ثانية مقسمة ثم سوف يعيد Fadein () عنصرًا آخر بنفس الحجم؟

هل كانت مفيدة؟

المحلول

تتبادر إلى الذهن تقنيتان:

  1. لف العنصر في div الذي يحتل مقدار المساحة الصحيحة.
  2. استخدم ال .animate طريقة لتغيير عتامة العنصر من 100 ٪ إلى 0 ٪ ، ثم ، عند اكتمال الرسوم المتحركة ، قم بتبديل العنصر الجديد فيه ويستخدمه مرة أخرى تحريكًا لتغيير العتامة من 0 ٪ إلى 100 ٪.

نصائح أخرى

اقتراحي هو أنك لفها بـ Div ... ووضع نفس البعد على هذا Div ...

حافظ على العنصر الذي تريد أن تتلاشى داخل ثابت <div style="display:block;width:300px;height:200px;">, ، إذا أخفيت العنصر بداخله ، فلن يؤثر ذلك على التصميم على الإطلاق.

لقد قمت بإصلاح بلدي. قبل أن أقوم بتشغيل Fadeout ، أقوم بتشغيل هذه الوظيفة:

    /**
     * Keep the window height, to avoid user being thrown up (i.e. on fade out, remove, hide, etc)
     */

        function keepHeight() {
            $('body').css('min-height', $(document).height());
        }

على سبيل المثال:

/**
 * Keep window height
 */

    keepHeight();

/**
 * Fade out
 */

    $('#someDiv').fadeOut();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top