jQuery 切换不透明度

标签 jquery toggle opacity fadeto

尝试切换不透明度。基本上,列表项的不透明度设置为零,从而保留其高度。单击列表子类别头时,空列表区域会下降到列表项的深度,然后应切换不透明度以显示列表元素。再次单击子类别列表头时,列表项的不透明度会淡回零,然后列表区域会折叠。需要将列表项保留在那里,因此使用 opacity 方法而不是 hide、hideToggle 或类似函数,将它们从 DOM 中删除。 http://jsfiddle.net/hotdiggity/zn6cz/10/

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>jQuery Toggle Opacity</title>
    <script type="text" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
  </head>

  <body>
  <ul class="list">
      <li><a href="#">Subcategory</a></li>
      <li id="id-1" class="expandable"><a href="#">Subcategory - Click this one</a>
        <ul>
              <li>Sub menu item 1</li>
              <li>Sub menu item 2</li>
              <li>Sub menu item 3</li>
              <li>Sub menu item 4</li>
              <li>Sub menu item 5</li>
              <li>Sub menu item 6</li>
         </ul></li>
          <li><a href="#">Subcategory</a></li>
          <li><a href="#">Subcategory</a></li>
      </ul>
  </body>
  </html>

JQuery...

​$(document).ready(function(){
    $('.list li.expandable ul').hide();
    $('.list li.expandable ul li').css({ opacity: 0 });;
    $('.expandable').click(function(){
        $('#id-1.expandable ul').slideToggle('slow');
//      $(this).toggleClass('toggle-arrow');
        $(this).toggle(function() {
//            $('.list li.expandable ul li').stop();
            $('.list li.expandable ul li').fadeTo(2000,1);
            return false;
              },
        function() {
//            $('.list li.expandable ul li').stop();
            $('.list li.expandable ul li').fadeTo(2000,0).delay(500);
            return false;
         }); 
        return false;
    });
});

​目前,不透明度切换出现故障,闪烁开和关。

最佳答案

我更新了您的jsfiddle 。它能解决您的问题吗?

$(document).ready(function(){
$('.list li.expandable ul').hide();
$('.list li.expandable ul').css({ opacity: 0 });;
$('.expandable').click(function(){
    if ($(this).find("> UL").is(":visible")) {
        $(this).find("> UL").fadeTo(2000, 0, function() {
            $(this).slideToggle("slow");
        });
    } else {        
        $(this).find('> ul').slideToggle('slow', function() {
            $(this).fadeTo(2000, 1);
            //return false;
        });
    }
});
});

关于jQuery 切换不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13984978/

相关文章:

jquery - 滚动时更改标题的不透明度?

javascript - jquery getScript 数据

javascript - 默认显示 div

html - 不透明度表现怪异(css)

javascript - 单击按钮时更改按钮形状

javascript - 旋转图标并同时切换内容 onclick

javascript - 旋转时触发不透明度,jquery

javascript - 麻烦的 JavaScript

javascript - 如何使用 ID 从点击事件的 JSON 文件中获取值并在表单中显示值

带 Cookie 的 jQuery 切换