Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Доработка javascript для IE (https://javascript.ru/forum/css-html-internet-explorer/8587-dorabotka-javascript-dlya-ie.html)

villipuk 03.04.2010 10:27

Доработка javascript для IE
 
Доброго всем дня!
У меня есть код яваскрипта, который работает абсолютно во всех браузерах, за исключением конечно же IE!
Не могли бы вы подсказать как его подогнать и под этот злой браузер!?
Вот собственно код:
Код:

this.easyscroll = function(){
       
        // id of the container element
        var id = "myContent";
       
        // navigation buttons text
        var nav = ["вверх", "вниз", "к началу"];
       
        //        id for each navigation button (OPTIONAL)
        var navId = ["btnUp", "btnDown", "btnReset"];

        // movement speed
        var speed = 3;
       
        // desired height of the container element (in pixels)
        var height = 350;
       
        //
        // END CONFIG
        // do not edit below this line (unless you want to of course :) )
        //

        var obj = document.getElementById(id);
       
        obj.up = false;
        obj.down = false;
        obj.fast = false;

        var container = document.createElement("div");
        var parent = obj.parentNode;
        container.id="easyscroll";
        parent.insertBefore(container,obj);
        parent.removeChild(obj);       
       
        container.style.position = "relative";
        container.style.height = height + "px";
        container.style.overflow = "hidden";
        obj.style.position = "absolute";
        obj.style.top = "0";
        obj.style.left = "0";
        container.appendChild(obj);
       
        var btns = new Array();
        var ul = document.createElement("ul");
        ul.id="easyscrollnav";
        for (var i=0;i<nav.length;i++){
                var li = document.createElement("li");
                li.innerHTML = nav[i];
                li.id = navId[i];
                      btns.push(li);
                ul.appendChild(li);
        };
        parent.insertBefore(ul,container);
       
        btns[0].onclick = function(){
                obj.up = true;
                this.className = "over";
        };
        btns[0].onmouseout = function(){
                obj.up = false;
                this.className = "";
        };               
        btns[1].onclick = function(){
                obj.down = true;
                this.className = "over";               
        };
        btns[1].onmouseout = function(){
                obj.down = false;
                this.className = "";
        };               
        btns[0].onmousedown = btns[1].onmousedown = function(){
                obj.fast = true;
        };       
        btns[0].onmouseup = btns[1].onmouseup = function(){
                obj.fast = false;
        };               
        btns[2].onclick = function(){               
                this.className = "over";
        };       
        btns[2].onclick = function(){               
                this.className = "";
        };               
        btns[2].onclick = function(){               
                obj.style.top = "0px";
        };               
               
        this.start = function(){                               
                var newTop;
                var objHeight = obj.offsetHeight;
                var top = obj.offsetTop;
                var fast = (obj.fast) ? 2 : 1;
                if(obj.down){               
                        newTop = ((objHeight+top) > height) ? top-(speed*fast) : top;       
                        obj.style.top = newTop + "px";
                };       
                if(obj.up){               
                        newTop = (top < 0) ? top+(speed*fast) : top;
                        obj.style.top = newTop + "px";
                };
        };       
        obj.interval = setInterval("start()",50);               
               
};


//
// script initiates on page load.
//

this.addEvent = function(obj,type,fn){
        if(obj.attachEvent){
                obj['e'+type+fn] = fn;
                obj[type+fn] = function(){obj['e'+type+fn](window.event );}
                obj.attachEvent('on'+type, obj[type+fn]);
        } else {
                obj.addEventListener(type,fn,false);
        };
};
addEvent(window,"load",easyscroll);

Это код скроллинга, во всех браузерах текст находится в определенных рамках и прокручивается, а в IE он просто выходит за рамки и захламляет весь сайт.

Прошу помощи!


Часовой пояс GMT +3, время: 07:25.