Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Torlof
1

Необходимо разобраться в скрипте!

19.06.2011, 16:08. Показов 600. Ответов 3
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане! Необходимо разобраться со скриптом, проще говоря понять что и как выполняют функции данного скрипта.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<script language="JavaScript" type="text/javascript">
 
function lib_bwcheck(){ //Browsercheck (needed)
    this.ver=navigator.appVersion
    this.agent=navigator.userAgent
    this.dom=document.getElementById?1:0
    this.opera5=this.agent.indexOf("Opera 5")>-1
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
    this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
    this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
    this.ie=this.ie4||this.ie5||this.ie6
    this.mac=this.agent.indexOf("Mac")>-1
    this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
    return this
}
var bw=new lib_bwcheck()
 
 
/*** variables to configure... ***/
 
var numScrollPages = 3         //Set the number of pages (layers) here. Add and remove the pages in the body too. The first layer is called dynPage0, the second is dynPage1, and so on.
var transitionOut = 1;         //The 'out' effect... 0= no effect, 1= fade
var transitionIn = 2;          //The 'in' effect... 0= no effect, 1= fade, 2= slide
var slideAcceleration = 0.2;   //If you use the slide animation, set this somewhere between 0 and 1.
var transitionOnload = 1       //Use the 'in' transition when the page first loads? If you want the transition fx only when the links are clicked, you can set it to 0.
 
// NOTE: if you change the position of divScroller1 from absolute to relative, you can put the scroller in a table.
// HOWEVER it will no longer work in netscape 4. If you wish to support netscape 4, you have to use absolute positioning.
 
// Please note that there are no effects available in ns4 and ie4, or explorers on the Mac!
 
/*** There should be no need to change anything beyond this. ***/ 
 
// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";
 
if(document.layers){ //NS4 resize fix...
    scrX= innerWidth; scrY= innerHeight;
    onresize= function(){if(scrX!= innerWidth || scrY!= innerHeight){history.go(0)} }
}
 
//object constructor...
function scrollerobj(obj,nest){
    nest = (!nest)?"":'document.'+nest+'.'
    this.elm = bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):document.getElementById(obj)
    this.css = bw.ns4?this.elm:this.elm.style
    this.doc = bw.ns4?this.elm.document:document
    this.obj = obj+'scrollerobj'; eval(this.obj+'=this')
    this.x = (bw.ns4||bw.opera5)?this.css.left:this.elm.offsetLeft
    this.y = (bw.ns4||bw.opera5)?this.css.top:this.elm.offsetTop
    this.w = (bw.ie4||bw.ie5||bw.ie6||bw.ns6)?this.elm.offsetWidth:bw.ns4?this.elm.clip.width:bw.opera5?this.css.pixelWidth:0
    this.h = (bw.ie4||bw.ie5||bw.ie6||bw.ns6)?this.elm.offsetHeight:bw.ns4?this.elm.clip.height:bw.opera5?this.css.pixelHeight:0
}
 
//object methods...
scrollerobj.prototype.moveTo = function(x,y){
    if(x!=null){this.x=x; this.css.left=x+px}
    if(y!=null){this.y=y; this.css.top=y+px}
}
scrollerobj.prototype.moveBy = function(x,y){this.moveTo(this.x+x,this.y+y)}
scrollerobj.prototype.hideIt = function(){this.css.visibility='hidden'}
scrollerobj.prototype.showIt = function(){this.css.visibility='visible'}
 
/****************************************************************
scroll functions...
****************************************************************/
var scrollTimer = null;
function scroll(step){
    clearTimeout(scrollTimer);
    if ( !busy && (step<0&&activePage.y+activePage.h>scroller1.h || step>0&&activePage.y<0) ){
        activePage.moveBy(0,step);
        scrollTimer = setTimeout('scroll('+step+')',40);
    }
}
function stopScroll(){
    clearTimeout(scrollTimer);
}
 
/****************************************************************
activating the correct layers...
****************************************************************/
var activePage = null;
var busy = 0;
function activate(num){
    if (activePage!=pages[num] && !busy){
        busy = 1;
        if (transitionOut==0 || !bw.opacity){ activePage.hideIt(); activateContinue(num); }
        else if (transitionOut==1) activePage.blend('hidden', 'activateContinue('+num+')');
    }
}
function activateContinue(num){
    busy = 1;
    activePage = pages[num];
    activePage.moveTo(0,0);
    if (transitionIn==0 || !bw.opacity){ activePage.showIt(); busy=0; }
    else if (transitionIn==1) activePage.blend('visible', 'busy=0');
    else if (transitionIn==2) activePage.slide(0, slideAcceleration, 40, 'busy=0');
}
 
 
/****************************************************************
Slide methods...
****************************************************************/
scrollerobj.prototype.slide = function(target, acceleration, time, fn){
    this.slideFn= fn?fn:null;
    this.moveTo(0,scroller1.h);
    if (bw.ie4&&!bw.mac) this.css.filter = 'alpha(opacity=100)';
    if (bw.ns6) this.css.MozOpacity = 1;
    this.showIt();
    this.doSlide(target, acceleration, time);
}
scrollerobj.prototype.doSlide = function(target, acceleration, time){
    this.step = Math.round(this.y*acceleration);
    if (this.step<1) this.step = 1;
    if (this.step>this.y) this.step = this.y;
    this.moveBy(0, -this.step);
    if (this.y>0) this.slideTim = setTimeout(this.obj+'.doSlide('+target+','+acceleration+','+time+')', time);
    else {  
        eval(this.slideFn);
        this.slideFn = null;
    }
}
 
 
/****************************************************************
Opacity methods...
****************************************************************/
scrollerobj.prototype.blend= function(vis, fn){
    if (bw.ie5||bw.ie6 && !bw.mac) {
        if (vis=='visible') this.css.filter= 'blendTrans(duration=0.9)';
        else this.css.filter= 'blendTrans(duration=0.6)';
        this.elm.onfilterchange = function(){ eval(fn); };
        this.elm.filters.blendTrans.apply();
        this.css.visibility= vis;
        this.elm.filters.blendTrans.play();
    }
    else if (bw.ns6 || bw.ie&&!bw.mac){
        this.css.visibility= 'visible';
        vis=='visible' ? this.fadeTo(100, 7, 40, fn) : this.fadeTo(0, 9, 40, fn);
    }
    else {
        this.css.visibility= vis;
        eval(fn);
    }
};
 
scrollerobj.prototype.op= 100;
scrollerobj.prototype.opacityTim= null;
scrollerobj.prototype.setOpacity= function(num){
    this.css.filter= 'alpha(opacity='+num+')';
    this.css.MozOpacity= num/100;
    this.op= num;
}
scrollerobj.prototype.fadeTo= function(target, step, time, fn){
    clearTimeout(this.opacityTim);
    this.opacityFn= fn?fn:null;
    this.op = target==100 ? 0 : 100;
    this.fade(target, step, time);
}
scrollerobj.prototype.fade= function(target, step, time){
    if (Math.abs(target-this.op)>step){
        target>this.op? this.setOpacity(this.op+step):this.setOpacity(this.op-step);
        this.opacityTim= setTimeout(this.obj+'.fade('+target+','+step+','+time+')', time);
    }
    else {
        this.setOpacity(target);
        eval(this.opacityFn);
        this.opacityFn= null;
    }
}
 
 
/**************************************************************
Init function...
**************************************************************/
var pageslidefadeLoaded = 0;
function initPageSlideFade(){
    scroller1 = new scrollerobj('divScroller1');
    
    pages = new Array();
    for (var i=0; i<numScrollPages; i++){
        pages[i] = new scrollerobj('dynPage'+i, 'divScroller1');
        pages[i].moveTo(0,0);
    }
    bw.opacity = ( bw.ie && !bw.ie4 && navigator.userAgent.indexOf('Windows')>-1 ) || bw.ns6
    if (bw.ie5||bw.ie6 && !bw.mac) pages[0].css.filter= 'blendTrans(duration=0.6)'; // Preloads the windows filters.
    
    if (transitionOnload) activateContinue(0);
    else{
        activePage = pages[0];
        activePage.showIt();
    }
 
    if (bw.ie) for(var i=0;i<document.links.length;i++) document.links[i].onfocus=document.links[i].blur;
    pageslidefadeLoaded = 1;
}
//if the browser is ok, the script is started onload..
if(bw.bw && !pageslidefadeLoaded) onload = initPageSlideFade;
</script>
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2011, 16:08
Ответы с готовыми решениями:

разобраться в скрипте
Есть скрипт, по идее он должен посчитать стоимость изделия после введения его параметров, помогите...

Не могу разобраться в скрипте
Есть такой скрипт &lt;SCRIPT&gt; /* url-адреса */ URL=new Array URL=&quot;&quot; URL=&quot;&quot; ...

Необходимо найти ошибку в скрипте
начал учить javascript и наткнулся на то, что не понимаю где ошибка(пишет в конце underfined):...

Необходимо разобраться с кодом
Здравствуйте! Нужна очень ваша помощь) Дано задание: используя цикл while и do..while написать...

3
60 / 17 / 0
Регистрация: 23.12.2010
Сообщений: 203
19.06.2011, 17:38 2
Код адаптирует сайт к разным видам браузеров короче говоря
0
Torlof
19.06.2011, 17:54 3
Не совсем так. Первая функция скрипта действительно адаптирует под разные браузеры, но не сайт, а дальнейшее действие скрипта. В целом скрипт отвечает за вывод текста в форму с эдаким скольжением. Заданы всего менюшки к которым привязан текст. При нажатии на одну из них выходит текст, перемещение по которому происходит за счет двух стрелок, которые плавно прокручивают текст. При нажатии на другой пункт меню текст выведенный ранее как бы растворяется, а на его место выплывает текст привязанный к нажатому пункту.
Вопрос в том - как это описать более правильно что ли. И какая функция за что конкретно отвечает.
13194 / 6581 / 1040
Регистрация: 10.01.2008
Сообщений: 15,069
19.06.2011, 18:04 4
ie4, ns4, opera5, ... Что это за динозавры такие? (я помню, видел оперу 6 в win98) Если для современных браузеров переписать заново, то наверняка получится вдвое-втрое меньше кода.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2011, 18:04

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Необходимо разобраться в работе скрипта
Здравствуйте! Помогите, пожалуйста, разобраться, что означает каждая строчка кода и элементы,...

Трудности в понимании ООП. Необходимо разобраться в скрипте
Имеется такой скрипт. Строчка номер &quot;192&quot; выводит в браузер определенную информацию. ...

разобраться в скрипте
Что делает данные скрипты? #!/bin/sh if then grep $1 home else grep $1 home | grep...

Не могу разобраться в скрипте
Помогите пожалуйста со следующим скриптом: &lt;?php function create_navbar($start_number = 0,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.