স্ক্রোলিং এবং সিএসএস স্ক্রোল স্নেপিংয়ের জন্য কীবোর্ড ইভেন্টগুলি একই সাথে ব্যবহার করার সময় সংঘাত


11

আপনি অনুভূমিকভাবে টিপে আমার ডেমো পৃষ্ঠা স্ক্রোল করতে পারবেন Space Bar, Page Up / Page Downএবং Left Arrow / Right Arrowকি। আপনি একটি মাউস বা ট্র্যাকপ্যাড দিয়ে স্ক্রোল স্ন্যাপ করতে পারেন।

তবে কেবল একটি বা অন্যটি কাজ করে।

কিবোর্ড ইভেন্ট এবং সিএসএস স্ক্রোল স্ন্যাপিং সহাবস্থান করতে পারে এমন কোন উপায় আছে? আমি কী মিস করছি? যে কোনও সহায়তা সত্যিই প্রশংসিত হবে, যেহেতু আমি এক সপ্তাহ ধরে এই সমস্যাটির সাথে লড়াই করছি।


কোডপেনে আমার ডেমোটি দেখুন

(কীবোর্ড শর্টকাটগুলি কাজ বন্ধ হয়ে যায় তা দেখতে দয়া করে স্ক্রোল স্নেপিং এফেক্টটি সক্ষম করতে দয়া করে সিএসএস কোডের প্রাসঙ্গিক টুকরোটি অস্বীকার করুন))



দ্রষ্টব্য: আমি মসৃণ স্ক্রোলিং অ্যানিমেশন অর্জনের জন্য অ্যানিমেট প্লাস নামে একটি ছোট এবং মার্জিত মডিউল ব্যবহার করছি ।


আপডেট: @ কোস্তজার সমাধান ক্রোমে কাজ করে তবে ম্যাক বা আইওএসের সাফারিতে নয় এবং এটি সাফারিতে কাজ করে আমার পক্ষে এটি অত্যন্ত গুরুত্বপূর্ণ।

উত্তর:


3

আমার অনুমান সেখানে নেই, CSS জাভাস্ক্রিপ্ট ওভাররাইট করে। তবে আপনি কেবল চাকা ইভেন্টলিস্টার যুক্ত করতে পারেন:

window.addEventListener("wheel", function() {
    if(event.deltaY > 0){
      animate({
        easing: "out-quintic",
        change: animateScroll(1)
      })      
    }
      if(event.deltaY < 0){
      animate({
        easing: "out-quintic",
        change: animateScroll(-1)
      })      
    }      
});

https://codepen.io/kostjaaa/pen/NWWVBKd


আপনি দয়া করে কোডপেনে একটি কাঁটাচামড়ার লিঙ্ক পোস্ট করতে পারেন, কারণ আমি আপনার সমাধানটি কাজ করতে পারি না? ধন্যবাদ।
Tzar

দুঃখিত, কিন্তু এটি কাজ করে না। আপনি কি এটা চেষ্টা করেছেন?
Tzar

হ্যাঁ ক্রোম সংস্করণ 78.0.3904.108 (64bit) সঙ্গে এটি চেষ্টা করেছি
kostja

আপনার পক্ষে কি কাজ করছে না? স্ন্যাপ নাকি আদৌ স্ক্রোল? কীবোর্ড বিটিডাব্লু ব্যবহার করার আগে আপনাকে ভিউতে ক্লিক করতে হবে। কী-বোর্ডটি স্ক্রোলের মতো হোভারের সাথে মিলিত হয় না।
কোস্টজা

আমি কেবল এটি ক্রোমে পরীক্ষা করেছি, এবং এটি কার্যকর হয়! তবে এটি ম্যাক বা আইওএসের জন্য সাফারিটিতে কাজ করে না, যা এই প্রকল্পের জন্য আমার পক্ষে আরও গুরুত্বপূর্ণ। আপনি কি জানেন কারণ কি হতে পারে?
Tzar

0
window.onload = () => {
  window.addEventListener("wheel", () => {
    const direction = event.deltaY > 0 ? 1 : event.deltaY < 0 ? -1 : false;

    if (direction) {
      animate({
        easing: "out-quintic",
        change: animateScroll(direction)
      });
    }
  });

  document.body.onkeydown = event => {
    switch (event.key) {
      case " ": // Space Bar
      case "PageDown":
      case "ArrowRight": {
        animate({
          easing: "out-quintic",
          change: animateScroll(1)
        });
        break;
      }
      case "PageUp":
      case "ArrowLeft": {
        animate({
          easing: "out-quintic",
          change: animateScroll(-1)
        });
        break;
      }
    }
  };
};    

এই কাজ করা উচিত.

https://codepen.io/JZ6/pen/XWWQqRK

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.