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

السؤال

Recommended Posts

  • 0
نشر

خاصية animate في jQuery  تسمح لك بإجراء تحريكات وتغييرات على عناصر HTML بشكل سلس ومتدرج. يمكنك استخدامها لتحريك العناصر عبر الشاشة أو لتغيير الخصائص الأخرى مثل الأبعاد واللون والشفافية.

تستخدم الدالة animate بشكل عام بالطريقة التالية:

$(selector).animate(styles, duration, easing, complete);

$(selector) يحدد العنصر (أو العناصر) التي ترغب في تحريكها.
styles يحدد الخصائص التي ترغب في تغييرها في شكل كائن JavaScript. يمكنك تحديد أي عدد من الخصائص، مثل العرض والارتفاع والخلفية وما إلى ذلك.
duration هو الوقت الذي يستغرقه التحريك بالمللي ثانية. يمكنك أيضًا استخدام القيمة "fast" (سريع) أو "slow" (بطيء) بدلاً من تحديد قيمة الوقت.
easing هو نمط التحريك المستخدم، مثل "linear" (خطي) أو "swing" (تأرجح). يمكنك أيضًا استخدام مكتبة إضافية لتوفير تأثيرات تحريك مخصصة.
complete هو وظيفة JavaScript اختيارية تُشغل بعد اكتمال التحريك.
باستخدام خاصية animate بالتعاون مع scrollTop، يمكنك التحكم في التمرير العمودي لصفحة الويب. تعد خاصية scrollTop في jQuery وسيلة للوصول إلى موضع التمرير العمودي الحالي للعنصر المحدد أو تعيينه.

في المثال التالي، سنستخدم animate لتنفيذ تحريك لعنصر معين وتغيير قيمة scrollTop:

$('html, body').animate({
  scrollTop: 500
}, 1000);

في هذا المثال، يتم تحديد عنصر html و body كمحدد لتنفيذ التحريك. سيتم تحريك المستند بمعدل تمرير يستغرق 1000 مللي ثانية (1 ثانية) إلى أعلى بمقدار 500 بكسل.

باستخدام خاصية animate، يمكنك إجراء تحريكات متعددة وتغييرات معقدة على العناصر، مما يوفر لك التحكم الكامل في تجربة المستخدم وتأثيرات الرسوم المتحركة في موقع الويب الخاص بك.

يمكنك الإطلاع على المقال التالي :- 

 

 

  • 0
نشر

خاصية animate  هي خاصية مدمجة في Jquery تستخدم لتغيير حالة العنصر باستخدام CSS style.

يمكن استخدام خاصية animate في Jquery مع scrollTop لتحريك الصفحة بشكل تدريجي إلى الأعلى مثل :

var body = $('html, body');
body.stop().animate({scrollTop:0}, 500, 'swing', function() {
    alert("Finished animating");
});

في الكود السابق يتم استدعاء الدالة animate() على كائن body والذي يتم تحديده باستخدام المحدد $('html, body')، والتي تقوم بإيقاف التحريك الحالي (إذا كان موجودًا) وبعد ذلك تبدأ في تحريك الصفحة إلى الأعلى باستخدام دالة animate() مع معلمة scrollTop التي تعيد الصفحة إلى أعلى المستند. يتم تحديد مدة التحريك بـ 500 ميلي ثانية والتأثير بـ swing.

عند انتهاء التحريك، يتم استدعاء دالة alert() لإظهار رسالة "Finished animating" .

  • 0
نشر (معدل)

لا يوجد أفضل من الأمثلة لتوضيح الشرح كما يلي بعض الأمثلة البسيطة لتوضيح خاصية animate في jQuery:

  •  تحريك عنصر 100 بكسل على اليسار خلال 1 ثانية:
<div id="div1"></div>
$("#div1").animate({
    left: "100px"
}, 1000);
  • تغيير عرض العنصر إلى 300 بكسل وارتفاعه إلى 150 بكسل خلال 500 مللى ثانية:
$("#div1").animate({
    width: "300px",
    height: "150px"  
}, 500);

هنا بعض الأمثلة البسيطة لخاصية .animate() مع .scrollTop():

  • التمرير إلى أعلى الصفحة:
$("html, body").animate({
  scrollTop: 0
}, 1000);

هذا سينقل المتصفح إلى أعلى الصفحة بانتقال متسلسل خلال 1000 مللي ثانية.

  • التمرير إلى عنصر ما:

أولاً ، نحدد الموقف الافتراضي للعنصر:

<div id="div1" style="position:relative; top:500px;">Element</div>

ثم نستخدم .offset().top للحصول على موقعه العمودي وننقل المستخدم إليه:

var elementPosition = $("#div1").offset().top;

$("html, body").animate({
  scrollTop: elementPosition 
}, 1000);
  • التمرير إلى أسفل الصفحة:
$("html, body").animate({
  scrollTop: $(document).height()
}, 1000);

هذا سينقل المستخدم إلى أسفل الصفحة بحيث يمكنه رؤية العناصر التي تقع في أسفل الصفحة.

https://wiki.hsoub.com/jQuery/animate

تم التعديل في بواسطة عبدالباسط ابراهيم
تعديل الكود
  • 0
نشر

تستخدم خاصية animate في Jquery لإضافة تأثيرات حركية إلى العناصر في صفحة الويب. وتتيح هذه الخاصية للمستخدمين إنشاء تأثيرات زخرفية وجذابة عبر استخدام CSS والتعامل مع العناصر داخل الصفحة باستخدام المتغيرات و التوابع في دالة animate.

هذان المثالان سيوضحان كيفية عمل خاصية animate في jQuery بشكل أفضل.

 مثال 1: تغيير حجم الصورة بشكل دائم

إذا كان لديك عدة صور في صفحتك وتريد تغيير حجم إحدى الصور بشكل دائم، فيمكنك استخدام animate لتحقيق ذلك. في هذا المثال، سيتم تصغير حجم الصورة إلى النصف عند النقر عليها، مع استخدام animate لتنفيذ التحول بشكل سلس.

<img id="myImage" src="image.jpg">

<script>
  $(document).ready(function(){
    $("#myImage").click(function(){
      $(this).animate({height: "50%", width: "50%"}, "slow");
    });
  });
</script>

في هذا المثال، يتم استخدام animate لتغيير حجم الصورة عند النقر عليها بشكل دائم. تم استخدام jQuery للوصول إلى عنصر الصورة المحدد باستخدام ID "myImage" فيه، ويتم تعيين المؤشر المناسب كلمة "this".

يتم تحديد حجم الصورة الجديد باستخدام animate باستخدام "height" و "width"، متبوعًا بسرعة الانتقال إلى الحجم الجديد (هنا ستكون "بطيئة"). بمجرد النقر على الصورة، يتم تنفيذ حجم الصورة الجديد باستخدام animate.

مثال 2: الانتقال إلى مكان محدد

تستخدم animate أيضًاللانتقال إلى مكان محدد داخل صفحة الويب، مما يمنح تجربة استخدام أفضل للمستخدم. في هذا المثال، سيتم التمرير إلى المكان المحدد داخل الحاوية عند النقر على الزر.

<div id="container" style="height:200px; overflow-y:auto;">
  <p>Line 1</p>
  <p>Line 2</p>
  <p>Line 3</p>
  <p>Line 4</p>
  <p>Line 5</p>
  <p>Line 6</p>
  <p>Line 7</p>
  <p>Line 8</p>
  <p>Line 9</p>
  <p>Line 10</p>
</div>
 
<button id="scrollButton">Scroll to Line 6</button>
 
<script>
  $(document).ready(function(){
    $("#scrollButton").click(function(){
      $("#container").animate({ scrollTop: $("#container p:nth-child(6)").offset().top }, "slow");
    });
  });
</script>

في هذا المثال، يتم استخدام animate للانتقال إلى مكان محدد داخل صفحة الويب. يتم استخدام jQuery للحصول على الحاوية المحددة (ID "container"). تم إنشاء زر "scrollButton" لتمثيل الزر الذي سيتم النقر عليه للانتقال إلى المكان المحدد. عند النقر على الزر، يتم استخدام animate للانتقال إلى مكان محدد داخل الحاوية، ويتم تحديد الموضع بواسطة "scrollTop" باستخدام موقع العنصر p الذي يصل بالضبط إلى Row 6.

  • 0
نشر

من الأفضل تجنب استخدام jQuery حاليًا فهى لم تعد تستخدم بكثرة، تعلمها بالطبع لتستطيع التعديل على الأكواد الموجودة في الموقع الذي تعمل عليه أو فهم كود jQuery عند البحث على الإنترنت مثلا.

وإليك بعض الأسباب لتجنب استخدام jQuery:

1- jQuery كبيرة الحجم، مما يؤدي إلى تأخير في تحميلها وتنفيذها على الصفحات الويب.

2- المتصفحات الحديثة توفر العديد من الميزات والوظائف المدمجة في JavaScript  النقية، فمع تطور معيار DOM وظهور APIs جديدة مثل querySelector و addEventListener، أصبح بإمكان المطورين الوصول إلى العناصر والتلاعب بها بسهولة باستخدام جافاسكريبت النقية دون الحاجة إلى jQuery.

أيضًا بسبب أن تطور ميزات ECMAScript: ECMAScript (المعيار الرسمي لجافاسكريبت) يتطور بشكل مستمر، ويقدم ميزات جديدة وقوية مثل الوعود (Promises) والسمات (Arrow Functions) وغيرها. وبفضل هذه الميزات، أصبح بإمكان المطورين تنفيذ العديد من المهام بشكل أسهل وأنظف دون الحاجة إلى استخدام jQuery.

3- عند استخدام jQuery، يكون من الصعب تخصيص سلوكها وتصميمها بالكامل وفقًا لاحتياجات المشروع، بينما يمكنك القيام بذلك بشكل أفضل باستخدام JavaScript النقية.

4- توجد العديد من المكتبات الحديثة مثل React وVue.js وAngular التي توفر تجربة تطوير أقوى وفعالة، وتدعم أداءً وصيانةً وإدارة حالة التطبيق بشكل أفضل من jQuery.

وبإمكانك أيضًا استخدام جافاسكريبت النقية لتنفيذ ما تريده كالتالي:

// HTML
<button id="moveButton">انقر هنا</button>
<div id="myDiv" style="height: 2000px; overflow: auto;">
  <p>محتوى العنصر</p>
</div>

// JavaScript
document.getElementById("moveButton").addEventListener("click", function() {
  const myDiv = document.getElementById("myDiv");
  const scrollOptions = {
    top: 500,
    behavior: "smooth"
  };
  myDiv.scrollTo(scrollOptions);
});

 بتعريف زر يحمل معرف "moveButton" وعنصر div يحمل معرف "myDiv" بنفس الطريقة كما في المثال السابق.

وعند النقر على الزر، تم إضافة مستمع الأحداث "click" باستخدام addEventListener والذي يقوم بتنفيذ وظيفة معينة عند حدوث الحدث.

داخل وظيفة المستمع، نقوم بالحصول على عنصر الـ div باستخدام document.getElementById ونخزنه في متغير myDiv.

ثم نعرف كائن scrollOptions يحتوي على الخصائص التي تحدد التمرير الرأسي المطلوب، حيث قمت بتعيين الخاصية top إلى 500، وهذا يعني أن العنصر سيرتفع بمقدار 500 بكسل.

أيضًا عليك تعيين الخاصية behavior إلى "smooth"، مما يجعل الحركة تكون سلسة بدلاً من قفزة فجائية.

أخيرًا، نستخدم myDiv.scrollTo(scrollOptions) لتنفيذ التمرير الرأسي للعنصر div وفقًا للخصائص التي تم تعريفها في scrollOptions.

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...