简体   繁体   English

使用javascript或jquery切换效果运动

[英]toggle effect motion using javascript or jquery

I fund a toggle code that works perfectly, but I'd like to add a speed effect to slow it down a bit it when opening and closing. 我资助了一个效果很好的切换代码,但是我想添加一个速度效果,以便在打开和关闭时将其放慢一点。 I did try to insert this code on it <p onclick="javascript:setTimeout(toggle(), 3000);">OPEN</p> instead of <h1>OPEN</h1> but without success. 我确实尝试在此代码上插入<p onclick="javascript:setTimeout(toggle(), 3000);">OPEN</p>而不是<h1>OPEN</h1>但是没有成功。

I've a joomla website, some plugins use jquery. 我有一个joomla网站,某些插件使用jquery。 It seems that Jquery could do the trick with something like .toggle( [duration ] [, complete ] ) I've seen that JQ is a "Javascript's library", so it should work with the code bellow but no idea how I should insert it. 看来Jquery可以用.toggle( [duration ] [, complete ] )类的东西来.toggle( [duration ] [, complete ] )我已经看到JQ是“ Javascript的库”,因此它应该与下面的代码一起工作,但是不知道我应该如何插入它。 I don't know if "simply" adding jquery code inside the code below would work, or if I should add something else in the FTP website some XX.js files (as I have seen in some tuto). 我不知道“简单地”在下面的代码中添加jquery代码是否可行,或者我是否应该在FTP网站中添加一些XX.js文件(如我在某些tuto中看到的)。 I'm lost... 我迷路了...

<script type="text/javascript">
    // <![CDATA[
    function toggle(id, link) {
        var elem = document.getElementById(id);
        var text = document.getElementById(link);
        if (elem.style.display != "none") {
            elem.style.display = "none";
            text.innerHTML = "show";
        } else {
            elem.style.display = "block";
            text.innerHTML = "hide";
        }
    }
    // ]]>

</script>
<ul>
    <li><a id="displayText" href="javascript:toggle('toggleText', 'displayText');">show</a>
        <div id="toggleText" style="display: none;">
            <h1>OPEN</h1>
        </div></li>
    <li><a id="toggler2" href="javascript:toggle('secondText', 'toggler2');">show</a>
        <div id="secondText" style="display: none;">
            <h1>OPEN</h1>
        </div></li>

</ul>

thanks! 谢谢!

Since you are using jquery make some minor changes to the mark up for ease of use 由于您使用的是jquery,因此需要对标记进行一些小的更改以使其易于使用

<ul id="container">
  <li>
    <a class="opener">show</a>
    <div style="display: none;">
      <h1>OPEN</h1>
    </div>
  </li>

  <li>
    <a class="opener">show</a>
    <div style="display: none;">
      <h1>OPEN</h1>
    </div>
  </li>
</ul>

Then 然后

$(function(){
  $('#container').on('click', 'a.opener', function(){
    $(this).next().toggle('slow')
  });
});

Demo: Fiddle 演示: 小提琴

for joomla : 对于joomla:

1/ add in the index.php just after the tag this: 1 /在此标记之后添加index.php:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.js"></script>
    <script type="text/javascript" src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.js"></script>
    <script type="text/javascript" src="app.js"></script>
    <script type="text/javascript"></script>

2/ create in the ftp a file called app.js and write in it: 2 /在ftp中创建一个名为app.js的文件并写入:

var $j = jQuery.noConflict();
$(function(){
  $('#container').on('click', 'a.opener', function(){
    $(this).next().toggle('slow')
  });
});

3/ in the article source code : 3 /在文章源代码中:

<ul id="container">
  <li>
    <a class="opener">show</a>
    <div style="display: none;">
      <h1>OPEN</h1>
    </div>
  </li>

  <li>
    <a class="opener">show</a>
    <div style="display: none;">
      <h1>OPEN</h1>
    </div>
  </li>
</ul>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM