В смысле странный ? Только разбираюсь с javascript, в нём голову сломать можно с его ООП, а точнее с созданием обьектов. Их если не ошибаюсь вариантов 3-4. Пробывал написать отдельную тестовую для установки прозрачности, при малых разрешениях слайдера почему то работает нормально, но вот если поставить требуемую 1000х350 px всё идёт в разнос, начинаются траблы. Также заметил что IE9 также стала поддерживать style.opasity , до этого для прозрачности использовали style.filter ниже выкладываю полный пример кода: slider.js var ShowImg = 1; var alpha = 0; var newSlider; var tmShow; var type = 1; function Slider(){ var slImageUrl = new Array(); var slData = new Array(); var slUrl = new Array(); var Count = 0; this.Create = Create; this.GetImageUrl = GetImageUrl; this.GetData = GetData; this.GetUrl = GetUrl; this.GetCount = GetCount; function Create(ImageUrl, Data, Url) { Count++; slImageUrl[Count] = new Image(); slImageUrl[Count].src = ImageUrl; slData[Count] = new String(); slData[Count] = Data; slUrl[Count] = new String(); slUrl[Count] = Url; } function GetImageUrl(num){ return slImageUrl[num].src; } function GetData(num){ return slData[num]; } function GetUrl(num){ return slUrl[num]; } function GetCount(){ return Count; } } function Start() { newSlider = new Slider(); newSlider.Create('img/1.jpg','jhcgksdjhfg','1.html'); newSlider.Create('img/2.jpg','jhcgksdjhfg','2.html'); newSlider.Create('img/3.jpg','jhcgksdjhfg','3.html'); setInterval('Show();',10000); SetImage(); Show(); } function SetImage(){ document.getElementById("img_slider").style.backgroundImage = "url('" + newSlider.GetImageUrl(ShowImg) + "')"; document.getElementById("img_slider").style.opacity = 0; document.getElementById("img_slider").style.filter = "alpha(opacity=0)"; } function Show(){ tmShow = setTimeout('Show();',100); document.getElementById("img_slider").style.opacity = alpha; document.getElementById("img_slider").style.filter = "alpha(opacity=" + alpha +")"; if (type == 1) { alpha += 0.1; if (alpha > 1 ){type = 2; clearTimeout(tmShow);} } if (type == 2) { alpha -= 0.1; if (alpha < 0 ) {type = 1; ShowImg ++; if (ShowImg > newSlider.GetCount() ){ShowImg = 1;} SetImage(); } } }