사용자 정의 동적 디스플레이 그림 여백 비율 플러그인
따라서, 나는 플러그인을 써서 다음과 같은 작업을 완성했다. 불러온 그림의 실제 표시 높이와 너비에 따라 그림의 앞과 뒤에 div를 추가했다. 이div의 높이는 실제적으로 실제 그림의 표시 높이의 백분율에 따라 계산된 것이다.
코드는 다음과 같습니다.
// , ,
function imgPercent(mySetting){
var that = this;
if(mySetting == "" || mySetting == undefined || typeof mySetting != "object"){
mySetting = {};
}
// ID
var timeStamp = new Date().getTime();
this.setting = {
//
targetContent : "#imgPercent",
//
imgURL : "../img/index_logo.png",
//img div
imgContainerClass : "",
//img
imgClass : "",
// div
topClass : "",
// div
bottomClass : "",
//
topPercent : 0,
//
bottomPercent : 0,
// ID ,
objectId : "",
//
beforeShow : function(plugin,id){
},
//
afterShow : function(plugin,id){
}
};
this.setting = $.extend(this.setting, mySetting,{objectId:timeStamp});
// div HTML
this.getTopDiv = function(){
var topDivHtml = '<div id="topDiv'+that.setting.objectId+'"></div>';
// Class
if(that.setting.topClass != "" && that.setting.topClass != undefined && typeof that.setting.topClass == "string"){
topDivHtml = '<div id="topDiv' + that.setting.objectId + '" class="' + that.setting.topClass + '"></div>';
}
return topDivHtml;
}
// div HTML
this.getImgDiv = function(){
var imgDivHtml = '<div id="imgDiv'+that.setting.objectId+'">';
var imgHtml = '<img id="imgDiv'+that.setting.objectId+'" class="img-responsive div_center " src="'+that.setting.imgURL+'"/></div>';
// Class
if(that.setting.imgContainerClass != "" && that.setting.imgContainerClass != undefined && typeof that.setting.imgContainerClass == "string"){
imgDivHtml = '<div id="imgDiv'+that.setting.objectId+'" class="' + that.setting.imgContainerClass + '">';
// '<img class="img-responsive div_center" src="'+that.setting.imgURL+'"/></div>';
}
// Class
if(that.setting.imgClass != "" && that.setting.imgClass != undefined && typeof that.setting.imgClass == "string"){
imgHtml = '<img class="img-responsive div_center '+that.setting.imgClass+'" src="'+that.setting.imgURL+'"/></div>';
}
return imgDivHtml + imgHtml ;
}
// div HTML
this.getBottomDiv = function(){
var bottomDivHtml = '<div id="bottomDiv'+that.setting.objectId+'"></div>';
// Class
if(that.setting.bottomClass != "" && that.setting.bottomClass != undefined && typeof that.setting.bottomClass == "string"){
bottomDivHtml = '<div id="bottomDiv' + that.setting.objectId + '" class="' + that.setting.bottomClass + '"></div>';
}
return bottomDivHtml;
}
this.init = function(){
$(that.setting.targetContent).html(that.getImgDiv());
//
var targetHTML = '<div id="'+that.setting.objectId+'">' + that.getTopDiv() + that.getImgDiv() + that.getBottomDiv() + '</div>';
//
if(that.setting.beforeShow != undefined && typeof that.setting.beforeShow == "function"){
that.setting.beforeShow(that,that.setting.objectId);
}
//
$(that.setting.targetContent).html(targetHTML);
//
var imgHeight = $("#imgDiv"+that.setting.objectId).find("img").height();
// ,
var topDivHeight = imgHeight * that.setting.topPercent;
// ,
var bottomDivHeight = imgHeight * that.setting.bottomPercent;
$("#topDiv"+that.setting.objectId).css("height",topDivHeight);
$("#bottomDiv"+that.setting.objectId).css("height",bottomDivHeight);
//
if(that.setting.afterShow != undefined && typeof that.setting.afterShow == "function"){
that.setting.afterShow(that,that.setting.objectId);
}
}
this.resize = function(){
//
var imgHeight = $("#imgDiv"+that.setting.objectId).find("img").height();
// ,
var topDivHeight = imgHeight * that.setting.topPercent;
// ,
var bottomDivHeight = imgHeight * that.setting.bottomPercent;
$("#topDiv"+that.setting.objectId).css("height",topDivHeight);
$("#bottomDiv"+that.setting.objectId).css("height",bottomDivHeight);
}
this.init();
}
PC의 브라우저에는 아무런 문제가 없지만 위챗 브라우저와 터미널 브라우저에는 내가 동적으로 추가한 코드가 시종 표시되지 않았다. 결국 내가 동적으로 추가한 코드가dom 나무에 들어가면 브라우저는 실제적으로 그림의 높이와 너비를 즉시 계산하지 않는다는 것을 발견했다.
해결 방법:
setTimeout () 방법으로 호출 지연
imgPercentObj = new imgPercent(mySetting);
setTimeout("resize()",200);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.