transition.html 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <script src="bind.js"></script>
  7. <script src="../../../dist/seed.js"></script>
  8. <style type="text/css">
  9. .test {
  10. width: 600px;
  11. height: 100px;
  12. background-color: #f00;
  13. padding: 10px;
  14. border: 1px solid #000;
  15. overflow: hidden;
  16. transition: all .2s ease;
  17. -moz-transition: all .2s ease;
  18. -webkit-transition: all .2s ease;
  19. }
  20. .test.shrink {
  21. height: 0;
  22. padding-top: 0;
  23. padding-bottom: 0;
  24. border-top-width: 0;
  25. border-bottom-width: 0;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <div id="test">
  31. <div>
  32. <button class="button-0" sd-on="click:set">0</button>
  33. <button class="button-1" sd-on="click:set">1</button>
  34. <button class="button-2" sd-on="click:set">2</button>
  35. <button class="push" sd-on="click:push">push</button>
  36. <button class="pop" sd-on="click:pop">pop</button>
  37. <button class="splice" sd-on="click:splice">splice</button>
  38. </div>
  39. <div
  40. class="test"
  41. sd-repeat="item:items"
  42. sd-if="filter(item)"
  43. sd-transition-class="shrink"
  44. sd-attr="data-id:item.a">
  45. {{item.a}}
  46. </div>
  47. <div
  48. class="test"
  49. sd-repeat="item:items"
  50. sd-show="filter(item)"
  51. sd-transition-class="shrink"
  52. sd-attr="data-id:item.a">
  53. {{item.a}}
  54. </div>
  55. </div>
  56. <h1 style="margin:0">123</h1>
  57. <script>
  58. var test = new Seed({
  59. el: '#test',
  60. scope: {
  61. b: 1,
  62. set: function (e) {
  63. this.b = +e.el.textContent
  64. },
  65. push: function () {
  66. this.items.push({a: this.items.length + 1 })
  67. },
  68. pop: function () {
  69. this.items.pop()
  70. },
  71. splice: function () {
  72. this.items.splice(0, 1, {a:99})
  73. },
  74. filter: function (item) {
  75. return item.a > this.b
  76. },
  77. items: [
  78. {
  79. a: 1
  80. },
  81. {
  82. a: 2
  83. }
  84. ]
  85. }
  86. })
  87. </script>
  88. </body>
  89. </html>