Skip to content

Commit 974577d

Browse files
qitmac000408qitmac000408
authored andcommitted
fix visible动画
1 parent 445667e commit 974577d

14 files changed

+189
-90
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
6. 修正include指令在不与动画指令配合使用时,data-include-replace辅助指令失效的BUG
99
7. fix avalon.modern下的ms-duplex-checked BUG
1010
8. fix ready模块对loader模块的innerRequire的依赖
11+
9. fix ms-visible的动画
1112

1213
#avalon1.5.3(各种奇葩BUG修复及更快的parser)
1314

avalon.js

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
http://weibo.com/jslouvre/
66
77
Released under the MIT license
8-
avalon.js 1.5.4 built in 2015.10.12
8+
avalon.js 1.5.4 built in 2015.10.13
99
support IE6+ and other browsers
1010
==================================================*/
1111
(function(global, factory) {
@@ -5308,22 +5308,37 @@ avalon.parseDisplay = parseDisplay
53085308

53095309
avalon.directive("visible", {
53105310
init: function (binding) {
5311+
effectBinding(binding.element, binding)
53115312
},
53125313
update: function (val) {
5313-
var elem = this.element,
5314-
binding = this,
5315-
stamp = binding.stamp = +new Date()
5314+
var binding = this, elem = this.element, stamp
5315+
var noEffect = !this.effectName
5316+
if (!this.stamp) {
5317+
stamp = this.stamp = +new Date
5318+
if (val) {
5319+
elem.style.display = binding.display || ""
5320+
if (avalon(elem).css("display") === "none") {
5321+
elem.style.display = binding.display = parseDisplay(elem.nodeName)
5322+
}
5323+
} else {
5324+
elem.style.display = "none"
5325+
}
5326+
return
5327+
}
5328+
stamp = this.stamp = +new Date
53165329
if (val) {
5317-
elem.style.display = "none"
53185330
avalon.effect.apply(elem, 1, function () {
53195331
if (stamp !== binding.stamp)
53205332
return
5321-
var data = elem.getAttribute("data-effect-driver") || "a"
5322-
if (/^[atn]/.test(data)) {
5323-
if (!this.effectName)
5324-
elem.style.display = ""//这里jQuery会自动处理
5333+
var driver = elem.getAttribute("data-effect-driver") || "a"
5334+
5335+
if (noEffect) {//不用动画时走这里
5336+
elem.style.display = binding.display || ""
5337+
}
5338+
// "a", "t"
5339+
if (driver === "a" || driver === "t") {
53255340
if (avalon(elem).css("display") === "none") {
5326-
elem.style.display = parseDisplay(elem.nodeName)
5341+
elem.style.display = binding.display || parseDisplay(elem.nodeName)
53275342
}
53285343
}
53295344
})
@@ -5333,7 +5348,6 @@ avalon.directive("visible", {
53335348
return
53345349
elem.style.display = "none"
53355350
})
5336-
53375351
}
53385352
}
53395353
})

dist/avalon.js

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
http://weibo.com/jslouvre/
66
77
Released under the MIT license
8-
avalon.js 1.5.4 built in 2015.10.12
8+
avalon.js 1.5.4 built in 2015.10.13
99
support IE6+ and other browsers
1010
==================================================*/
1111
(function(global, factory) {
@@ -5308,22 +5308,37 @@ avalon.parseDisplay = parseDisplay
53085308

53095309
avalon.directive("visible", {
53105310
init: function (binding) {
5311+
effectBinding(binding.element, binding)
53115312
},
53125313
update: function (val) {
5313-
var elem = this.element,
5314-
binding = this,
5315-
stamp = binding.stamp = +new Date()
5314+
var binding = this, elem = this.element, stamp
5315+
var noEffect = !this.effectName
5316+
if (!this.stamp) {
5317+
stamp = this.stamp = +new Date
5318+
if (val) {
5319+
elem.style.display = binding.display || ""
5320+
if (avalon(elem).css("display") === "none") {
5321+
elem.style.display = binding.display = parseDisplay(elem.nodeName)
5322+
}
5323+
} else {
5324+
elem.style.display = "none"
5325+
}
5326+
return
5327+
}
5328+
stamp = this.stamp = +new Date
53165329
if (val) {
5317-
elem.style.display = "none"
53185330
avalon.effect.apply(elem, 1, function () {
53195331
if (stamp !== binding.stamp)
53205332
return
5321-
var data = elem.getAttribute("data-effect-driver") || "a"
5322-
if (/^[atn]/.test(data)) {
5323-
if (!this.effectName)
5324-
elem.style.display = ""//这里jQuery会自动处理
5333+
var driver = elem.getAttribute("data-effect-driver") || "a"
5334+
5335+
if (noEffect) {//不用动画时走这里
5336+
elem.style.display = binding.display || ""
5337+
}
5338+
// "a", "t"
5339+
if (driver === "a" || driver === "t") {
53255340
if (avalon(elem).css("display") === "none") {
5326-
elem.style.display = parseDisplay(elem.nodeName)
5341+
elem.style.display = binding.display || parseDisplay(elem.nodeName)
53275342
}
53285343
}
53295344
})
@@ -5333,7 +5348,6 @@ avalon.directive("visible", {
53335348
return
53345349
elem.style.display = "none"
53355350
})
5336-
53375351
}
53385352
}
53395353
})

dist/avalon.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/avalon.mobile.js

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
http://weibo.com/jslouvre/
66
77
Released under the MIT license
8-
avalon.mobile.js 1.5.4 built in 2015.10.12
8+
avalon.mobile.js 1.5.4 built in 2015.10.13
99
mobile
1010
==================================================*/
1111
(function(global, factory) {
@@ -4603,22 +4603,37 @@ avalon.parseDisplay = parseDisplay
46034603

46044604
avalon.directive("visible", {
46054605
init: function (binding) {
4606+
effectBinding(binding.element, binding)
46064607
},
46074608
update: function (val) {
4608-
var elem = this.element,
4609-
binding = this,
4610-
stamp = binding.stamp = +new Date()
4609+
var binding = this, elem = this.element, stamp
4610+
var noEffect = !this.effectName
4611+
if (!this.stamp) {
4612+
stamp = this.stamp = +new Date
4613+
if (val) {
4614+
elem.style.display = binding.display || ""
4615+
if (avalon(elem).css("display") === "none") {
4616+
elem.style.display = binding.display = parseDisplay(elem.nodeName)
4617+
}
4618+
} else {
4619+
elem.style.display = "none"
4620+
}
4621+
return
4622+
}
4623+
stamp = this.stamp = +new Date
46114624
if (val) {
4612-
elem.style.display = "none"
46134625
avalon.effect.apply(elem, 1, function () {
46144626
if (stamp !== binding.stamp)
46154627
return
4616-
var data = elem.getAttribute("data-effect-driver") || "a"
4617-
if (/^[atn]/.test(data)) {
4618-
if (!this.effectName)
4619-
elem.style.display = ""//这里jQuery会自动处理
4628+
var driver = elem.getAttribute("data-effect-driver") || "a"
4629+
4630+
if (noEffect) {//不用动画时走这里
4631+
elem.style.display = binding.display || ""
4632+
}
4633+
// "a", "t"
4634+
if (driver === "a" || driver === "t") {
46204635
if (avalon(elem).css("display") === "none") {
4621-
elem.style.display = parseDisplay(elem.nodeName)
4636+
elem.style.display = binding.display || parseDisplay(elem.nodeName)
46224637
}
46234638
}
46244639
})
@@ -4628,7 +4643,6 @@ avalon.directive("visible", {
46284643
return
46294644
elem.style.display = "none"
46304645
})
4631-
46324646
}
46334647
}
46344648
})

dist/avalon.mobile.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/avalon.mobile.shim.js

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
http://weibo.com/jslouvre/
66
77
Released under the MIT license
8-
avalon.mobile.shim.js 1.5.4 built in 2015.10.12
8+
avalon.mobile.shim.js 1.5.4 built in 2015.10.13
99
mobile
1010
==================================================*/
1111
(function(global, factory) {
@@ -4603,22 +4603,37 @@ avalon.parseDisplay = parseDisplay
46034603

46044604
avalon.directive("visible", {
46054605
init: function (binding) {
4606+
effectBinding(binding.element, binding)
46064607
},
46074608
update: function (val) {
4608-
var elem = this.element,
4609-
binding = this,
4610-
stamp = binding.stamp = +new Date()
4609+
var binding = this, elem = this.element, stamp
4610+
var noEffect = !this.effectName
4611+
if (!this.stamp) {
4612+
stamp = this.stamp = +new Date
4613+
if (val) {
4614+
elem.style.display = binding.display || ""
4615+
if (avalon(elem).css("display") === "none") {
4616+
elem.style.display = binding.display = parseDisplay(elem.nodeName)
4617+
}
4618+
} else {
4619+
elem.style.display = "none"
4620+
}
4621+
return
4622+
}
4623+
stamp = this.stamp = +new Date
46114624
if (val) {
4612-
elem.style.display = "none"
46134625
avalon.effect.apply(elem, 1, function () {
46144626
if (stamp !== binding.stamp)
46154627
return
4616-
var data = elem.getAttribute("data-effect-driver") || "a"
4617-
if (/^[atn]/.test(data)) {
4618-
if (!this.effectName)
4619-
elem.style.display = ""//这里jQuery会自动处理
4628+
var driver = elem.getAttribute("data-effect-driver") || "a"
4629+
4630+
if (noEffect) {//不用动画时走这里
4631+
elem.style.display = binding.display || ""
4632+
}
4633+
// "a", "t"
4634+
if (driver === "a" || driver === "t") {
46204635
if (avalon(elem).css("display") === "none") {
4621-
elem.style.display = parseDisplay(elem.nodeName)
4636+
elem.style.display = binding.display || parseDisplay(elem.nodeName)
46224637
}
46234638
}
46244639
})
@@ -4628,7 +4643,6 @@ avalon.directive("visible", {
46284643
return
46294644
elem.style.display = "none"
46304645
})
4631-
46324646
}
46334647
}
46344648
})

dist/avalon.mobile.shim.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/avalon.modern.js

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
http://weibo.com/jslouvre/
66
77
Released under the MIT license
8-
avalon.modern.js 1.5.4 built in 2015.10.12
8+
avalon.modern.js 1.5.4 built in 2015.10.13
99
support IE10+ and other browsers
1010
==================================================*/
1111
(function(global, factory) {
@@ -4603,22 +4603,37 @@ avalon.parseDisplay = parseDisplay
46034603

46044604
avalon.directive("visible", {
46054605
init: function (binding) {
4606+
effectBinding(binding.element, binding)
46064607
},
46074608
update: function (val) {
4608-
var elem = this.element,
4609-
binding = this,
4610-
stamp = binding.stamp = +new Date()
4609+
var binding = this, elem = this.element, stamp
4610+
var noEffect = !this.effectName
4611+
if (!this.stamp) {
4612+
stamp = this.stamp = +new Date
4613+
if (val) {
4614+
elem.style.display = binding.display || ""
4615+
if (avalon(elem).css("display") === "none") {
4616+
elem.style.display = binding.display = parseDisplay(elem.nodeName)
4617+
}
4618+
} else {
4619+
elem.style.display = "none"
4620+
}
4621+
return
4622+
}
4623+
stamp = this.stamp = +new Date
46114624
if (val) {
4612-
elem.style.display = "none"
46134625
avalon.effect.apply(elem, 1, function () {
46144626
if (stamp !== binding.stamp)
46154627
return
4616-
var data = elem.getAttribute("data-effect-driver") || "a"
4617-
if (/^[atn]/.test(data)) {
4618-
if (!this.effectName)
4619-
elem.style.display = ""//这里jQuery会自动处理
4628+
var driver = elem.getAttribute("data-effect-driver") || "a"
4629+
4630+
if (noEffect) {//不用动画时走这里
4631+
elem.style.display = binding.display || ""
4632+
}
4633+
// "a", "t"
4634+
if (driver === "a" || driver === "t") {
46204635
if (avalon(elem).css("display") === "none") {
4621-
elem.style.display = parseDisplay(elem.nodeName)
4636+
elem.style.display = binding.display || parseDisplay(elem.nodeName)
46224637
}
46234638
}
46244639
})
@@ -4628,7 +4643,6 @@ avalon.directive("visible", {
46284643
return
46294644
elem.style.display = "none"
46304645
})
4631-
46324646
}
46334647
}
46344648
})

dist/avalon.modern.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)