jQuery:没有jqueryui,我如何再现手风琴的滑出效果?

jQuery:没有jqueryui,我如何再现手风琴的滑出效果?,jquery,jquery-ui,accordion,Jquery,Jquery Ui,Accordion,我只是在学习jQuery,弄清楚什么是可能的,找到自己的方法 我希望有一个像手风琴一样“滑出”的div,但我不想支付jqueryui下载的费用,而且我希望允许同时打开多个div 它是如何工作的?如何在jquery.ui.accordion.js中实现手风琴的滑出效果?是否可以调用.animate()将div从显示:无移动到显示:块?(我读到animate仅适用于数字属性。)如果您正在创建垂直手风琴,则可以使用slideDown和slideUp,否则,您将需要结合更多CSS以允许在某些div的定位

我只是在学习jQuery,弄清楚什么是可能的,找到自己的方法

我希望有一个像手风琴一样“滑出”的div,但我不想支付jqueryui下载的费用,而且我希望允许同时打开多个div


它是如何工作的?如何在jquery.ui.accordion.js中实现手风琴的滑出效果?是否可以调用
.animate()
将div从
显示:无
移动到
显示:块
?(我读到animate仅适用于数字属性。)

如果您正在创建垂直手风琴,则可以使用slideDown和slideUp,否则,您将需要结合更多CSS以允许在某些div的定位上使用animate。

如果您正在创建垂直手风琴,则可以使用slideDown和slideUp,否则,您需要结合更多CSS,以便在某些div的定位上使用动画。

仅供参考,jQueryUI和core中的缩小幻灯片效果在第一次请求时仅为5.5KB。不需要整个jQueryUI库。您需要的文件-ui.slider.min.js和ui.core.min.js

仅供参考,jQueryUI和core中的缩小幻灯片效果在第一次请求时只有5.5KB的命中率。不需要整个jQueryUI库。您需要的文件-ui.slider.min.js和ui.core.min.js

您可以对一个元素执行此操作

var accordion = function(toggleEl, accEl) {
    toggleEl.click(function() {
        accEl.slideToggle(function() { });
        return false;
    });
}
使用滑动切换


但是,如果要执行多个级别,还需要添加一个函数,以便在每次只打开一个项目时,遍历所有项目并将其向上滑动或在滑动切换触发之前将其隐藏。这就是jqueryaccordion可以提供帮助的地方。他们已经连接了许多类似的选项。

您可以为一个元素执行此操作

var accordion = function(toggleEl, accEl) {
    toggleEl.click(function() {
        accEl.slideToggle(function() { });
        return false;
    });
}
使用滑动切换


但是,如果要执行多个级别,还需要添加一个函数,以便在每次只打开一个项目时,遍历所有项目并将其向上滑动或在滑动切换触发之前将其隐藏。这就是jqueryaccordion可以提供帮助的地方。他们有很多这样的选择。

我正在学习各种各样的东西。我只使用了jQuery——没有UI,没有UI手风琴,没有UI效果——并且得到了我想要的向下滑动效果。不确定这种视觉效果的术语。(我认为这是jQuery挑战的一半——我称之为各种效果)。我想也许有人把这叫做“拨动百叶窗”

单击此按钮可查看效果:

这是html片段

<div id="div0">
   <p id="intro"><a href="#" class='expander'>+</a> Introduction</p>

   <div class='indented' style='display:none'>
     <p >
       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer
       vulputate, nibh non rhoncus euismod, erat odio pellentesque lacus,
       sit amet convallis mi augue et odio. Phasellus cursus urna facilisis quam.
     </p>

     <p> Quisque pharetra lacus quis sapien. Duis
       id est non wisi sagittis adipiscing. Nulla facilisi. Etiam quam erat,
       lobortis eu, facilisis nec, blandit hendrerit, metus. Fusce
       hendrerit. Nunc magna libero, sollicitudin non, vulputate non, ornare
       id, nulla.  Suspendisse potenti. Nullam in mauris.
     </p>
   </div>
 </div>

介绍

Lorem ipsum dolor sit amet,是一位杰出的领导者。整数 vulputate,nibh non rhoncus euismod,erat odio pellentesque lacus, 坐在奥古斯和奥迪奥的座位上。小圆足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖。

法雷特拉·拉库斯·拉库斯·萨皮恩。酒后驾车 我是非智慧射手。无便利。Etiam quam erat, lobortis eu,设施nec,blandit hendrerit,metus。福斯 亨德雷特。Nunc magna libero、sollicitudin non、vulputate non、ornare id,nulla。潜力悬钩子。莫里斯的纳勒姆。

这是jQuery代码:

  var slideOut = function(element){
      var parent = $(element).parent().parent(); // outer div
      var dList = parent.children("div");  // inner div, all siblings of the <a>
      dList.animate({opacity: 'toggle', height: 'toggle'}, 'slow');
  };

  $(document).ready(function() {
      $('div p a[href="#"]').click(function() { slideOut(this); });
  });
var slideOut=函数(元素){
var parent=$(元素).parent().parent();//外部div
var dList=parent.children(“div”);//内部div,是
动画({opacity:'toggle',height:'toggle'},'slow');
};
$(文档).ready(函数(){
$('div p a[href=“#“]”)。单击(函数(){slideOut(this);});
});
该slideOut()函数的实际功能稍微简化了一点。它还为实际代码中的扩展器按钮交换了+和-键,这使它变得稍微复杂一些:

  var slideOut = function(element){
      var parent = $(element).parent().parent(); // outer div
      var dList = parent.children("div");  // inner div, all siblings of the <a>
      dList.animate({opacity: 'toggle', height: 'toggle'}, 'slow');

      // swap characters on the expander "button"
      var o = dList.css("opacity"); 
      // dash is narrower than +, so we must compensate
      if (o==1) {
          $(element).html("+")
              .css("padding-left", "1px")
              .css("padding-right", "1px");
      } else {
          $(element).html("-")
              .css("padding-left", "3px")
              .css("padding-right", "3px");
      }
  };
var slideOut=函数(元素){
var parent=$(元素).parent().parent();//外部div
var dList=parent.children(“div”);//内部div,是
动画({opacity:'toggle',height:'toggle'},'slow');
//交换扩展器“按钮”上的字符
var o=dList.css(“不透明度”);
//破折号小于+,因此我们必须进行补偿
如果(o==1){
$(元素).html(“+”)
.css(“左填充”、“1px”)
.css(“右边填充”、“1px”);
}否则{
$(元素).html(“-”)
.css(“左填充”、“3px”)
.css(“右侧填充”、“3px”);
}
};
您可以在上面提到的live demo链接中看到完整的html/js代码


我不知道的关键是,可以通过调用animate with“toggle”来设置高度动画

我在学习各种各样的东西。我只使用了jQuery——没有UI,没有UI手风琴,没有UI效果——并且得到了我想要的向下滑动效果。不确定这种视觉效果的术语。(我认为这是jQuery挑战的一半——我称之为各种效果)。我想也许有人把这叫做“拨动百叶窗”

单击此按钮可查看效果:

这是html片段

<div id="div0">
   <p id="intro"><a href="#" class='expander'>+</a> Introduction</p>

   <div class='indented' style='display:none'>
     <p >
       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer
       vulputate, nibh non rhoncus euismod, erat odio pellentesque lacus,
       sit amet convallis mi augue et odio. Phasellus cursus urna facilisis quam.
     </p>

     <p> Quisque pharetra lacus quis sapien. Duis
       id est non wisi sagittis adipiscing. Nulla facilisi. Etiam quam erat,
       lobortis eu, facilisis nec, blandit hendrerit, metus. Fusce
       hendrerit. Nunc magna libero, sollicitudin non, vulputate non, ornare
       id, nulla.  Suspendisse potenti. Nullam in mauris.
     </p>
   </div>
 </div>

介绍

Lorem ipsum dolor sit amet,是一位杰出的领导者。整数 vulputate,nibh non rhoncus euismod,erat odio pellentesque lacus, 坐在奥古斯和奥迪奥的座位上。小圆足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖足跖。

法雷特拉·拉库斯·拉库斯·萨皮恩。酒后驾车 我是非智慧射手。无便利。Etiam quam erat, lobortis eu,设施nec,blandit hendrerit,metus。福斯 亨德雷特。Nunc magna libero、sollicitudin non、vulputate non、ornare id,nulla。潜力悬钩子。莫里斯的纳勒姆。

这是jQuery代码:

  var slideOut = function(element){
      var parent = $(element).parent().parent(); // outer div
      var dList = parent.children("div");  // inner div, all siblings of the <a>
      dList.animate({opacity: 'toggle', height: 'toggle'}, 'slow');
  };

  $(document).ready(function() {
      $('div p a[href="#"]').click(function() { slideOut(this); });
  });
var slideOut=函数(元素){
var parent=$(元素).parent().parent();//外部div
var-dList=paren