更新 infowindow-view.js
This commit is contained in:
parent
c6ced2cfe0
commit
bb43395e8a
@ -114,6 +114,12 @@ var Infowindow = View.extend({
|
||||
this._loadCover();
|
||||
}
|
||||
|
||||
if (this._containsVideo()) {
|
||||
this._loadVideo();
|
||||
}
|
||||
|
||||
|
||||
|
||||
this._setupClasses();
|
||||
this._renderScroll();
|
||||
this._renderShadows();
|
||||
@ -165,6 +171,8 @@ var Infowindow = View.extend({
|
||||
var hasContent = this._getContent().length;
|
||||
var hasTitle = this.$('.CDB-infowindow-title').length;
|
||||
var numberOfFields = this.model.get('content') && this.model.get('content').fields.length;
|
||||
var hasH5url = this.$('.js-h5url').length;
|
||||
|
||||
|
||||
if (hasCover) {
|
||||
$infowindow
|
||||
@ -296,6 +304,12 @@ var Infowindow = View.extend({
|
||||
return !!this.$('.js-infowindow').attr('data-cover');
|
||||
},
|
||||
|
||||
//检测视频
|
||||
_containsVideo: function () {
|
||||
return !!this.$('.js-infowindow').attr('data-video');
|
||||
},
|
||||
|
||||
|
||||
_containsTemplateCover: function () {
|
||||
return this.$('.js-cover img').length > 0;
|
||||
},
|
||||
@ -366,6 +380,21 @@ var Infowindow = View.extend({
|
||||
this._loadCoverFromUrl(url);
|
||||
},
|
||||
|
||||
|
||||
_loadVideoFromUrl: function (url) {
|
||||
var $cover = this.$('.js-cover');
|
||||
|
||||
this._startCoverLoader();
|
||||
|
||||
var $img = $("<video class='CDB-infowindow-media-item' />");
|
||||
$cover.append($img);
|
||||
|
||||
$img
|
||||
.load(this._onLoadImageSuccess)
|
||||
.error(this._onLoadImageError)
|
||||
.attr('src', url);
|
||||
},
|
||||
|
||||
_loadCoverFromUrl: function (url) {
|
||||
var $cover = this.$('.js-cover');
|
||||
|
||||
@ -426,6 +455,25 @@ var Infowindow = View.extend({
|
||||
return styles;
|
||||
},
|
||||
|
||||
|
||||
_loadVideo:function () {
|
||||
this._renderCoverLoader();
|
||||
this._startCoverLoader();
|
||||
|
||||
var url = this._getCoverURL();
|
||||
if (this._isLoadingFields()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this._isValidURL(url)) {
|
||||
this._stopCoverLoader();
|
||||
this._showInfowindowVideoError();
|
||||
return;
|
||||
}
|
||||
|
||||
this._loadVideoFromUrl(url);
|
||||
}
|
||||
|
||||
_loadCover: function () {
|
||||
this._renderCoverLoader();
|
||||
this._startCoverLoader();
|
||||
@ -476,6 +524,11 @@ var Infowindow = View.extend({
|
||||
this.$('.js-cover').append('<p class="CDB-infowindow-fail">Non-valid picture URL</p>');
|
||||
},
|
||||
|
||||
_showInfowindowVideoError: function () {
|
||||
this.$('.js-infowindow').addClass('is-fail');
|
||||
this.$('.js-cover').append('<p class="CDB-infowindow-fail">无效的视频地址</p>');
|
||||
},
|
||||
|
||||
_stopCoverLoader: function () {
|
||||
this.$('.js-infowindow').removeClass('is-loading');
|
||||
this.$('.js-loader').removeClass('is-visible');
|
||||
|
Loading…
Reference in New Issue
Block a user