2013-08-13 6 views
5

पर jQuery चिकना स्क्रॉल मैंने एंकरों को स्क्रॉल करने के लिए कई अलग-अलग कोडों का प्रयास किया है। मुझे वह काम नहीं मिल रहा है जो काम करता है। इसे लंबवत, क्षैतिज और तिरछे स्क्रॉल करने में सक्षम होना चाहिए। मुझे दूसरों के साथ एक और समस्या यह है कि वे कई लक्ष्यों के साथ काम नहीं कर रहे हैं। मैं चाहता हूं कि यह स्क्रिप्ट को संपादित किए बिना पेज पर किसी भी एंकर पर स्क्रॉल करने में सक्षम हो।किसी भी एंकर

Fiddle

इस कोड है कि इस सबसे करीब से मेल खाता है, मैं इसे काम करने के लिए प्राप्त नहीं कर सकते:

var $root = $('html, body'); 
$('a').click(function() { 

    $root.animate({ 

     scrollLeft: $($.attr(this, 'href')).offset().left, 
     scrollTop: $($.attr(this, 'href')).offset().top 

    }, 500); 

    return false; 
}); 

यह JSFiddle में काम करता है, लेकिन जब मैं अपने पृष्ठ पर डाल दिया यह काम नहीं करता

यह डुप्लिकेट क्यों नहीं है? यह एक बहु-दिशा स्क्रिप्ट है जो एकल तत्वों को लक्षित नहीं करती है। यह पृष्ठ पर सभी लिंक पर लागू होता है।

+0

[http://stackoverflow.com/questions/7717527/jquery-smooth-scrolling-when-clicking-an- एंकर-लिंक] (http://stackoverflow.com/questions/7717527/jquery-smooth-scrolling-when-clicking-an-anchor-link) – rps

+0

@rps मैंने इन्हें देखा लेकिन उनमें से कोई भी काम नहीं किया। – b2550

+0

http://kadaj.github.io/tuts/smooth-scroll/smooth-scroll.html – boring

उत्तर

1

मैं काम कर सकते हैं नहीं मिल अपने jsfiddle करने के लिए, देखें कि क्या यह काम करता है:

$(function(){ 
    $('a').on({ 
     click:function (e) { 
     e.preventDefault(); 
     var root = $("html, body"); 
     var target = $(this).attr("href"); 
     root.animate({ 
      scrollLeft: $(target).offset().left, 
      scrollTop: $(target).offset().top 
     }, 500); 
     } 
    }); 
)}; 
+0

में अंदर हैं या नहीं, मुझे लापता अर्धविराम की त्रुटि मिल रही है और यह पता नहीं लगा सकता है कि क्यों। यह भी काम नहीं करता है। :( – b2550

+0

विषम - मुझे कोई भी लापता अर्धविराम दिखाई नहीं दे रहा है। – peterchon

+0

मैंने इसे jsfiddle पर आजमाया और यह ठीक काम करता है। Http://jsfiddle.net/B3F25/6/ – peterchon