parent
							
								
									72d2d016ea
								
							
						
					
					
						commit
						df17531499
					
				@ -0,0 +1,129 @@
 | 
				
			||||
/**
 | 
				
			||||
 * This file goes along with slides.css
 | 
				
			||||
 */
 | 
				
			||||
if(!jx){
 | 
				
			||||
    var jx = {}
 | 
				
			||||
}
 | 
				
			||||
 | 
				
			||||
jx.slides = {}
 | 
				
			||||
/**
 | 
				
			||||
 * 
 | 
				
			||||
 * @params args:
 | 
				
			||||
 *      main_id     main panel
 | 
				
			||||
 *      nav_id      control panel
 | 
				
			||||
 *      nav_left    left button
 | 
				
			||||
 *      nav_right   right button
 | 
				
			||||
 *      data        data    (array of items)
 | 
				
			||||
 *      renderer    point to the function that will render an item in the data
 | 
				
			||||
 */
 | 
				
			||||
jx.slides.instance = function(args){
 | 
				
			||||
    this.main_id    = args.main_id
 | 
				
			||||
    this.nav_id     = args.nav_id
 | 
				
			||||
    this.data       = args.data 
 | 
				
			||||
    this.nav_left   = args.nav_left;
 | 
				
			||||
    this.nav_right  = args.nav_right;
 | 
				
			||||
    this.enable_auto= args.auto == true
 | 
				
			||||
    this.handler    = null;
 | 
				
			||||
    this.page   = {index:0,count:0};
 | 
				
			||||
    this.left   = function(){
 | 
				
			||||
        var pane = jx.dom.get.children(this.main_id)[0]
 | 
				
			||||
        var width = $('#'+this.main_id).width()
 | 
				
			||||
        // var page = jx.dom.get.attribute('controls','info')
 | 
				
			||||
        var i = this.page.index
 | 
				
			||||
        var N = this.page.count
 | 
				
			||||
        
 | 
				
			||||
        i = ((i+1) < N)? (i+1):0
 | 
				
			||||
        
 | 
				
			||||
        
 | 
				
			||||
        $(pane).animate({'margin-left':-(width+4)*i})
 | 
				
			||||
        this.page.index = i
 | 
				
			||||
        // jx.dom.set.attribute(this.nav_id,'info',page)
 | 
				
			||||
            
 | 
				
			||||
    }
 | 
				
			||||
    this.right  = function(){
 | 
				
			||||
        var pane = jx.dom.get.children(this.main_id)[0]
 | 
				
			||||
        var width = $('#'+this.main_id).width()
 | 
				
			||||
        // var page = jx.dom.get.attribute('controls','info')
 | 
				
			||||
        
 | 
				
			||||
        var i = this.page.index
 | 
				
			||||
        var N = this.page.count
 | 
				
			||||
        // alert(N)
 | 
				
			||||
        i = ((i-1) > -1)?(i-1):(N-1) ;
 | 
				
			||||
        
 | 
				
			||||
        $(pane).animate({'margin-left':-width*i})
 | 
				
			||||
        this.page.index = i
 | 
				
			||||
        // jx.dom.set.attribute(this.nav_id,'info',page)        
 | 
				
			||||
    }
 | 
				
			||||
    
 | 
				
			||||
    this.stop   = function(){
 | 
				
			||||
        if(this.handler != null){
 | 
				
			||||
            clearInterval(this.handler)
 | 
				
			||||
            this.handler = null
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
    this.auto   = function(){
 | 
				
			||||
        if(this.handler == null){
 | 
				
			||||
            this.handler = setInterval(this.right,2000)        }
 | 
				
			||||
    }
 | 
				
			||||
    this.bind   = function(){
 | 
				
			||||
        var _ileft = jx.dom.get.instance(this.nav_left)
 | 
				
			||||
        _ileft.onclick = this.left
 | 
				
			||||
        _ileft.onmouseover = this.stop
 | 
				
			||||
        
 | 
				
			||||
        var _iright = jx.dom.get.instance(this.nav_left)
 | 
				
			||||
        _iright.onclick = this.left
 | 
				
			||||
        _iright.onmouseover = this.stop
 | 
				
			||||
        if(this.enable_auto){
 | 
				
			||||
            _ileft.onmouseout = this.auto
 | 
				
			||||
            _iright.onmouseout = this.auto
 | 
				
			||||
        }
 | 
				
			||||
        
 | 
				
			||||
    }
 | 
				
			||||
/**
 | 
				
			||||
 * This section will handle the initialization 
 | 
				
			||||
 */    
 | 
				
			||||
    
 | 
				
			||||
    var pane = jx.dom.get.instance('DIV')
 | 
				
			||||
    var width   = $('#'+this.main_id).width()
 | 
				
			||||
    var height  = $('#'+this.main_id).height()    
 | 
				
			||||
    var N = data.length
 | 
				
			||||
    this.page = {index:0,count:N}
 | 
				
			||||
 | 
				
			||||
    // jx.dom.set.attribute(this.nav_id,"info",info)
 | 
				
			||||
    // jx.dom.set.attribute("controls","page.count",N)
 | 
				
			||||
 | 
				
			||||
    // $(pane).width(width*N)
 | 
				
			||||
    $(pane).css("width",width*N)
 | 
				
			||||
    $(pane).height(height)
 | 
				
			||||
    $(pane).css('overflow','hidden')
 | 
				
			||||
 | 
				
			||||
    jx.dom.set.value(this.main_id,'')
 | 
				
			||||
    jx.dom.append(this.main_id,pane)
 | 
				
			||||
    jx.utils.patterns.visitor(this.data,function(item){
 | 
				
			||||
        var frame = jx.dom.get.instance('DIV')
 | 
				
			||||
        var picframe = jx.dom.get.instance('DIV')
 | 
				
			||||
        var image = jx.dom.get.instance('IMG')
 | 
				
			||||
        var info = jx.dom.get.instance('DIV')
 | 
				
			||||
 | 
				
			||||
        image.src = item.src
 | 
				
			||||
        
 | 
				
			||||
        info.innerHTML = item.text
 | 
				
			||||
        info.className = 'text'
 | 
				
			||||
        picframe.appendChild(image)
 | 
				
			||||
        picframe.className = 'pic-frame'
 | 
				
			||||
        // $(picframe).height(height-148)
 | 
				
			||||
        $(frame).css("height",height)
 | 
				
			||||
        $(frame).css("width",width)
 | 
				
			||||
        $(frame).css('overflow','hidden')
 | 
				
			||||
        frame.appendChild(picframe)
 | 
				
			||||
        frame.appendChild(info)
 | 
				
			||||
        pane.appendChild(frame)
 | 
				
			||||
        $(frame).width(width)
 | 
				
			||||
        $(frame).height(height)
 | 
				
			||||
        frame.className = 'slides left'
 | 
				
			||||
 | 
				
			||||
    })
 | 
				
			||||
    if(this.enable_auto){
 | 
				
			||||
        this.auto()
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue