2012-12-04 14 views
8

के लिए कुंजीकोड अक्षम करें मैंने एक ऑनकीडाउन फ़ंक्शन बनाया है जो क्षैतिज रूप से ली तत्वों को ब्लॉक करता है, यह पूरी तरह से चलता है लेकिन मुझे आवश्यकता है कि बाएं और दाएं कुंजी को ध्यान में रखते हुए पहले और अंतिम ली ब्लॉक अक्षम हो जाएं।1 और अंतिम तत्व

कोई भी एक कोरेंट तरीका सुझा सकता है? अग्रिम में Thanx !!!

$(document).ready(function() { 
    var winht = $(window).height(); 
    var contUl = $('.content ul').children('li').size(); 
    var widLi = $('.content ul li').width(); 
    var contUlAndLI = contUl * widLi; 
    var leftIndex = $('.content ul').css('left','0'); 
    $('.content ul').width(contUlAndLI); 
    $('#frame').height(winht); 

$("body").keydown(function(e) { 

    if(e.keyCode == 37) { // left 
    $(".content ul").animate({ 
     left: "-=980" 
    }); 
    } 
    else if(e.keyCode == 39) { // right 
    $(".content ul").animate({ 
     left: "+=980" 
    }); 
    } 

}); 

if(leftIndex == 0){ 

    $("body").keydown(function(e) { 

     if(e.keyCode == 39){ // right 
      //event.preventDefault(); 
      return false; 
      } 

     }); 
    } 

}); 

काम कर रहे संदर्भ jsfiddle

उत्तर

1

मैं एक काउंटर मूल्य जिनमें से प्रत्येक बार जब उपयोगकर्ता प्रेस बाईं या दाईं ओर चेक किया गया है का उपयोग करके यह किया है। काउंटर ul टैग के अंदर li तत्वों की संख्या है।

var ulCount = $('.content li').length - 1; 
var i = 0; 

तब ही एनीमेशन चलाने अगर हम काउंटर के मूल्यों के भीतर कर रहे हैं:

if(e.keyCode == 37) { // left 
    if (i < ulCount) { 
     i++; 
     $(".content ul").animate({ 
      left: "-=980" 
     }); 
    } 
} 
else if(e.keyCode == 39) { // right 
    if (i > 0) { 
     i--; 
     $(".content ul").animate({ 
      left: "+=980" 
     }); 
    } 
} 

मैं jsFiddle भी अपडेट किया गया।

+0

स्लाइडिंग क्षेत्र 980 फ़िक्स गतिशील हो सकता है? मेरा मतलब खिड़की चौड़ाई का आकार है? – matthewb

+1

@matthewb: निश्चित रूप से, अद्यतन [jsFiddle] देखें (http://jsfiddle.net/R9cmH/14/)। – Antti29

संबंधित मुद्दे