2013-03-05 6 views
7

करने के लिए पिछले मैं इस स्लाइडर (प्लग इन का उपयोग नहीं करना चाहता था) बनाया (छवि), यह फिर से पहली स्लाइड पर वापस चला जाता है। अभी, यह बस। छुपाएं और अंत तक दिखाएं और यदि कोई छवि नहीं है तो यह फिर से शुरू नहीं होती है।jQuery स्लाइडर पहला संक्रमण

कोई मुझे के साथ एक कोड सुझाव को स्लाइडर की लम्बाई (उस पर छवियों की संख्या) लेने के लिए मेरी सहायता कर सकता है और यदि यह अंतिम स्लाइड (छवि) है, तो पहले वापस चला जाता है स्लाइड (छवि) ... एक चक्र की तरह।

संपादित करें: स्लाइडर मार्कअप

<div class="small_box top_right slider"> 
     <img class="fittobox" src="img/home10.jpg" alt="home10" width="854" height="592"> 
     <img class="fittobox" src="img/home3.jpg" alt="home3" width="435" height="392"> 
     <img class="fittobox" src="img/home4.jpg" alt="home4" width="435" height="392"> 
    </div> 
+1

जब तक मैंने कुछ अनदेखा नहीं किया: '_s.slide_active ++; _s.slide_active = _s.slide_active% this.slide.length; ' – dualed

+0

लेकिन मेरे पास पहले से _s.slide_active ++ है; समय-समय पर, इसे दोहराना क्यों? –

+0

मेरी समझ के अनुसार आपके पास अलग-अलग स्लाइड एक दूसरे को ओवरलैप करते हैं। आप नीचे स्लाइड दिखाने के लिए एक समय अवधि में एक अनुक्रम में स्लाइड्स छुपा रहे हैं। आखिरी स्लाइड के मामले में आपको कुछ स्लाइड के बाद पहली स्लाइड दिखाई देनी चाहिए और जब आप लेनदेन करते हैं (पहली स्लाइड पूरी तरह से दिखाई देती है) तो सभी स्लाइड नीचे दिखाई दें और उसी अनुक्रम को दोहराएं – Tarun

उत्तर

1

Created a fixed version for you here:

_s.slide_active++; 
_s.slide_active %= length; 
+0

प्रभाव को स्पष्ट रूप से स्पष्ट करने के लिए कि यह सही ढंग से लूपिंग है (मेरे पास कुछ "डुप्लिकेट छवि समस्याएं हैं"), [यह आपके उत्तर के आधार पर एक बेहतर उदाहरण हो सकता है] (http://jsfiddle.net/gmP6b/)। – MarcoK

+1

@ मार्कोके अच्छा बिंदु - समान चौड़ाई/ऊंचाई की छवियों के लिए अलग-अलग विषयों को निर्दिष्ट करता है। – Barney

+0

यह सही है, बहुत बहुत धन्यवाद! जैसे ही सिस्टम मुझे देता है मैं इनाम दूंगा :) –

1

इस Fiddle लिंक पर एक नजर डालें, यह आप एक चक्रीय way.If में स्लाइडर बनाने में मदद करेंगे स्लाइडर अंतिम छवि इसे फिर से शुरू कर देंगे पहुंचता है पहली छवि से।

var index = $selector.index(); 
if (index == (length - 1)) { 
    $('img').first().removeClass('invisible').addClass('visible'); 
} 

मुझे आशा है कि इससे आपको और मदद मिलेगी। शुभकामनाएं।

+0

पर संपादित किया है, लेकिन यह आपके स्लाइडर के साथ काम करता है ... मेरे कोड के साथ नहीं। –

0

आपको लंबाई -1 के बाद 0 तक पहुंचने की आवश्यकता है। ऐसा करने के लिए एक आसान तरीका सापेक्ष लंबाई काम करने के लिए है:

function slider(sel, intr , i){ 
    ... 
    this.count = this.selector.children().length; 
    this.run(); 
} 

slider.prototype.run = function(){ 
    var _s = this; 
    this.slide[this.slide_active].show(); 
    setTimeout(function(){ 
     _s.slide[_s.slide_active].hide() 
     if(_s.slide_active == this.count) 
      _s.slide_active = 0; 
     else 
      _s.slide_active++; 
     _s.run(); 
    }, interval); 
} 
+0

मैंने यह कोड डाला लेकिन पहली छवि "कूद" रखती है, दूसरी स्लाइड में कोई बदलाव नहीं ... धन्यवाद –

0

परीक्षण किया लेकिन उपयोगी आशा नहीं।

यह करने के लिए सबसे आसान तरीका है 1 जोड़ें, फिर कुल लंबाई के मापांक (%) के माध्यम से चलाते हैं, मैं _s.slide_active मिलता है, एक सरल गणित आपरेशन जहां आप वर्तमान

_s.slide_active++; 

बजाय है चलाने के लिए है - जो शेष देता है:

_s.slide_active = (_s.slide_active + 1) % _s.slide.length; 
+0

यह अभी भी अंतिम छवि –

+0

पर बदल जाता है 'if (_s.slide_active == (this.count- 1)) 'और इसका परीक्षण करें .. –

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