> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트 코드 한줄로 플로팅 빠른 메시지를 쉽게 생성 - V2 업그레이드 버전_javascript 기술

자바스크립트 코드 한줄로 플로팅 빠른 메시지를 쉽게 생성 - V2 업그레이드 버전_javascript 기술

WBOY
풀어 주다: 2016-05-16 18:30:36
원래의
1062명이 탐색했습니다.
자바스크립트 코드 한줄로 플로팅 빠른 메시지를 쉽게 생성 - V2 업그레이드 버전_javascript 기술
어제도 밤을 새워가며 [퀵메시지 기능을 쉽게 구현하는 코드 한 줄]이라는 글을 올렸는데, 동시에 V1.0을 출시하게 되었습니다. 베타버전의 빠른 메시지 기능과 소스코드를 베타버전으로 만든 이유는 기본 기능은 있지만 완벽하지도 않고 기능도 꼭 합당하지 않다는 생각이 들어서 오늘 무의식적으로 다시 만들어 봤습니다. 이전 버전에 비해 크게 개선되었습니다.
우선 메시지 정보가 자동으로 제출되면 추천이 자동으로 생성되므로 블로그 파크의 추천 순위 메커니즘에 직접적인 영향을 미칩니다. , 그래서 나중에 추천하고 싶은지 묻는 대화식 모드로 수정되었습니다!
둘째, 바로가기 기능이 있어서 사용하기는 쉽지만, 화면을 가득 채우는 "좋은 글입니다! 응원합니다!"라는 메시지가 사실 좀 지루하고 실질적인 의미가 없습니다. 가치가 있으므로 이번 V2 버전은 대화형 모드에서 원본 형식을 개선하는 데 중점을 두었습니다. 새 버전의 빠른 메시지는 블로그 파크에 원본 메시지 상자와 추천 항목을 띄워서 오른쪽 세로 중앙에 표시하는 것과 같습니다. 화면의 목적은 사용자가 매우 편리하게 메시지를 빠르게 남길 수 있도록 하는 것입니다.
마지막으로 새 버전의 빠른 메시지 기능은 이전 버전 사용자를 위한 투명한 업그레이드를 완벽하게 지원합니다. 즉, 원래 이전 버전을 사용했던 사용자는 이제 블로그에서 최신 버전의 인터페이스와 기능을 볼 수 있습니다. 여기서도 jMsg의 사용법은 이전과 똑같습니다.
사실 사용법은 정말 간단합니다. [백스테이지 관리]->[설정]->[Top]의 텍스트 상자만 입력하면 됩니다. Html Code] , 다음 문장을 입력하세요:

코드 복사 코드는 다음과 같습니다.

//[백엔드 관리]->[설정]->[상위 HTML 코드]


구체적인 내용은 아래와 같습니다.
자바스크립트 코드 한줄로 플로팅 빠른 메시지를 쉽게 생성 - V2 업그레이드 버전_javascript 기술
jMsg의 새 버전은 구체적입니다. 기능적인 세부 사항은 위 그림에 자세히 설명되어 있으므로 반복하지 않겠습니다. 다음은 새 버전의 소스 코드이기도 합니다. 예를 들어 인터페이스 효과를 아름답게 할 수 있습니다. 이제 가장 간단한 스타일만 제공됩니다. 코드든 기능적 디자인이든 비판하고 수정해 주세요. 이전 버전에 비해 코드 구성이 크게 변경되었습니다. 이전 버전의 소스 코드는 여기에서 확인하실 수 있습니다.
새 버전의 소스코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

//작성자: Justin
//출처: http://justinw.cnblogs.com/
//저작권: 전재시 출처를 남겨주세요.
//버전: V2.0
//마지막 업데이트: 201004020037
//비고: 질문이 있는 경우 http://www.cnblogs.com/justinw/archive/2010을 방문하세요. /03 /30/1700190.html 궁금한 점은 메시지를 남겨주세요.
//업데이트:
//1.v2는 V1beta를 기반으로 크게 개선되었으며 상호 작용 모드와 기능적 합리성이 크게 향상되었습니다.

//--begin--jMsg---
jMsg = function() {
var chkRecomend = false
}

jMsg.prototype = {
//초기화 작업
initialize: function() {
jMsg.loadEvent(this.combat);
this.msgDIV()
},
dispose: function() {
//todoSomething...
},
//메시지 정보 제출
post: function(msg) {
//여기서 HaveUp 플래그는 반복 제출을 방지하기 위해 판단됩니다. 같은 메시지.
if (window.top.HaveUp) {
alert('좋아요! 감사합니다 친구:)')
return false;
}
if (msg.trim( ).length == 0) {
alert('한 마디라도 남겨야 합니다!')
return false
}
else if (msg.trim().length > 1000) {
alert('이 동창은 최대 1000자까지 지원합니다!')
return false;
}

var txt = document.getElementById('tbCommentBody' );
if (txt != null) {
txt.style.BackgroundColor = "#E4F5FF";
var date = new Date()
txt.value = msg; txt.focus();
//한 번 빠른 메시지를 제출하면 HaveUp이 true로 설정됩니다.
//페이지에 다시 들어갈 때마다 HaveUp이 초기화됩니다.
window.top.HaveUp = true;
//블로그 파크에서 메시지를 제출하는 데 사용되는 방법입니다.
//로그인하지 않고 클라이언트에서 직접 이 메소드를 호출하면 내부적으로 오류가 발생합니다. (블로그 파크 코드 문제, 빈 테스트 없음)
var rlt = PostComment();
this.setMsgText("")
return true; /현재 블로그 파크 기능은 로그인 후에만 댓글을 제출하는 기능을 제한하고 있습니다.
//tbCommentBody 요소를 찾을 수 없다면 현재 사용자가 로그인하지 않은 것으로 간주할 수 있습니다.
alert("블로그 메시지 기능을 사용하려면 먼저 로그인해야 합니다!")
return false
}
},
//Recommend
recommend: function( ) {
var diggit = jMsg.getElementsByClassName('diggit');
if ((diggit) && (diggit[0])) {
diggit[0].onclick()
}
else {
alert("디버그: 추천 버튼의 ClassName이 변경되었습니다!")
}
},
//Oppose
combat: function() {
var buryitMsg = function() {
//현재 블로그파크의 추천과 비승인은 익명으로 처리됩니다. 물론 비승인된 경우 그 이유를 알고 싶습니다.
//이 기능은 신사로부터만 보호할 수 있으며 악당은 보호할 수 없으며 단지 알림만 제공할 뿐입니다.
var txt = document.getElementById('tbCommentBody');
if (txt != null) {
alert('이 학생 여러분의 소중한 의견을 꼭 듣고 싶습니다. .');
txt.style.BackgroundColor = "#fe9ab3";
txt.focus();
}
}
var buryit = jMsg.getElementsByClassName('buryit');
if ((buryit) && (buryit[0])) {
jMsg.addEvent(buryit[0], "click", buryitMsg)
}
},
// 메시지 제출 시 추천
superPost: function(msg) {
if (this.post(msg)) {
//여기에 쿼리 기능 추가, 자동 직접 추천은 지원하지 않습니다
if (this.chkRecomend) {
this.recommend();
}
else {
if (confirm("이 기사도 추천하시겠습니까?")) {
this. 추천( );
}
}
}
},
//빠른 메시지를 위한 플로팅 네비게이션 바
msgDIV: function() {
//플로팅 바 여부 나타납니다.
if (!(window.location.href.indexOf(".html") > -1)) return;

//动态计算浮动滚动条的位置
lastScrollY = 0;
var beat = function() {
var diffY;
if (document.documentElement && document.documentElement.scrollTop)
diffY = document.documentElement.scrollTop;
else if (document.body)
diffY = document.body.scrollTop
else
{ /*Netscape stuff*/ }

percent = .1 * (diffY - lastScrollY );
if (퍼센트 > 0)퍼센트 = Math.ceil(퍼센트);
다른 퍼센트 = Math.floor(퍼센트);
document.getElementById("msgDiv").style.top =parseInt(document.getElementById("msgDiv").style.top)퍼센트 "px";

lastScrollY = lastScrollY 퍼센트;
}

document.write(this.getMsgBoxHTML());

window.setInterval(비트, 120);
},
getMsgBoxHTML: function() {
var _HTML = "";
_HTML = "
";
_HTML = "";
_HTML = "<본문>";
_HTML = "";
_HTML = "";
_HTML = "
";
_HTML = " 路过 " ;
_HTML = "推荐
2010©Justin< /td>
";
_HTML = "
";
return _HTML;
},
setMsgText: function(txt) {
var Area = document.getElementById("jmsg");
area.value = txt;
},
getMsgText: function() {
var Area = document.getElementById("jmsg");
반환 지역.값;
},
setChkRecomend: function(val) {
this.chkRecomend = val;
}
}

//附加onload사건
jMsg.loadEvent = function(fn) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = fn;
} else {
window.onload = function() {
oldonload();
fn();
}
}
}

//附加事件
jMsg.addEvent = function(obj, type, fn) {
if (obj.addEventListener)
obj.addEventListener(type, fn, true);
else if (obj.attachEvent) {
obj.attachEvent("on" type, function() {
fn();
});
}
}

//通过ClassName找到DOM元素
jMsg.getElementsByClassName = function(n) {
var el = [],
_el = document.getElementsByTagName ('*');
for (var i = 0; i < _el.length; i ) {
if (_el[i].className == n) {
el[el.length] = _el[i] ;
}
}
return el;
}

String.prototype.trim = function() {
return this.replace(/(^s*)|(s*$)/g, "");
}

//--end--jMsg---
//todo:提供设置是否显示浮动条的接口
//todo:提供完全自定义浮动条内容적폐
//todo:提供浮动以extitive交互模式接口
var $jMsg = new jMsg();
$jMsg.initialize();

작곡자: 저스틴
출처: http://justinw.cnblogs.com/
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿