اذهب إلى المحتوى
  • 0

تفعيل كلاس معين باستخدام لغة الجافا سكريبت

محمود سعداوي2

السؤال

في المثال التالي أقوم بالضغط على "send me a letter" الكود يعمل بشكل (console.log فعّالة) و لكن الكلاس الجديد "active" لم تعمل.

629c866e24b90_.thumb.JPG.6d837a9c1fa252a612c72943df18f678.JPG

شيفرة html

<div class="section-4">

        <h1 class="section-heading">Contact</h1>

   

        <div class="form-section">

            <img src="./img/form-img.png" alt="">

            <form >

                <input type="text" placeholder="Your Name">

                <input type="email" placeholder="Your Email">

                <textarea placeholder="Your Message"></textarea>

                <input type="submit" value="Send">

            </form>

            <input type="submit" value="Send me a letter" class="inputBtn">

           

        </div>

    </div>

شيفرة css

 

/* section-4 */

.section-4{

    font-family: 'Bellota Text', cursive;

    height: 100vh;

}

.form-section{

    width: 70%;

    background-color: #ddd;

    margin: 5px auto;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    position: relative;

}

.form-section img{

    width: 700px;

    height: 500px;

}

.form-section form{

    display: flex;

    flex-direction: column;

    position: absolute;

    width: 500px;

    margin: 10px 3px;

    background-color: #fff;

    border-radius: 10px;

    transform: scaleY(0);

    transition: transform 2s;

}

/* .form-section form:hover{

    transform-origin: bottom;

} */

.form-section form input{

    margin: 10px 2px;

    border: none;

    padding: 4px 10px;

    font-size: 15px;

    border-radius: 3px;

    border-bottom: 2px solid rgb(145, 181, 189);

    color: rgb(145, 181, 189);

    font-weight: bold;

}

.form-section form input::placeholder, .form-section form textarea::placeholder{

    color: rgb(145, 181, 189);

    font-family: 'Bellota Text', cursive;

    font-family: bold;

}

.form-section form textarea{

    margin: 10px 2px;

    border: none;

    padding: 4px 10px;

    font-size: 14px;

    border-bottom: 2px solid rgb(145, 181, 189);

    color: rgb(145, 181, 189);

    max-height: 120px;

    min-height: 100px;

    max-width: 100%;

    min-width: 70%;

}

.form-section form input[type="submit"]{

    background-color: rgb(145, 181, 189);

    color: #fff;

    width: 50%;

    margin-left: auto;

    margin-right: auto;

}

.inputBtn{

    border: none;

    width: 20%;

    padding: 10px 2px;

    position: absolute;

    background-color: #fff;

    color: rgb(145, 181, 189);

    font-size: 20px;

    font-weight: bold;

    cursor: pointer;

    text-align: center;

}

.inputBtn::after{

    content: "";

    position: absolute;

    width: 100%;

    height: 2px;

    background-color: black;

}

.active{

    transform: scaleY(1);

    transform-origin: bottom;

}

شيفرة javascript

 

// show the form

const inputBtn = document.querySelector('.inputBtn')

const showForm = document.querySelector('.form-section form')

inputBtn.addEventListener('click', ()=>{

    console.log(showForm);

    showForm.classList.add('active')

})

شكرا لكم.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

المشكلة لديك أنك لا تحدد العنصر بشكل مباشر بل تكتفي بتحديد الكلاس active , وبالتالي سوف يتم تجاهل التنسيقات الخاصة بالكلاس active , الحل أن نستخدم الخاصية !important كالتالي

.active{
    transform: scaleY(1) !important;
                         ^^^^^^^^^^
    transform-origin: bottom;
}

في هذه الحالة سوف يتم تجاهل جميع التنسيقات الاخرى لنفس العنصر ويتم تطبيق الخاصية التي لديها important , 
الحل الآخر يمكنك من خلال تحديد العنصر بشكل مباشر وصحيح كالتالي

.form-section form.active{
 ^^^^^^^^^^^^^^^^^^^^^^^
    transform: scaleY(1);
    transform-origin: bottom;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

العنصر الذي لديه الكلاس form-section form غير موجود , هل قمت بكتابته ولكن لم ترفقه في الكود أم انك لم تكتبه؟ أرجو منك التأكد من انشائه 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 9 دقائق مضت قال محمد أبو عواد:

العنصر الذي لديه الكلاس form-section form غير موجود , هل قمت بكتابته ولكن لم ترفقه في الكود أم انك لم تكتبه؟ أرجو منك التأكد من انشائه 

العنصر غير موجود لأن "transform: scaleY(0);"

ولكن عند النقر على "send me a letter" أريد أن يصبح العنصر موجود من خلال إضافة الكلاس "active"

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...