தமிழ்

தொடு சைகைகளின் உலகை ஆராய்ந்து, அவற்றை உங்கள் ஜாவாஸ்கிரிப்ட் திட்டங்களில் எவ்வாறு செயல்படுத்துவது என்பதைக் கற்றுக்கொள்ளுங்கள். இந்த வழிகாட்டி அடிப்படை தொடு நிகழ்வுகள் முதல் மேம்பட்ட சைகை அங்கீகார நுட்பங்கள் வரை அனைத்தையும் உள்ளடக்கியது.

தொடு சைகைகள்: ஜாவாஸ்கிரிப்ட் செயல்படுத்தலுக்கான ஒரு விரிவான வழிகாட்டி

இன்றைய மொபைல்-முதன்மையான உலகில், தொடு சைகைகள் பயனர் அனுபவத்தின் ஒரு அங்கமாகிவிட்டன. எளிய தட்டல்கள் முதல் சிக்கலான பல-விரல் ஊடாடல்கள் வரை, தொடு சைகைகள் பயனர்கள் வலைப் பயன்பாடுகளுடன் ஊடாட ஒரு இயற்கையான மற்றும் உள்ளுணர்வுமிக்க வழியை வழங்குகின்றன. இந்த விரிவான வழிகாட்டி தொடு சைகைகளின் உலகை ஆராய்ந்து, அவற்றை உங்கள் ஜாவாஸ்கிரிப்ட் திட்டங்களில் செயல்படுத்துவதற்கான படிப்படியான அணுகுமுறையை வழங்குகிறது.

தொடு நிகழ்வுகளைப் புரிந்துகொள்ளுதல்

சைகை அங்கீகாரத்தில் மூழ்குவதற்கு முன், இந்த ஊடாடல்களுக்கு ஆற்றலளிக்கும் அடிப்படை தொடு நிகழ்வுகளைப் புரிந்துகொள்வது முக்கியம். ஜாவாஸ்கிரிப்ட் ஒரு பயனர் திரையைத் தொடும்போது நிகழும் நிகழ்வுகளின் தொகுப்பை வழங்குகிறது. இந்த நிகழ்வுகள் தொடுதலின் இருப்பிடம் மற்றும் நிலை போன்ற தகவல்களை வழங்குகின்றன.

அடிப்படை தொடு நிகழ்வுகள்:

இந்த நிகழ்வுகள் ஒவ்வொன்றிலும் ஒரு `touches` பண்பு உள்ளது, இது `Touch` பொருட்களின் பட்டியலாகும். ஒவ்வொரு `Touch` பொருளும் திரையில் உள்ள ஒரு ஒற்றைத் தொடர்பு புள்ளியைக் குறிக்கிறது மற்றும் இது போன்ற தகவல்களைக் கொண்டுள்ளது:

உதாரணம்: தொடு ஒருங்கிணைப்புகளைப் பதிவு செய்தல்

பயனர் திரையைத் தொடும்போது ஒரு தொடு புள்ளியின் ஒருங்கிணைப்புகளை எவ்வாறு பதிவு செய்வது என்பதை இந்த எளிய உதாரணம் காட்டுகிறது:


 document.addEventListener('touchstart', function(event) {
  event.preventDefault(); // இயல்புநிலை உலாவி நடத்தையை (எ.கா., ஸ்க்ரோலிங்) தடுக்கிறது
  let touch = event.touches[0];
  console.log('Touch started at X: ' + touch.clientX + ', Y: ' + touch.clientY);
 });

குறிப்பு: `preventDefault()` முறையானது, ஸ்க்ரோலிங் அல்லது ஜூமிங் போன்ற உலாவியின் இயல்புநிலை தொடு நடத்தையைச் செய்வதைத் தடுக்கப் பயன்படுகிறது.

அடிப்படை சைகைகளை செயல்படுத்துதல்

தொடு நிகழ்வுகளைப் பற்றிய திடமான புரிதலுடன், நாம் இப்போது அடிப்படை சைகைகளை செயல்படுத்தலாம். டேப், ஸ்வைப் மற்றும் டிராக் போன்ற உதாரணங்களைப் பார்ப்போம். இவை முதலில் அவை என்ன என்பதை வரையறுத்து, பின்னர் ஜாவாஸ்கிரிப்ட் உதாரணங்களை வழங்குவதன் மூலம் விளக்கப்படும்.

தட்டல் (Tap) சைகை

ஒரு தட்டல் சைகை என்பது திரையில் ஒரு விரைவான தொடுதல் மற்றும் விடுவித்தல் ஆகும். ஒரு தட்டல் சைகையை செயல்படுத்த, நாம் `touchstart` மற்றும் `touchend` நிகழ்வுகளைக் கண்காணித்து அவற்றுக்கிடையேயான நேர வித்தியாசத்தை அளவிடலாம். நேர வித்தியாசம் ஒரு குறிப்பிட்ட வரம்பிற்குக் கீழே இருந்தால் (எ.கா., 200 மில்லி விநாடிகள்), அதை நாம் ஒரு தட்டலாகக் கருதுகிறோம்.


 let tapStartTime = null;

 document.addEventListener('touchstart', function(event) {
  tapStartTime = new Date().getTime();
 });

 document.addEventListener('touchend', function(event) {
  let tapEndTime = new Date().getTime();
  let tapDuration = tapEndTime - tapStartTime;

  if (tapDuration < 200) {
   console.log('Tap detected!');
  }
 });

தடவல் (Swipe) சைகை

ஒரு தடவல் சைகை என்பது திரை முழுவதும் ஒரு விரைவான, திசை சார்ந்த இயக்கம் ஆகும். ஒரு தடவலைக் கண்டறிய, நாம் தொடுதலின் தொடக்க மற்றும் முடிவு நிலைகளைக் கண்காணித்து, இயக்கத்தின் தூரம் மற்றும் திசையைக் கணக்கிட வேண்டும். தடவலின் கால அளவையும் நாம் கருத்தில் கொள்ள வேண்டும்.


 let swipeStartX = null;
 let swipeStartY = null;

 document.addEventListener('touchstart', function(event) {
  swipeStartX = event.touches[0].clientX;
  swipeStartY = event.touches[0].clientY;
 });

 document.addEventListener('touchend', function(event) {
  let swipeEndX = event.changedTouches[0].clientX;
  let swipeEndY = event.changedTouches[0].clientY;
  let deltaX = swipeEndX - swipeStartX;
  let deltaY = swipeEndY - swipeStartY;
  let swipeDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);

  if (swipeDistance > 50) { // தேவைக்கேற்ப வரம்பை சரிசெய்யவும்
   let angle = Math.atan2(deltaY, deltaX) * 180 / Math.PI;

   if (angle > -45 && angle <= 45) {
    console.log('Swipe right!');
   } else if (angle > 45 && angle <= 135) {
    console.log('Swipe down!');
   } else if (angle > 135 || angle <= -135) {
    console.log('Swipe left!');
   } else {
    console.log('Swipe up!');
   }
  }
 });

இழுத்தல் (Drag) சைகை

ஒரு இழுத்தல் சைகை என்பது ஒரு உறுப்பைத் தொட்டு அதை திரை முழுவதும் நகர்த்துவதை உள்ளடக்கியது. ஒரு இழுத்தல் சைகையை செயல்படுத்த, நாம் touchmove நிகழ்வைக் கண்காணித்து, அதற்கேற்ப உறுப்பின் நிலையை புதுப்பிக்க வேண்டும்.


 let dragging = false;
 let offsetX, offsetY;
 let element = document.getElementById('draggableElement');

 element.addEventListener('touchstart', function(event) {
  dragging = true;
  offsetX = event.touches[0].clientX - element.offsetLeft;
  offsetY = event.touches[0].clientY - element.offsetTop;
 });

 document.addEventListener('touchmove', function(event) {
  if (dragging) {
   element.style.left = (event.touches[0].clientX - offsetX) + 'px';
   element.style.top = (event.touches[0].clientY - offsetY) + 'px';
  }
 });

 document.addEventListener('touchend', function(event) {
  dragging = false;
 });

உங்கள் HTML-ல் "draggableElement" என்ற ஐடியுடன் ஒரு உறுப்பு இருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்:


 
என்னை இழு!

மல்டி-டச் சைகைகள்

மல்டி-டச் சைகைகள் திரையுடன் ஊடாட பல விரல்களைப் பயன்படுத்துவதை உள்ளடக்கியது. இது கிள்ளி பெரிதாக்குதல் (pinch-to-zoom) மற்றும் சுழற்றுதல் போன்ற மிகவும் சிக்கலான மற்றும் வெளிப்பாடான ஊடாடல்களை அனுமதிக்கிறது.

கிள்ளி பெரிதாக்குதல் (Pinch-to-Zoom)

கிள்ளி பெரிதாக்குதல் என்பது ஒரு படம் அல்லது வரைபடத்தை பெரிதாக்கவும் சிறிதாக்கவும் பயன்படுத்தப்படும் ஒரு பொதுவான சைகையாகும். கிள்ளி பெரிதாக்குதலை செயல்படுத்த, நாம் இரண்டு தொடு புள்ளிகளுக்கு இடையிலான தூரத்தைக் கண்காணித்து, அதற்கேற்ப உறுப்பின் அளவை சரிசெய்ய வேண்டும்.


 let initialDistance = null;
 let currentScale = 1;
 let element = document.getElementById('zoomableImage');

 function getDistance(event) {
  let touch1 = event.touches[0];
  let touch2 = event.touches[1];
  let x = touch2.clientX - touch1.clientX;
  let y = touch2.clientY - touch1.clientY;
  return Math.sqrt(x * x + y * y);
 }

 element.addEventListener('touchstart', function(event) {
  if (event.touches.length === 2) {
   initialDistance = getDistance(event);
  }
 });

 element.addEventListener('touchmove', function(event) {
  if (event.touches.length === 2) {
   event.preventDefault();
   let currentDistance = getDistance(event);
   let scaleFactor = currentDistance / initialDistance;
   currentScale *= scaleFactor; // அளவிடுதலைக் குவித்தல்
   element.style.transform = 'scale(' + currentScale + ')';
   initialDistance = currentDistance; // அடுத்த இயக்கத்திற்கு மீட்டமைக்கவும்
  }
 });

 element.addEventListener('touchend', function(event) {
  initialDistance = null;
 });

உங்கள் HTML-ல் "zoomableImage" என்ற ஐடியுடன் ஒரு படம் இருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்:


 

சுழற்சி (Rotation)

சுழற்சி என்பது இரண்டு விரல்களைப் பயன்படுத்தி ஒரு உறுப்பைச் சுழற்றுவதை உள்ளடக்கியது. சுழற்சியை செயல்படுத்த, நாம் இரண்டு தொடு புள்ளிகளுக்கு இடையிலான கோணத்தைக் கண்காணித்து, அதற்கேற்ப உறுப்பைச் சுழற்ற வேண்டும்.


 let initialAngle = null;
 let currentRotation = 0;
 let element = document.getElementById('rotatableImage');

 function getAngle(event) {
  let touch1 = event.touches[0];
  let touch2 = event.touches[1];
  return Math.atan2(touch2.clientY - touch1.clientY, touch2.clientX - touch1.clientX) * 180 / Math.PI;
 }

 element.addEventListener('touchstart', function(event) {
  if (event.touches.length === 2) {
   initialAngle = getAngle(event);
  }
 });

 element.addEventListener('touchmove', function(event) {
  if (event.touches.length === 2) {
   event.preventDefault();
   let currentAngle = getAngle(event);
   let rotation = currentAngle - initialAngle;
   currentRotation += rotation; // சுழற்சியைக் குவித்தல்
   element.style.transform = 'rotate(' + currentRotation + 'deg)';
   initialAngle = currentAngle; // அடுத்த இயக்கத்திற்கு மீட்டமைக்கவும்
  }
 });

 element.addEventListener('touchend', function(event) {
  initialAngle = null;
 });

உங்கள் HTML-ல் "rotatableImage" என்ற ஐடியுடன் ஒரு படம் இருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்:


 

சைகை அங்கீகார நூலகங்கள்

சிக்கலான சைகைகளை புதிதாக செயல்படுத்துவது சவாலானதாகவும் நேரத்தை எடுத்துக்கொள்வதாகவும் இருக்கலாம். அதிர்ஷ்டவசமாக, பல ஜாவாஸ்கிரிப்ட் நூலகங்கள் சைகை அங்கீகார செயல்முறையை எளிதாக்க முடியும். இந்த நூலகங்கள் முன்-கட்டமைக்கப்பட்ட சைகை அங்கீகாரிகள் மற்றும் தொடு நிகழ்வுகளைக் கையாள்வதற்கான பயன்பாடுகளை வழங்குகின்றன.

Hammer.js

Hammer.js என்பது சைகைகளை அங்கீகரிப்பதற்கான ஒரு பிரபலமான ஜாவாஸ்கிரிப்ட் நூலகமாகும். இது தட்டல், இரட்டை-தட்டல், தடவல், கிள்ளுதல், சுழற்றுதல் மற்றும் நகர்த்துதல் உள்ளிட்ட பரந்த அளவிலான சைகைகளை ஆதரிக்கிறது. இது இலகுவானது, பயன்படுத்த எளிதானது மற்றும் மிகவும் தனிப்பயனாக்கக்கூடியது. Hammer.js தொடு நிகழ்வுகளைக் கேட்டு, பின்னர் தொடு புள்ளிகளின் இருப்பிடம் மற்றும் கால அளவின் அடிப்படையில் பயனர் என்ன செயலைச் செய்கிறார் என்பதை தீர்மானிப்பதன் மூலம் செயல்படுகிறது.


 // உங்கள் HTML-ல் Hammer.js ஐ சேர்க்கவும்
 // 

 let element = document.getElementById('myElement');
 let hammer = new Hammer(element);

 hammer.on('tap', function(event) {
  console.log('Tap event detected');
 });

 hammer.on('swipe', function(event) {
  console.log('Swipe event detected');
  console.log('Swipe direction: ' + event.direction);
 });

 hammer.get('pinch').set({ enable: true });
 hammer.get('rotate').set({ enable: true });

 hammer.on('pinch', function(event) {
  console.log('Pinch event detected');
  element.style.transform = 'scale(' + event.scale + ')';
 });

 hammer.on('rotate', function(event) {
  console.log('Rotate event detected');
  element.style.transform = 'rotate(' + event.rotation + 'deg)';
 });

AlloyFinger

AlloyFinger என்பது சைகை அங்கீகாரத்தில் நிபுணத்துவம் பெற்ற மற்றொரு பிரபலமான ஜாவாஸ்கிரிப்ட் நூலகமாகும், குறிப்பாக மொபைல் சாதனங்களுக்கு. இது அதன் சிறிய அளவு மற்றும் நல்ல செயல்திறனுக்காக அறியப்படுகிறது. இது தட்டல், தடவல், கிள்ளுதல், சுழற்றுதல் மற்றும் அழுத்துதல் போன்ற பொதுவான தொடு சைகைகளில் கவனம் செலுத்துகிறது. இது சைகைகளை உறுப்புகளுடன் பிணைக்க எளிதான-பயன்படுத்தக்கூடிய API ஐ வழங்குகிறது.


 // உங்கள் HTML-ல் AlloyFinger ஐ சேர்க்கவும்
 //  // உங்கள் AlloyFinger பாதையுடன் மாற்றவும்

 let element = document.getElementById('myElement');
 let af = new AlloyFinger(element, {
  tap: function() {
   console.log('Tap event detected');
  },
  swipe: function(evt) {
   console.log('Swipe event detected');
   console.log('Swipe direction: ' + evt.direction); // up, down, left, right
  },
  pinch: function(evt) {
   console.log('Pinch event detected');
   element.style.transform = 'scale(' + evt.scale + ')';
  },
  rotate: function(evt) {
   console.log('Rotate event detected');
   element.style.transform = 'rotate(' + evt.angle + 'deg)';
  }
 });

அணுகல்தன்மைக்கான பரிசீலனைகள்

தொடு சைகைகளை செயல்படுத்தும்போது, குறைபாடுகள் உள்ள பயனர்களுக்கான அணுகல்தன்மையைக் கருத்தில் கொள்வது அவசியம். சில பயனர்கள் இயக்கக் குறைபாடுகள் காரணமாக தொடு சைகைகளைப் பயன்படுத்த முடியாமல் போகலாம். விசைப்பலகை கட்டுப்பாடுகள் அல்லது குரல் கட்டளைகள் போன்ற மாற்று உள்ளீட்டு முறைகளை வழங்குவது, உங்கள் பயன்பாடு பரந்த பார்வையாளர்களுக்கு அணுகக்கூடியதாக இருப்பதை உறுதி செய்கிறது.

செயல்திறன் மேம்படுத்தல்

தொடு நிகழ்வுகள் கணக்கீட்டு ரீதியாக செலவு மிக்கவையாக இருக்கலாம், குறிப்பாக சிக்கலான சைகைகளைக் கையாளும்போது. மென்மையான மற்றும் பதிலளிக்கக்கூடிய பயனர் அனுபவத்தை உறுதிப்படுத்த உங்கள் குறியீட்டை செயல்திறனுக்காக மேம்படுத்துவது முக்கியம்.

குறுக்கு-உலாவி இணக்கத்தன்மை

தொடு நிகழ்வு ஆதரவு வெவ்வேறு உலாவிகள் மற்றும் சாதனங்களில் வேறுபடுகிறது. குறுக்கு-உலாவி இணக்கத்தன்மையை உறுதிப்படுத்த உங்கள் குறியீட்டை பல்வேறு உலாவிகள் மற்றும் சாதனங்களில் சோதிப்பது முக்கியம். உலாவி வேறுபாடுகளை அகற்றும் பாலிஃபில்கள் அல்லது நூலகங்களைப் பயன்படுத்துவதைக் கருத்தில் கொள்ளுங்கள்.

சர்வதேசமயமாக்கல் (i18n) பரிசீலனைகள்

தொடு சைகைகளை செயல்படுத்தும்போது, சர்வதேசமயமாக்கலை (i18n) கருத்தில் கொள்ள நினைவில் கொள்ளுங்கள். தொடு ஊடாடல்கள் பொதுவாக மொழி-சார்பற்றவையாக இருந்தாலும், சுற்றியுள்ள UI கூறுகள் மற்றும் பின்னூட்ட வழிமுறைகள் வெவ்வேறு மொழிகள் மற்றும் பிராந்தியங்களுக்கு உள்ளூர்மயமாக்கப்பட வேண்டும்.

உலகளாவிய எடுத்துக்காட்டுகள் மற்றும் பரிசீலனைகள்

பல்வேறு உலகளாவிய சூழல்களில் தொடு சைகைகள் எவ்வாறு வித்தியாசமாகப் பயன்படுத்தப்படலாம் என்பதைக் கருத்தில் கொள்வோம்:

முடிவுரை

தொடு சைகைகள் ஈடுபாடும் உள்ளுணர்வுமிக்க பயனர் அனுபவங்களை உருவாக்குவதற்கான ஒரு சக்திவாய்ந்த கருவியாகும். அடிப்படை தொடு நிகழ்வுகளைப் புரிந்துகொண்டு பொருத்தமான சைகை அங்கீகார நுட்பங்களைப் பயன்படுத்துவதன் மூலம், உங்கள் ஜாவாஸ்கிரிப்ட் திட்டங்களில் பரந்த அளவிலான சைகைகளை நீங்கள் செயல்படுத்தலாம். உங்கள் பயன்பாடு அனைத்து பயனர்களுக்கும் நன்றாக வேலை செய்வதை உறுதிப்படுத்த, அணுகல்தன்மை, செயல்திறன் மற்றும் குறுக்கு-உலாவி இணக்கத்தன்மை ஆகியவற்றைக் கருத்தில் கொள்ள நினைவில் கொள்ளுங்கள். தொழில்நுட்பம் முன்னேறும்போது, புதிய வகை சைகைகள் மற்றும் ஊடாடல்களைக் காண எதிர்பார்க்கலாம், டிஜிட்டல் அனுபவங்களின் முன்னணியில் இருக்க தொடர்ந்து கற்றுக்கொள்ளுங்கள்.