|
|||||||
| Welkom op het F&L Forum Portal. |
|
Beste bezoeker, Welkom op ons forum, kom verder en hou het niet alleen bij een kijkje. Het registreren voor dit forum is namelijk een fluitje van een cent en dan kun je gezellig meepraten over allerlei onderwerpen. Als je dan toch bezig bent, neem dan meteen even de veelgestelde vragen door. |
![]() |
|
|
Discussietools |
|
Beste mede webmasters
Url: http://www.steven-solutions.nl/test/ op bovenstaande url vind je de website waar ik mee bezig ben. De slider doet het zeer goed, alleen als je gaat kijken in FF dan zie je dat hij op een gegevend moment terug slide naar de eerste voorbeeld, in IE doet hij dit niet (je kunt dus zelf even testen). jquery-1.3.2.js (code is te lang dus download als je wilt) Code:
http://www.steven-solutions.nl/test/js/jquery-1.3.2.js Code:
(function($){
$.fn.xmlSlider = function(options) {
var
defaults = {xmlFile:'',
width:500,
height:375,
speed:3000,
timeout:5000,
toggleBtn:false,
navBtn:false,
play:'Play',
pause:'Pause',
backward:'Backward',
forward:'Forward',
imageFail:''
},
settings = $.extend({}, defaults, options),
$this = this;
//get XML
$.ajax({
type: "GET",
url: settings.xmlFile,
dataType: "xml",
async : false,
error: function(){
if(typeof(console) !== 'undefined' && console != null)
console.log("Error: XML file URL is not valid!");
},
success: function(xml){
//append divs
$this.append("<div id='xsBg'></div><div id='xsCaptions'><ul></ul></div>").find('ul');
$this.append("<div id='xsImages'><ul></ul></div>").find('ul');
//retrive info
var xsUrl,xsLink,xsTitle,xsDesc;
$(xml).find('info').each(function(){
xsUrl = $(this).find('img').text();
xsLink = $(this).find('link').text();
xsTitle = $(this).find('title').text();
xsDesc = $(this).find('desc').text();
$("#xsImages ul").append("<li><a href='"+xsLink+"' target='_blank'><img src='"+xsUrl+"' alt='"+xsTitle+"' /></a></li>");
$("#xsCaptions ul").append("<li><a href='"+xsLink+"' target='_blank'><h1>"+xsTitle+"</h1></a><p>"+xsDesc+"</p></li>");
});
//begin
var xsCount = $(xml).find('info').size();
if($(xml).find('info').size() > 0){
//declare some vars & bind events
var calcImg = settings.width*(xsCount-1)*-1,
calcInfoHeight = $('#xsCaptions').height(),
calcInfo = calcInfoHeight*(xsCount-1)*-1,
RE = /^\d*$/,
mouseOut = true,
play = true;
//mouse events
$this.mouseover(function(){mouseOut = false;});
$this.mouseout(function(){mouseOut = true;});
//decalre toggle
if(settings.toggleBtn){
$this.append('<div id="xsToggle">'+settings.pause+'</div>');
$('#xsToggle').click(function(){
if(play){
play = false;
$('#xsToggle').html(settings.play);
}else{
play = true;
$('#xsToggle').html(settings.pause);
}
});
}
//decalre left and right mav
if(settings.navBtn){
$this.append('<div id="xsLeft">'+settings.backward+'</div><div id="xsRight">'+settings.forward+'</div>');
$('#xsLeft').html(settings.backward).click(function(){
play = false;
$("#xsImages ul:not(:animated)").animate({'left': ($("#xsImages ul").position().left == 0 ) ? calcImg : "+="+settings.width }, settings.speed);
$("#xsCaptions ul:not(:animated)").animate({'top': ($("#xsCaptions ul").position().top == 0 ) ? calcInfo : "+="+calcInfoHeight }, settings.speed,function(){
play = true;
});
});
$('#xsRight').html(settings.forward).click(function(){
play = false;
$("#xsImages ul:not(:animated)").animate({'left': ($("#xsImages ul").position().left == calcImg ) ? 0 : "-="+settings.width }, settings.speed);
$("#xsCaptions ul:not(:animated)").animate({'top': ($("#xsCaptions ul").position().top == calcInfo ) ? 0 : "-="+calcInfoHeight }, settings.speed,function(){
play = true;
});
});
}
//dress them up
$('#xsCaptions,#xsBg').css({'top':(settings.height-calcInfoHeight)});
$('#xsCaptions li,#xsBg').css({'height':calcInfoHeight});
$('#xsImages ul').css({'width': settings.width*xsCount});
//Determine the speed
if(!RE.test(settings.timeout))
settings.timeout = 3000;
//movment
var slideTheme = function(){
if(mouseOut && play){
$("#xsImages ul:not(:animated)").animate({'left': ($("#xsImages ul").position().left == calcImg ) ? 0 : "-="+settings.width }, settings.speed);
$("#xsCaptions ul:not(:animated)").animate({'top': ($("#xsCaptions ul").position().top == calcInfo ) ? 0 : "-="+calcInfoHeight }, settings.speed ,
function(){
setTimeout(slideTheme, settings.timeout);
});
}else
setTimeout(slideTheme, settings.timeout);
};
//just at the 1st time
imgCount = 0;
$("#xsImages img").load(function(){
imgCount++;
if (imgCount == xsCount)
setTimeout(slideTheme, settings.timeout);
}).error(function(){
this.attr('src',settings.imageFail);
});
}else
if(typeof(console) !== 'undefined' && console != null)
console.log("Error: XML file is not valid!");
}
});
};
})(jQuery);
Code:
<script src="js/jquery-1.3.2.js" type="text/javascript"></script> <script src="js/xmlSlider.js" type="text/javascript"></script> Code:
<script type="text/javascript">
$(document).ready(function() {
$("#slider").xmlSlider({'xmlFile':"sample.xml", 'width':890,'height':275 ,
'toggleBtn':false,
'navBtn':false,
'play':"<img src='images/play.png' alt='play'/>",
'pause':"<img src='images/pause.png' alt='pause'/>",
'backward':"<img src='images/backward.png' alt='backward'/>",
'forward':"<img src='images/forward.png' alt='forward'/>"
});
});
</script>
Alles werkt verder ook met FF alleen in IE draait hij na het laatste plaatje dus niet terug naar begin, de tekst er onder wel maar de plaatjes niet. Wie weet waar dit aan ligt?
__________________
Style Sheet Coding is something different than html but it works the same!!! |
||
![]() |
| Er zijn 1 actieve gebruikers die momenteel deze topic bekijken (0 leden en 1 gasten) | |
| Discussietools | |
|
|