@dolphinweex/weex-vue-render 0.2.113 → 0.2.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5165,13 +5165,9 @@ var style = {
5165
5165
  return weex.utils.px2rem($0, rootValue)
5166
5166
  })
5167
5167
  }
5168
- if (typeof value === 'number') {
5169
- if (bindingStyleNamesForNumber2Px.indexOf(propKey) > -1) {
5170
- const scale = weex.config.env.scale
5171
- return (scale * value) + 'px';
5172
- }else{
5173
- return weex.utils.px2rem(value + '', rootValue)
5174
- }
5168
+ if (typeof value === 'number') {
5169
+ // 没单位的数字按设计稿 px 转 rem pad旋转会动态计算
5170
+ return weex.utils.px2rem(value + '', rootValue)
5175
5171
  }
5176
5172
  // 辅助函数:将kebab-case转换为camelCase
5177
5173
  const kebabToCamel = (str) => {
@@ -11320,9 +11316,14 @@ function transitionOnce (vnode, config, callback) {
11320
11316
  dom && weex.utils.fireLazyload(dom, true);
11321
11317
 
11322
11318
  var ended = false;
11319
+ var eventFinishTimer = null;
11323
11320
  var cleanup = function () {
11324
11321
  if (ended) { return }
11325
11322
  ended = true;
11323
+ if (eventFinishTimer) {
11324
+ clearTimeout(eventFinishTimer);
11325
+ eventFinishTimer = null;
11326
+ }
11326
11327
  if (endEvent) {
11327
11328
  dom.removeEventListener(endEvent, transitionEndHandler);
11328
11329
  }
@@ -11330,14 +11331,26 @@ function transitionOnce (vnode, config, callback) {
11330
11331
  dom.style[styleName] = '';
11331
11332
  }
11332
11333
  };
11333
- var transitionEndHandler = function (event) {
11334
- event && event.stopPropagation();
11334
+ var finish = function () {
11335
+ if (ended) { return }
11335
11336
  clearTimeout(timerId);
11336
11337
  cleanup();
11337
- setTimeout(()=>{
11338
- callback && callback(); // 兼容嵌套动画
11339
- })
11338
+ callback && callback();
11339
+ };
11340
+ var transitionEndHandler = function (event) {
11341
+ event && event.stopPropagation();
11342
+ // transitionend 会针对 opacity、transform 等属性分别触发。
11343
+ // 只处理当前节点,并等配置时长结束及最后一个属性事件稳定后再回调。
11344
+ if (!event || event.target !== dom || ended) { return }
11345
+ if (eventFinishTimer) {
11346
+ clearTimeout(eventFinishTimer);
11347
+ }
11348
+ var remaining = Math.max(0, duration + delay - (Date.now() - startTime));
11349
+ eventFinishTimer = setTimeout(function () {
11350
+ finish();
11351
+ }, remaining + 16);
11340
11352
  };
11353
+ var startTime = Date.now();
11341
11354
  if (endEvent) {
11342
11355
  dom.style[styleName] = transitionValue;
11343
11356
  dom.addEventListener(endEvent, transitionEndHandler);
@@ -11345,8 +11358,7 @@ function transitionOnce (vnode, config, callback) {
11345
11358
  var totalMs = (duration + delay) + 60; // 兜底计时器,避免不触发 transitionend 时卡死
11346
11359
  var timerId = setTimeout(function () {
11347
11360
  if (ended) { return }
11348
- cleanup();
11349
- callback && callback();
11361
+ finish();
11350
11362
  }, totalMs);
11351
11363
  nextFrame(function () {
11352
11364
  // 修改 transform:translate让它支持传3个参数,且第三个参数无效
package/package.json CHANGED
@@ -49,5 +49,5 @@
49
49
  "type": "git",
50
50
  "url": "git+ssh://git@github.com/weexteam/weex-vue-render.git"
51
51
  },
52
- "version": "0.2.113"
52
+ "version": "0.2.114"
53
53
  }