কীভাবে আপনি একটি দ্বি "ট্যাব্বেবল" বানাবেন?


94

আমার বোতামগুলি ডিভ উপাদান রয়েছে এবং আমি সেগুলি তৈরি করতে চাই যাতে ব্যবহারকারীর পক্ষে তাদের কীবোর্ডের ট্যাব কী টিপতে এবং তাদের মধ্যে স্থানান্তরিত করা সম্ভব হয়। আমি তাদের পাঠ্যটি অ্যাঙ্কর ট্যাগগুলিতে মুড়িয়ে দেওয়ার চেষ্টা করেছি তবে এটি কাজ করছে বলে মনে হয় না।

কারো কাছে কি কোন সমাধান আছে?


আপনি বোতামগুলির মধ্যে ট্যাব করতে চান? নাকি ডিভস?
ড্যানক্রাম্ব

4
অ্যাঙ্কারের কোনও hrefবৈশিষ্ট্য থাকলে এটি কাজ করা উচিত। অ্যাক্টিভিয়েটেবল আইটেমটি আসলে কিছু না করলে এটি মার্কআপের উপযুক্ত ব্যবহার হতে পারে বা নাও হতে পারে।
টিম মেডোরা

প্রশ্ন জিজ্ঞাসা করা হয়েছে stackoverflow.com/questions/3059203/tab-index-on-div
ntgCleaner

ধন্যবাদ, href সমাধান সেরা কাজ করে! টিম, আপনি যদি উত্তর সরবরাহ করেন তবে আমি তা গ্রহণ করব।
দ্য বোস

উত্তর:


128

tabindexআপনার divউপাদানগুলিতে বৈশিষ্ট্য যুক্ত করুন ।

উদাহরণ:

<div tabindex="1">First</div>
<div tabindex="2">Second</div>

প্রতি steveax এর মন্তব্য, যদি আপনি ট্যাব অর্ডার যেখানে উপাদান পৃষ্ঠা থেকে থেকে পথভ্রষ্ট করতে না চান, সেট tabindexকরতে 0:

<div tabindex="0">First</div>
<div tabindex="0">Second</div>

4
এনবি: ট্যাবিনডেক্স এইচটিএমএল <5 তে ডিভের কোনও কার্যকর বৈশিষ্ট্য নয়। রেফারেন্স:
নেপস

4
@ ড্যানক্রাম্ব, হ্যাঁ তারা এইচটিএমএল 5
নেপস

45
tabindex=0প্রাকৃতিক ট্যাবিং অর্ডার সঙ্গে গোড়ালি না করার জন্য সম্ভবত সম্ভবত ব্যবহার করা আরও ভাল ।
স্টিভ্যাক্স

7
বিটিডব্লিউ, এটি যদিও এন্টার দিয়ে এটি ক্লিক করতে দেয় না।
সিয়ানটিক

4
এইচএমএন, @ সায়েন্টিক কোনও ধারণা কীভাবে আমরা সেই ডিভিতে ট্যাবড থাকা অবস্থায় এন্টার এ ক্লিক ক্লিক করতে পারি বা কীভাবে ক্লিক করতে পারি? এইচএমএন
জোমার সেভিলজো 12'15

7

আগ্রহীদের জন্য, স্বীকৃত উত্তর ছাড়াও, আপনি যখন এটি ট্যাব করবেন তখন দ্বি শৈলীর পরিবর্তন করতে আপনি নীচের jquery যুক্ত করতে পারেন এবং একটি ক্লিক ট্রিগার করতে এন্টার এবং স্পেসও পরিচালনা করতে পারেন (তারপরে আপনার ক্লিকের হ্যান্ডলার বাকিটি করবে)

$(document).on('focus', '.button',function(){
    $(this).css('border','1px dotted black')
});
$(document).on('keyup', '.button',function(e){
    if(e.which==13 || e.which==32)
        $(this).click()
});

আমি নিশ্চিত যে কেউ এটিকে একটি জকিউ প্লাগইন $ ()। MakeTabStop এ তৈরি করেছেন


4
আমি বিশ্বাস করি যে এখানে প্রস্তাবিত হিসাবে কীআপ ইভেন্টের পরিবর্তে কীডাউন ইভেন্টটি ব্যবহার করা ভাল: ডেভেলপার.মোজিলা.আর.ইন- ইউএস / ডকস / ওয়েব / অ্যাক্সেসিবিলিটি /… । কীডাউন এর একটি আপাত সুবিধা হ'ল আপনি যদি হ্যান্ডার ফাংশন (ক্লিক () কল করার পরে) থেকে মিথ্যা ফিরিয়ে দেন তবে এটি সঠিকভাবে পৃষ্ঠার অন্য কোথাও ইভেন্টটির প্রচার বন্ধ করে দেবে, অন্যদিকে কীআপের সাহায্যে এটি কাজ করে না।
এম কাটজ

স্পেস পাতায়ও স্ক্রোল করতে পারে। আপনার এছাড়াও প্রতিরোধের ডিফল্ট ফাংশনটি ব্যবহার করতে হবে।
বি_লাওশি

3

tabindex="0"আপনি ট্যাববল করতে চান এমন প্রতিটি ডিভিটিতে অ্যাট্রিবিউট যুক্ত করুন । তারপরে সিএসএস সিউডো ক্লাসগুলি ব্যবহার করুন: হোভার এবং: ফোকাস, উদাহরণস্বরূপ অ্যাপটি ব্যবহারকারীকে বোঝাতে যে ডিভিউ ফোকাসে এবং ক্লিকযোগ্য, উদাহরণস্বরূপ। ক্লিকটি পরিচালনা করতে জাভাস্ক্রিপ্ট ব্যবহার করুন।

var doc = document;
var providers = doc.getElementsByClassName("provider");

for (var i = 0; i < providers.length; i++) {
    providers[i].onclick = function() {
      console.log(this.innerHTML);
    };
}
.provider {
    flex: 0 1 auto;
    align-self: auto;
    width: 256px;
    height: 48px;
    margin-top: 12px;
    margin-right: 12px;
    text-align: center;
    line-height: 48px;
    
    text-transform: uppercase;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 10%;
    background-color: gray;
}

.provider:hover{
  cursor: pointer;
}

.provider:focus{
    -webkit-box-shadow: 0px 2px 8px 2px rgba(0,0,0,0.4);
    -moz-box-shadow: 0px 2px 8px 2px rgba(0,0,0,0.4);
    box-shadow: 0px 2px 8px 2px rgba(0,0,0,0.4);
}
<h4>Click in this area first then press tab</h4>
<div id="email" class="provider" tabindex="0">email</div>
<div id="facebook" class="provider" tabindex="0">facebook</div>
<div id="github" class="provider" tabindex="0">github</div>
<div id="google" class="provider" tabindex="0">google</div>
<div id="twitter" class="provider" tabindex="0">twitter</div>


1

Jquery ব্যবহার করে কী প্রেসগুলি দিয়ে উপাদানগুলি ট্যাবলেবল এবং ক্লিকযোগ্যযোগ্য করুন

অনুমান

  • যে সমস্ত উপাদান একটি অ-ট্যাবলেবল, অ-ক্লিকযোগ্যযোগ্য ধরণের এবং ক্লিকযোগ্যযোগ্য হওয়া উচিত তাদের একটি অনক্লিক বৈশিষ্ট্য থাকতে পারে (এটি কোনও শ্রেণি বা অন্যান্য বৈশিষ্ট্যে পরিবর্তিত হতে পারে)
  • সমস্ত উপাদান একই ধরণের হয়; আমি ডিভ ব্যবহার করব।
  • আপনি jquery ব্যবহার করছেন

নমুনা এইচটিএমএল:

...

<div onclick="clicked(this)">Button 1</div>
<div onclick="clicked(this)">Button 2</div>
<div onclick="clicked(this)">Button 3</div>

...

জিকিউরি কোড: পৃষ্ঠাটি লোড হয়ে যাওয়ার পরে এটি কোডটি চলবে। এটি আপনার HTML পৃষ্ঠায় চালানো দরকার।

$(()=>{
    // make divs with an onclick attribute tabbable/clickable
    $('div[onclick]')
        .attr('tabindex', '0')                     // Add tab indexes
        .keypress((evt)=>{
            var key = evt.key;
            evt.preventDefault();                  // Ensure all default keypress
                                                   // actions are not used
            if (key === ' ' || key === 'Enter') {  // Only send click events for Space
                                                   // or Enter keys
                evt.currentTarget.click();         // Run the click event for element
            }
        });
});

আপনি এখানে একটি কাজের উদাহরণ খুঁজে পেতে পারেন ।

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