【问题标题】:use onClick not possible无法使用 onClick
【发布时间】:2013-04-28 14:06:32
【问题描述】:

我有 2 个 div 和 1 个 iframe div。所以,我只需要添加动画来将这个 div 移动到左边,我不知道怎么做,因为我已经 onClick 了。你可以帮帮我吗?

<div id="page3" onClick='document.getElementById("ifr").src="text2.html";'>2</div>
<div id="page1" onClick='document.getElementById("ifr").src="text1.html";'>1</div>
<div id="middlediv"><iframe id='ifr' width='100%' height='100%' src="text1.html"</iframe></div> 

非常感谢!!!

所以,现在我有了这个 java 代码:

function proc1(){
wwidth=window.innerWidth;
wheight=window.innerHeight;
document.getElementById('rightdiv').style.height=wheight-200-10+'px';
document.getElementById('leftdiv').style.height=wheight-200-10+'px';
document.getElementById('middlediv').style.height=wheight-200-10+'px';
document.getElementById('middlediv').style.width=wwidth-200-10+'px';
}
function MoveGridLeft()
{
   $('#page3').animate({
   'marginLeft' : "+=50px"
   });
 }

还有这个脚本笔画&lt;script type="text/javascript" src="jquery.min.js" src="1.js"&gt; 1.js 有上面的代码。动画不起作用,脚本也不起作用

【问题讨论】:

    标签: javascript animation html move


    【解决方案1】:

    onclick 这样的内联处理程序中的所有 javascript 代码都会自动包装在一个函数中,请参阅 SO 上的 this question

    因此,您没有理由不能添加额外的语句(或本例中的函数调用),例如:
    onclick="document.getElementById('ifr').src='text1.html'; moveDivLeft();"

    更新(针对您更新的问题):

    • Java 与 javascript 等 EcmaScript 方言没有任何关系
    • 您从 Shafqat Masood's answer 复制的(依赖于 JQuery 的)函数 MoveGridLeft 增加了 左边距,因此它将 div 移动到 right 而不是移动它到左边。根据您的代码,您需要设置正确的属性(如左|右位置|边距)以实现您的目标(考虑到您现有的标记/布局/样式)。看看这个基于你所有 cmets 的 example jsfiddle(在这个问题下面):jsfiddle.net/t74fT/3/
    • 行:&lt;script type="text/javascript" src="jquery.min.js" src="1.js"&gt; 错误:您给了它 2 个无效标记的来源。
      每个(外部)脚本都有自己的脚本标签,例如:
      &lt;script type="text/javascript" src="jquery.min.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="1.js"&gt;&lt;/script&gt;
      请注意,现在您有 3 个文件,而不是像您最初要求的那样只有 1 个。

    【讨论】:

    • 好的,我明白了,但是我可以用纯 JavaScript 制作吗?
    • 鉴于您的问题,我认为您知道如何为 div 设置“动画”,但不知道如何使用 onclick 将其连接起来。但是你现在需要一个纯 JavaScript 动画吗?也许更新您的问题,告诉我们更多关于您想要制作动画的内容和方式(以及速度等)。
    • 我只有 1 个 html 文件和 的问题,所以我无法加载 jquery...不,现在可以了,我会找到如何动画自己,谢谢。
    • 一个html文档中可以有多个脚本标签!所以这样的事情是完全有效的:&lt;script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt;alert('another script');&lt;/script&gt; 看看this link 让你开始使用纯javascript动画(使用setTimeout(function, duration);setInterval(function, duration);
    • 现在不行了(
    【解决方案2】:

    你可以在一个事件中调用两个函数

    onClick='document.getElementById("ifr").src="text2.html"; MoveGridLeft();'
    

    要移动的jQuery函数

    function MoveGridLeft()
    {
       $('#page3').animate({
       'marginLeft' : "-=50px"
       });
     }
    

    更新:

    从此link 下载 jQuery 文件并将对项目的引用添加为:

    &lt;script type="text/javascript" src="/scripts/jquery-1.9.1.min.js"&gt;&lt;/script&gt;

    这里是article,它解释了如何使用 CSS3 制作动画。

    【讨论】:

    • 那么,jquery 是一个库吗?我只需要下载它?
    • 如果您为此添加了一个完整的库,那么您不妨同时转向不显眼的 JavaScript。
    • 我知道,问题是我在 1 个 html 文件中有一个 javascript,所以我无法使其工作,我需要从另一个文件加载 java,但我需要全部在 1 个文件中,我知道这很愚蠢,但是...
    • 如果你不想使用 jquery,你可以使用 css3 为 div 设置动画
    • 所以我有函数 proc1(){ wwidth=window.innerWidth; wheight=window.innerHeight; //alert(wwidht+''+wheight) document.getElementById('rightdiv').style.height=wheight-200-10+'px'; document.getElementById('leftdiv').style.height=wheight-200-10+'px'; document.getElementById('middlediv').style.height=wheight-200-10+'px'; document.getElementById('middlediv').style.width=wwidth-200-10+'px'; } 函数 MoveGridLeft() { $('#page3').animate({ 'marginLeft' : "+=50px" }); }
    猜你喜欢
    • 2015-07-20
    • 2020-04-29
    • 2019-01-21
    • 1970-01-01
    • 2018-09-06
    • 2018-03-29
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多