Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Выполнение JavaScript по нажатию кнопки


Автор: Chate 16.9.2016, 17:34
Здравствуйте. Пожалуйста, помогите в следующей ситуации: решила сделать на своей страничке падающих овечек (вместо снежинок:). По замыслу они должны падать при нажатии кнопки. Ситуация: кнопка есть, но овечки падают сразу же при загрузке страницы без нажатия на кнопку. Что у меня не так в кодах? Коды ниже. Большое спасибо. 

HTML-документ: 
<html>

   <head>
         <title> Моя первая страница </title>
 <link href="style2.css" rel="stylesheet" type="text/css">
<a href="#" class="cursor">
 <script src="JS.js"></script>
 </head>

   <body
   link="#000000" alink="#6A5ACD" vlink="#cecece"> 
   <input type="button" name="enter" value="Нажать" id="check" onClick="new Array()"/>
   

   
     <table cellpadding="0" cellspacing="0" align="center">
     <tr>
       <td  colspan="2" width="1780" height="165"
       background="Бежевый фон для шапки.JPG">
        
        <font  color="#D2691E" size="20"
            </font>
            <p align="center"> Мир фэнтези </p>
            <img src="Два дракона.JPG" width="150" height="165" 
            align="absmiddle">
       </td>
       <tr> 
        <td  colspan="2" width="100%" height="30%"
        background="Фон для шапки 2.JPG">
        <font  color="#9400D3" size="5" 
       Список существ  
       </font>
       <p align="center"> 
       <a href="spisok.html" > <button> <img src = "Маленький дракон.JPG"> Cписок существ </a></button> 
       </a>
       </p>
       </td>
       <tr> 
        <td  colspan="2" width="780" height="38"
       background="Фон для страниц.JPG">
       <font style="color:#FF4500; font-size:25; font-family:Arial"
                </font>
            <p align="center"> 
 <i> Фэнтези (от англ. fantasy — «фантазия») — вид фантастической литературы,
 основанный на использовании мифологических и сказочных мотивов. В современном 
 виде сформировался в начале XX века. Произведения фэнтези чаще всего напоминают 
 историко-приключенческий роман, действие которого происходит в вымышленном мире, 
 близком к реальному Средневековью, герои которого сталкиваются со сверхъестественными 
 явлениями и существами. 
 </i>
        </p>
       </td>
       <tr>
       <tr>
       <td  colspan="2" width="780" height="38"
        background="Бежевый фон для шапки.JPG"
            ">
        </td>
     </tr>
      
       </table>
  

   </body>
   
</html>
     
Код в JavaScrypt документе:

var imgsrc="Овечка.gif";
var ie4=(document.all)?1:0;
var ns6=(document.getElementById&&!document.all)?1:0;
var height=(document.layers)?window.innerHeight:window.document.body.scrollHeight;
if (height<window.document.body.clientHeight) height=window.document.body.clientHeight;
var width=(document.layers)?window.innerWidth:window.document.body.clientWidth;
var col=Math.round(height/50);    //количество снежинок

amp=new Array();
x_pos=new Array();
y_pos=new Array();
stx=new Array();
sty=new Array();
deltax=new Array();
obj=new Array();

for (i=0; i<col; ++i) {
 amp[i]=Math.random()*19;
 x_pos[i]=Math.random()*(width-amp[i]-29);
 y_pos[i]=Math.random()*height;
 stx[i]=0.03+Math.random()*0.25;
 sty[i]=2+Math.random();
 deltax[i]=0;
 if (ie4||ns6) {
    document.write("<img id=\"sn"+ i +"\" style=\"position:absolute;" +
    "z-index: "+ i +"; visibility:visible; top:-50px; left:-50px;\"" +
    "src='"+imgsrc+"' border=0>");
 }
 obj[i] = document.getElementById("sn"+i);
}

function flake() {
 for (i=0; i<col; ++i) {
    y_pos[i]+=sty[i];
    if (y_pos[i]>height-49) {
        x_pos[i]=Math.random()*(width-amp[i]-29);
        y_pos[i]=0;
    }
    deltax[i]+=stx[i];
    obj[i].style.top=y_pos[i]+"px";
    obj[i].style.left=x_pos[i]+amp[i]*Math.sin(deltax[i])+"px";
 }
setTimeout("flake()", 40);
}
flake();

 



Автор: igorold 17.9.2016, 19:35
убери из кода flake();

и повесь на кнопку эту функцию ... 

Правда видимо придется часть кода выводить в функцию, которая иницилизирует картинки .. ну уже сам подумай ... 

Автор: Starikan 25.9.2016, 18:22
igorold, парень, ты слишком замудрил
всё намного проще

вот тебе решение, сразу кодик накатал тебе чисто

Код


function buddy_pop() { window.open('index.php?act=buddy&s=','BrowserBuddy','width=250,height=500,resizable=yes,scrollbars=yes'); }
function chat_pop(cw,ch)  { window.open('index.php?s=&act=chat&pop=1','Chat','width='+cw+',height='+ch+',resizable=yes,scrollbars=yes'); }
function multi_page_jump( url_bit, total_posts, per_page, ajax_s, ajax_e )
{
pages = 1; cur_st = parseInt("0"); cur_page  = 1;
if ( total_posts % per_page == 0 ) { pages = total_posts / per_page; }
else { pages = Math.ceil( total_posts / per_page ); }
msg = "Введите номер страницы, к которой хотите перейти." + " " + pages;
if ( cur_st> 0 ) { cur_page = cur_st / per_page; cur_page = cur_page -1; }
show_page = 1;
if ( cur_page <pages )  { show_page = cur_page + 1; }
if ( cur_page>= pages ) { show_page = cur_page - 1; }
else { show_page = cur_page + 1; }
userPage = prompt( msg, show_page );
if ( userPage > 0  ) {
if ( userPage <1 )     {    userPage = 1;  }
if ( userPage> pages ) { userPage = pages; }
if ( userPage == 1 )    {     start = 0;    }
else { start = (userPage - 1) * per_page; }
if ((typeof(ajax_s)=='string')&&(typeof(ajax_e)=='string')&&(ajax_s!='')&&(ajax_e!=''))
{var r_1 = new RegExp('\%22','g'),
r_2 = new RegExp('\%27','g'),
ajax = ajax_s+start+ajax_e;
ajax = ajax.replace(r_1, "\"");
eval(ajax.replace(r_2, "'"));
} else
{var r = new RegExp('(\/index)?\.html\&st=([0-9]+)\s*$','i'),
s = "";
s = url_bit+"&st=" + start;
window.location = s.replace(r, "/$2.html");
}
}
}


Автор: igorold 27.9.2016, 06:57
... что это было ...  smile 

Автор: Starikan 28.9.2016, 17:46
Цитата(igorold @  27.9.2016,  06:57 Найти цитируемый пост)
... что это было ...  smile  


что именно тебе не понятно? давай объясню

Автор: _zorn_ 28.9.2016, 18:21
Цитата(Starikan @  29.9.2016,  00:46 Найти цитируемый пост)
что именно тебе не понятно? давай объясню 

Ну лично мне не понравилось
Код
eval(ajax.replace(r_2, "'"));

Хотя остальной код даже не смотрел smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)