views:

23

answers:

1

Hiya All,

Strange issue i am having while working on this in the bottom right hand corner is a history section with a scrollable section that moved right or left. On load it picks a random number and moves to it.

Problem is that on load (without moving) it loads in the wrong position, and on moving with the api it moves to the wrong offset (right image just not positioned correctly). This issue only happens in Webkit browsers (Safari and Chromium)

Any help would be greatly appreciated as i cant seem to get to the bottom of this IE and FF behave well strangely! :(

JavaScript:

$(document).ready(function(){
    $('.timeline-container').scrollable({circular: true, next: ".timeline-next", prev: ".timeline-prev"});
    var api_timeline = $(".timeline-container").data("scrollable");
    //console.info(api_timeline.getSize());
    var timeline_random_index = Math.floor( Math.random() * ( api_timeline.getSize()+1) )+1;
    //console.info(timeline_random_index);
    api_timeline.move( timeline_random_index, 1000 );
});

HTML

<div class="timeline-container">
    <div class="timeline-items">
        <div class="timeline-item">
            <img src="http://identica.local/wp-content/uploads/2010/10/timeline_thumb01.png" />
            <p><span class="timeline-item-date">1996</span> Russian Flag carrier Aeroflot created</p>
        </div>              
        <div class="timeline-item">
            <img src="http://identica.local/wp-content/uploads/2010/10/timeline_thumb02.png" />
            <p><span class="timeline-item-date">1997</span> Universal Studios created</p>
        </div>              
        <div class="timeline-item">
            <img src="http://identica.local/wp-content/uploads/2010/10/timeline_thumb03.png" />
            <p><span class="timeline-item-date">1998</span> Vodafone brand refresh</p>
        </div>              
        <div class="timeline-item">
            <img src="http://identica.local/wp-content/uploads/2010/10/timeline_thumb04.png" />
            <p><span class="timeline-item-date">1998</span> Wembley Stadium identity created</p>
        </div>              
        <div class="timeline-item">
            <img src="http://identica.local/wp-content/uploads/2010/10/timeline_thumb05.png" />
            <p><span class="timeline-item-date">2000</span> Jonnie Walker brand created</p>
        </div>              
    </div>              
</div>

CSS

.timeline-container {overflow:hidden; width: 245px;position:relative; min-height: 170px;height: 170px !important;}
.timeline-container .timeline-items { width:20000em; position:absolute;}
.timeline-container .timeline-item {float:left;text-align:center;position: relative;}
.timeline-container .timeline-items p { font-weight: normal; font-size: 13px; margin-bottom:0;}
.timeline-container .timeline-items span { font-weight: bold;}

UPDATE

Really strange, i have set this up on jsFiddle and it runs correctly in all browsers. with exactly the same code. Not it is more confusing. Something "else" on the page must be effecting it.

UPDATE 2

I have just "fixed" it in a way, but it is a dirty little hack - not ideal but works:

$(document).ready(function(){
    $('.timeline-container').scrollable({circular: true, next: ".timeline-next", prev: ".timeline-prev"});
    var api_timeline = $(".timeline-container").data("scrollable");
    var timeline_random_index = Math.floor( Math.random() * ( api_timeline.getSize()+1) )+1;
    var timeline_random_index_pixles = timeline_random_index * 245 * -1;
    $(".timeline-items").css("left", timeline_random_index_pixles+"px")
});
A: 

Fixed by using custom positioning rather than scrollables functions on load.

$(document).ready(function(){
    $('.timeline-container').scrollable({circular: true, next: ".timeline-next", prev: ".timeline-prev"});
    var api_timeline = $(".timeline-container").data("scrollable");
    var timeline_random_index = Math.floor( Math.random() * ( api_timeline.getSize()+1) )+1;
    var timeline_random_index_pixles = timeline_random_index * 245 * -1;
    $(".timeline-items").css("left", timeline_random_index_pixles+"px")
});
Shadi Almosri