body onload

123
T.R.O.N
На сайте с 18.05.2004
Offline
314
#11
burunduk:
или вызвать сразу

возможно на странице, будут созданы объекты, которые будут нужны для скрипта, посему вызов скрипта до создания объектов, мягко говоря, не целесообразно

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#12

T.R.O.N, их можно создать сразу из скрипта :)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#13
burunduk:
их можно создать сразу из скрипта

Можно, но на мой вкус, это самый кривой из всех вариантов, поэтому и не пользую ждиквери..

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

[Удален]
#14

T.R.O.N, мне тоже нравится чистый код,

и именно поэтому использую ;)

P.S. всё зависит с какой стороны смотреть

hp_wtf
На сайте с 24.05.2006
Offline
39
#15

в <head>:

<script src="js/dw_event.js" type="text/javascript"></script>
<script src="js/dw_scroll.js" type="text/javascript"></script>
<script src="js/dw_scrollbar.js" type="text/javascript"></script>
<script src="js/scroll_controls.js" type="text/javascript"></script>
<script src="js/html_att_ev.js" type="text/javascript"></script>
<script type="text/javascript">

function init_dw_Scroll() {
var wndo = new dw_scrollObj('wn', 'lyr1', 't1');
wndo.setUpScrollbar("dragBar", "track", "h", 1, 1);
wndo.setUpScrollControls('scrollbar');

wndo.on_scroll_end = function () {
dw_scrollObj.scrollToId('wn', 'sunset', 'lyr1', 200);
}

// invoke immediately


}

// if code supported, link in the style sheet and call the init function onload
if ( dw_scrollObj.isSupported() ) {
//dw_writeStyleSheet('css/scroll.css');
dw_Event.add( window, 'load', init_dw_Scroll);

}


</script>

в теле:

<div class="slide" >
<div id="wn">
<div id="lyr1" onmouseover="dw_scrollObj.stopScroll('wn')" onmouseout="dw_scrollObj.initScroll('wn','right', 100)">
<table id="t1" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="sunset"><img src="img/1.jpg" /></td>
<td><img src="img/2.jpg" /></td>
<td><img src="img/3.jpg" /></td>
<td><img src="img/4.jpg" /></td>
<td><img src="img/1.jpg" /></td>
<td><img src="img/2.jpg" /></td>
<td><img src="img/3.jpg" /></td>
<td><img src="img/4.jpg" /></td>


</tr>
</table>
</div>
</div> <!-- end wn div -->

<!-- border attribute added to reduce support questions on the subject.
If you like valid strict markup, remove and place a img {border:none;} spec in style sheet -->
<div id="scrollbar">
<div id="left"><a class="mouseover_left" href="#"><img src="images/btn-lft.gif" width="11" height="11" alt="" border="0" /></a></div>
<div id="track">
<div id="dragBar"></div>
</div>
<div id="right"><a class="mouseover_right" href="#"><img src="images/btn-rt.gif" width="11" height="11" alt="" border="0" /></a></div>
</div>
</div>

Вот в работе:

http://polarsip.ru/temp/1.html

wndo.on_scroll_end = function () {
dw_scrollObj.scrollToId('wn', 'sunset', 'lyr1', 200);
}

Добавлено мной для перескакивания на начало по завершению прокрутки.

НЕ получается:

1. Заставить сработать onload в IE.

Отдельно запустить в коде пробовал - у меня вообще нигде не заработало.

2. Заставить снова скролить после автоперескакивания на начало.

Все добро вместе в архиве тут

Помогите, пожалуйста

Заработай на дом (http://www.sape.ru/r.a731c522b8.php) и построй его (http://www.polarsip.ru/) :) Двигай статьями! (http://miralinks.ru/users/registration/from:1117)
VT
На сайте с 24.12.2008
Offline
113
#16

Попробуйте выставить выполнение функции dw_scrollObj.initScroll('wn','right', 100) после события загрузки окна window.onload.

hp_wtf
На сайте с 24.05.2006
Offline
39
#17

Не знал, как применить правильней, нашел такую конструкцию:

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}


addLoadEvent(function() {
/* more code to run on page load */
dw_scrollObj.initScroll('wn','right', 100);
});

Опять везде работает, кроме уродца IE

VT
На сайте с 24.12.2008
Offline
113
#18

Можно попробывать делать через таймер, только выглядеть все это будет странно :)


<script type="text/javascript">

window.onload = function()
{
t = setTimeout("dw_scrollObj.initScroll('wn','right', 100)",1);
}

function init_dw_Scroll() {
var wndo = new dw_scrollObj('wn', 'lyr1', 't1');
wndo.setUpScrollbar("dragBar", "track", "h", 1, 1);
wndo.setUpScrollControls('scrollbar');

wndo.on_scroll_end = function () {
dw_scrollObj.scrollToId('wn', 'sunset', 'lyr1', 200);

clearTimeout(t);
}

// invoke immediately


}

// if code supported, link in the style sheet and call the init function onload
if ( dw_scrollObj.isSupported() ) {
//dw_writeStyleSheet('css/scroll.css');
dw_Event.add( window, 'load', init_dw_Scroll);

}


</script>
hp_wtf
На сайте с 24.05.2006
Offline
39
#19
VladiT:
Можно попробывать делать через таймер, только выглядеть все это будет странно

А почему странно? Так работает везде, вроде.

Спасибо, единственный рабочий вариант получился.

А по поводу повторного запуска скроллинга не поможете?

После окончания прокрутки, я его обратно возвращаю с помощью этого:

wndo.on_scroll_end = function () {
dw_scrollObj.scrollToId('wn', 'sunset', 'lyr1', 200);
}

Возвращается в начало и останавливается. Зациклить не получается никак.

Кстати, как вы думаете, реально ли сделать данный скрипт так, чтобы картинки плыли постоянно и полностью зацикленно (после последней - первая без рывков)?

Спасибо

VT
На сайте с 24.12.2008
Offline
113
#20

<script type="text/javascript">


window.onload = scroll_start;

function scroll_start()
{
t = setTimeout("dw_scrollObj.initScroll('wn','right', 100)",1);
}

function init_dw_Scroll() {
var wndo = new dw_scrollObj('wn', 'lyr1', 't1');
wndo.setUpScrollbar("dragBar", "track", "h", 1, 1);
wndo.setUpScrollControls('scrollbar');



wndo.on_scroll_end = function () {
dw_scrollObj.scrollToId('wn', 'sunset', 'lyr1', 200);
clearTimeout(t);
}

wndo.on_glidescroll_end = function() {
scroll_start()
}

// invoke immediately


}

// if code supported, link in the style sheet and call the init function onload
if ( dw_scrollObj.isSupported() ) {
//dw_writeStyleSheet('css/scroll.css');
dw_Event.add( window, 'load', init_dw_Scroll);

}


</script>

Вот зацикливание после возврата. На счет цикла без возврата надо более подробно разобраться в скрипте скролла(т.к. не я его писал, а понаписали там неплохо :) ) или попытаться написать самому с нуля.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий